diff --git a/.automation/build.py b/.automation/build.py index 4ba983e8c8b..8e08a5d5639 100644 --- a/.automation/build.py +++ b/.automation/build.py @@ -42,6 +42,7 @@ from webpreview import web_preview RELEASE = "--release" in sys.argv +UPDATE_STATS = "--stats" in sys.argv or RELEASE is True UPDATE_DOC = "--doc" in sys.argv or RELEASE is True UPDATE_DEPENDENTS = "--dependents" in sys.argv UPDATE_CHANGELOG = "--changelog" in sys.argv @@ -89,6 +90,7 @@ HELPS_FILE = REPO_HOME + "/.automation/generated/linter-helps.json" LINKS_PREVIEW_FILE = REPO_HOME + "/.automation/generated/linter-links-previews.json" DOCKER_STATS_FILE = REPO_HOME + "/.automation/generated/flavors-stats.json" +PLUGINS_FILE = REPO_HOME + "/.automation/plugins.yml" FLAVORS_DIR = REPO_HOME + "/flavors" LINTERS_DIR = REPO_HOME + "/linters" GLOBAL_FLAVORS_FILE = REPO_HOME + "/megalinter/descriptors/all_flavors.json" @@ -104,7 +106,7 @@ IDE_LIST = { "atom": {"label": "Atom", "url": "https://atom.io/"}, - "brackets": {"label": "Brackets", "url": "http://brackets.io/"}, + "brackets": {"label": "Brackets", "url": "https://brackets.io/"}, "eclipse": {"label": "Eclipse", "url": "https://www.eclipse.org/"}, "emacs": {"label": "Emacs", "url": "https://www.gnu.org/software/emacs/"}, "idea": { @@ -116,6 +118,18 @@ "vscode": {"label": "Visual Studio Code", "url": "https://code.visualstudio.com/"}, } +DEPRECATED_LINTERS = [ + "CREDENTIALS_SECRETLINT", # Removed in v6 + "DOCKERFILE_DOCKERFILELINT", # Removed in v6 + "GIT_GIT_DIFF", # Removed in v6 + "PHP_BUILTIN", # Removed in v6 + "KUBERNETES_KUBEVAL", # Removed in v7 + "REPOSITORY_GOODCHECK", # Removed in v7 + "SPELL_MISSPELL", # Removed in v7 + "TERRAFORM_CHECKOV", # Removed in v7 + "TERRAFORM_KICS", # Removed in v7 +] + DESCRIPTORS_FOR_BUILD_CACHE = None @@ -126,7 +140,7 @@ def generate_all_flavors(): for flavor, flavor_info in flavors.items(): generate_flavor(flavor, flavor_info) update_mkdocs_and_workflow_yml_with_flavors() - if UPDATE_DOC is True: + if UPDATE_STATS is True: try: update_docker_pulls_counter() except requests.exceptions.ConnectionError as e: @@ -434,7 +448,7 @@ def build_dockerfile( apk_install_command = "" if len(apk_packages) > 0: apk_install_command = ( - "RUN apk add --update --no-cache \\\n " + "RUN apk add --no-cache \\\n " + " \\\n ".join(list(dict.fromkeys(apk_packages))) + " \\\n && git config --global core.autocrlf true" ) @@ -788,8 +802,10 @@ def generate_documentation(): + f"[**{len(linters_by_type['tooling_format'])}** 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**.\n\n" - + "[**Upgrade to MegaLinter v7 !**]" - + "https://github.com/oxsecurity/megalinter/issues/2608" # TODOV7: Replace link + + "[**Switch to MegaLinter v7 !**]" + + "(https://github.com/oxsecurity/megalinter/issues/2692)\n\n" + + "[![Upgrade to v7 Video](https://img.youtube.com/vi/6NSBzq01S9g/0.jpg)]" + + "(https://www.youtube.com/watch?v=6NSBzq01S9g)" ) # Update README.md file replace_in_file( @@ -815,6 +831,18 @@ def generate_documentation(): "", flavors_table_md_str, ) + + # Build & Update flavors table + plugins_table_md = build_plugins_md_table() + plugins_table_md_str = "\n".join(plugins_table_md) + logging.info("Generated Plugins table for README:\n" + plugins_table_md_str) + replace_in_file( + f"{REPO_HOME}/README.md", + "", + "", + plugins_table_md_str, + ) + # Generate flavors individual documentations flavors = megalinter.flavor_factory.get_all_flavors() for flavor, flavor_info in flavors.items(): @@ -1121,7 +1149,9 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): linter_doc_md += [f"# {linter.linter_name}\n{md_individual_extra}"] # Indicate that a linter is disabled in this version + title_prefix = "" if hasattr(linter, "deprecated") and linter.deprecated is True: + title_prefix = "(deprecated) " linter_doc_md += [""] linter_doc_md += ["> This linter has been deprecated.", ">"] @@ -1300,7 +1330,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_FILTER_REGEX_INCLUDE", "type": "string", - "title": f"{linter.name}: Including Regex", + "title": f"{title_prefix}{linter.name}: Including Regex", }, ], [ @@ -1308,7 +1338,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_FILTER_REGEX_EXCLUDE", "type": "string", - "title": f"{linter.name}: Excluding Regex", + "title": f"{title_prefix}{linter.name}: Excluding Regex", }, ], ] @@ -1348,7 +1378,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_CLI_LINT_MODE", "type": "string", - "title": f"{linter.name}: Override default cli lint mode", + "title": f"{title_prefix}{linter.name}: Override default cli lint mode", "default": linter.cli_lint_mode, "enum": enum, }, @@ -1381,7 +1411,10 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_FILE_EXTENSIONS", "type": "array", - "title": f"{linter.name}: Override descriptor/linter matching files extensions", + "title": ( + title_prefix + + f"{linter.name}: Override descriptor/linter matching files extensions" + ), "examples:": [".py", ".myext"], "items": {"type": "string"}, }, @@ -1391,7 +1424,10 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_FILE_NAMES_REGEX", "type": "array", - "title": f"{linter.name}: Override descriptor/linter matching file name regex", + "title": ( + title_prefix + + f"{linter.name}: Override descriptor/linter matching file name regex" + ), "examples": ["Dockerfile(-.+)?", "Jenkinsfile"], "items": {"type": "string"}, }, @@ -1402,12 +1438,15 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): remove_in_config_schema_file( [f"{linter.name}_FILE_EXTENSIONS", f"{linter.name}_FILE_NAMES_REGEX"] ) - # Pre/post commands + # Pre/post commands & unsecured variables linter_doc_md += [ f"| {linter.name}_PRE_COMMANDS | List of bash commands to run before the linter" f"| {dump_as_json(linter.pre_commands,'None')} |", f"| {linter.name}_POST_COMMANDS | List of bash commands to run after the linter" f"| {dump_as_json(linter.post_commands,'None')} |", + f"| {linter.name}_UNSECURED_ENV_VARIABLES | List of env variables explicitly " + + f"not filtered before calling {linter.name} and its pre/post commands" + f"| {dump_as_json(linter.post_commands,'None')} |", ] add_in_config_schema_file( [ @@ -1416,7 +1455,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_ARGUMENTS", "type": ["array", "string"], - "title": f"{linter.name}: Custom arguments", + "title": f"{title_prefix}{linter.name}: Custom arguments", "description": f"{linter.name}: User custom arguments to add in linter CLI call", "examples:": ["--foo", "bar"], "items": {"type": "string"}, @@ -1427,7 +1466,10 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_PRE_COMMANDS", "type": "array", - "title": f"{linter.name}: Define or override a list of bash commands to run before the linter", + "title": ( + title_prefix + + f"{linter.name}: Define or override a list of bash commands to run before the linter" + ), "examples": [ [ { @@ -1445,7 +1487,10 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_POST_COMMANDS", "type": "array", - "title": f"{linter.name}: Define or override a list of bash commands to run after the linter", + "title": ( + title_prefix + + f"{linter.name}: Define or override a list of bash commands to run after the linter" + ), "examples": [ [ { @@ -1464,7 +1509,10 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): "$id": f"#/properties/{linter.name}_DISABLE_ERRORS", "type": "boolean", "default": False, - "title": f"{linter.name}: Linter doesn't make MegaLinter fail even if errors are found", + "title": ( + title_prefix + + f"{linter.name}: Linter doesn't make MegaLinter fail even if errors are found" + ), }, ], [ @@ -1473,7 +1521,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): "$id": f"#/properties/{linter.name}_DISABLE_ERRORS_IF_LESS_THAN", "type": "number", "default": 0, - "title": f"{linter.name}: Maximum number of errors allowed", + "title": f"{title_prefix}{linter.name}: Maximum number of errors allowed", }, ], [ @@ -1482,7 +1530,19 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): "$id": f"#/properties/{linter.name}_CLI_EXECUTABLE", "type": "array", "default": [linter.cli_executable], - "title": f"{linter.name}: CLI Executable", + "title": f"{title_prefix}{linter.name}: CLI Executable", + "items": {"type": "string"}, + }, + ], + [ + f"{linter.name}_UNSECURED_ENV_VARIABLES", + { + "$id": f"#/properties/{linter.name}_UNSECURED_ENV_VARIABLES", + "type": "array", + "default": [], + "description": "List of env variables explicitly " + + f"not filtered before calling {linter.name} and its pre/post commands", + "title": f"{title_prefix}{linter.name}: Unsecured env variables", "items": {"type": "string"}, }, ], @@ -1504,7 +1564,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_CONFIG_FILE", "type": "string", - "title": f"{linter.name}: Custom config file name", + "title": f"{title_prefix}{linter.name}: Custom config file name", "default": linter.config_file_name, "description": f"{linter.name}: User custom config file name if different from default", }, @@ -1514,7 +1574,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_RULES_PATH", "type": "string", - "title": f"{linter.name}: Custom config file path", + "title": f"{title_prefix}{linter.name}: Custom config file path", "description": f"{linter.name}: Path where to find linter configuration file", }, ], @@ -1542,7 +1602,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): { "$id": f"#/properties/{linter.name}_DIRECTORY", "type": "string", - "title": f"{linter.name}: Directory containing {linter.descriptor_id} files", + "title": f"{title_prefix}{linter.name}: Directory containing {linter.descriptor_id} files", "default": linter.files_sub_directory, }, ], @@ -1777,6 +1837,24 @@ def build_flavors_md_table(filter_linter_name=None, replace_link=False): return md_table +# Build plugins table from YML file in .automation/plugins.yml +def build_plugins_md_table(): + with open(PLUGINS_FILE, "r", encoding="utf-8") as f: + plugins_file_data = yaml.safe_load(f) + plugins = plugins_file_data["plugins"] + md_table = [ + "| Name | Description | Author | Raw URL |", + "| :----- | :---------- | :--------------: | :--- |", + ] + for plugin in plugins: + md_table += [ + f"| [**{plugin['name']}**]({plugin['docUrl']}) | " + f"{plugin['description']} | {plugin['author']} | " + f"[Descriptor]({plugin['pluginUrl']}) |", + ] + return md_table + + def update_mkdocs_and_workflow_yml_with_flavors(): mkdocs_yml = [] gha_workflow_yml = [" flavor:", " ["] @@ -2220,14 +2298,22 @@ def move_to_file(file_path, start, end, target_file, keep_in_source=False): with open(file_path, "w", encoding="utf-8") as file: file.write(file_content) logging.info("Updated " + file.name + " between " + start + " and " + end) - bracket_content = ( - bracket_content.replace("####", "#THREE#") - .replace("###", "#TWO#") - .replace("##", "#ONE#") - .replace("#THREE#", "###") - .replace("#TWO#", "##") - .replace("#ONE#", "#") - ) + if "" @@ -2259,7 +2345,14 @@ def replace_anchors_by_links(file_path, moves): ["formats", "supported-linters.md#formats"], ["tooling-formats", "supported-linters.md#tooling-formats"], ["other", "supported-linters.md#other"], - ["apply-fixes", "configuration.md#apply-fixes"], + ["apply-fixes", "config-apply-fixes.md"], + ["installation", "install-assisted.md"], + ["configuration", "config-file.md"], + ["activation-and-deactivation", "config-activation.md"], + ["filter-linted-files", "config-filtering.md"], + ["pre-commands", "config-precommands.md"], + ["post-commands", "config-postcommands.md"], + ["environment-variables-security", "config-variables-security.md"], ]: file_content_new = file_content_new.replace(f"(#{pair[0]})", f"({pair[1]})") if file_content_new != file_content: @@ -2325,8 +2418,27 @@ def finalize_doc_build(): # 'format', # 'tooling-formats', # 'other', - "installation", - "configuration", + "install-assisted", + "install-version", + "install-github", + "install-gitlab", + "install-azure", + "install-bitbucket", + "install-jenkins", + "install-concourse", + "install-drone", + "install-docker", + "install-locally", + "config-file", + "config-variables", + "config-activation", + "config-filtering", + "config-apply-fixes", + "config-linters", + "config-precommands", + "config-postcommands", + "config-variables-security", + "config-cli-lint-mode", "reporters", "flavors", "badge", @@ -2367,7 +2479,7 @@ def finalize_doc_build(): "", "", """![GitHub release](https://img.shields.io/github/v/release/oxsecurity/megalinter?sort=semver&color=%23FD80CD) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.3M-blue?color=%23FD80CD)](https://megalinter.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.6M-blue?color=%23FD80CD)](https://megalinter.io/flavors/) [![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg?color=%23FD80CD)](https://npmjs.org/package/mega-linter-runner) [![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?cacheSeconds=3600&color=%23FD80CD)](https://github.com/oxsecurity/megalinter/stargazers/) [![Dependents](https://img.shields.io/static/v1?label=Used%20by&message=2180&color=%23FD80CD&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) @@ -2388,6 +2500,18 @@ def finalize_doc_build(): "", "", ) + replace_in_file( + target_file, + "", + "", + "", + ) + replace_in_file( + target_file, + "", + "", + "", + ) # Remove link to online doc replace_in_file( target_file, @@ -2491,16 +2615,7 @@ def generate_json_schema_enums(): json_schema["definitions"]["enum_descriptor_keys"]["enum"] += ["CREDENTIALS", "GIT"] json_schema["definitions"]["enum_linter_keys"]["enum"] = [x.name for x in linters] # Deprecated linters - json_schema["definitions"]["enum_linter_keys"]["enum"] += [ - "CREDENTIALS_SECRETLINT", # Removed in v6 - "DOCKERFILE_DOCKERFILELINT", # Removed in v6 - "GIT_GIT_DIFF", # Removed in v6 - "PHP_BUILTIN", # Removed in v6 - "KUBERNETES_KUBEVAL", # Removed in v7 - "REPOSITORY_GOODCHECK", # Removed in v7 - "SPELL_MISSPELL", # Removed in v7 - "TERRAFORM_CHECKOV", # Removed in v7 - ] + json_schema["definitions"]["enum_linter_keys"]["enum"] += DEPRECATED_LINTERS with open(CONFIG_JSON_SCHEMA, "w", encoding="utf-8") as outfile: json.dump(json_schema, outfile, indent=2, sort_keys=True) outfile.write("\n") @@ -2668,7 +2783,11 @@ def generate_documentation_all_linters(): # Update license key for licenses file resp = r.json() if resp is not None and not isinstance(resp, type(None)): - if "license" in resp and "spdx_id" in resp["license"]: + if ( + "license" in resp + and resp["license"] is not None + and "spdx_id" in resp["license"] + ): license = ( resp["license"]["spdx_id"] if resp["license"]["spdx_id"] != "NOASSERTION" @@ -2693,12 +2812,22 @@ def generate_documentation_all_linters(): resp_license = r_license.json() if "download_url" in resp_license: license_downloaded = session.get( - resp_license["download_url"] + resp_license["download_url"], + headers=api_github_headers, ) with open( linter_license_md_file, "w", encoding="utf-8" ) as license_out_file: - license_out_file.write(license_downloaded.text) + license_header = ( + "---\n" + f"title: License info for {linter.linter_name} within MegaLinter\n" + "search:\n" + " exclude: true\n" + "---\n" + ) + license_out_file.write( + license_header + license_downloaded.text + ) logging.info( f"Copied license of {linter.linter_name} in {linter_license_md_file}" ) diff --git a/.automation/generated/flavors-stats.json b/.automation/generated/flavors-stats.json index 1880d0031e3..76d47007a92 100644 --- a/.automation/generated/flavors-stats.json +++ b/.automation/generated/flavors-stats.json @@ -1481,8 +1481,164 @@ 2948676 ], [ - "2023-05-14T16:41:46", - 2949395 + "2023-05-14T19:54:23", + 2949683 + ], + [ + "2023-05-17T23:06:02", + 2956012 + ], + [ + "2023-05-18T18:05:13", + 2957431 + ], + [ + "2023-05-19T18:27:46", + 2959002 + ], + [ + "2023-05-20T06:58:27", + 2959618 + ], + [ + "2023-05-21T17:54:05", + 2960551 + ], + [ + "2023-05-22T19:05:24", + 2962658 + ], + [ + "2023-05-23T01:07:57", + 2963164 + ], + [ + "2023-05-24T01:14:32", + 2965365 + ], + [ + "2023-05-26T01:11:00", + 2969496 + ], + [ + "2023-05-27T17:04:12", + 2971966 + ], + [ + "2023-05-28T17:03:24", + 2972895 + ], + [ + "2023-05-29T11:13:08", + 2973698 + ], + [ + "2023-05-31T23:48:39", + 2979928 + ], + [ + "2023-06-01T01:25:18", + 2980280 + ], + [ + "2023-06-02T01:10:33", + 2982873 + ], + [ + "2023-06-03T09:59:50", + 2985399 + ], + [ + "2023-06-04T01:13:43", + 2985820 + ], + [ + "2023-06-05T01:08:28", + 2986683 + ], + [ + "2023-06-07T01:10:00", + 2990975 + ], + [ + "2023-06-08T05:19:18", + 2993233 + ], + [ + "2023-06-11T18:48:09", + 2997453 + ], + [ + "2023-06-12T01:16:15", + 2997733 + ], + [ + "2023-06-13T01:11:33", + 2999733 + ], + [ + "2023-06-17T01:09:24", + 3008097 + ], + [ + "2023-06-21T05:26:13", + 3013604 + ], + [ + "2023-06-23T01:12:21", + 3017176 + ], + [ + "2023-06-24T01:13:03", + 3018770 + ], + [ + "2023-06-25T01:19:08", + 3019324 + ], + [ + "2023-07-02T01:17:57", + 3030041 + ], + [ + "2023-07-05T04:19:03", + 3034027 + ], + [ + "2023-07-06T01:13:59", + 3035756 + ], + [ + "2023-07-07T01:22:59", + 3037762 + ], + [ + "2023-07-09T01:17:28", + 3039856 + ], + [ + "2023-07-10T12:35:57", + 3041527 + ], + [ + "2023-07-11T18:04:48", + 3044556 + ], + [ + "2023-07-13T01:16:23", + 3047030 + ], + [ + "2023-07-14T18:55:34", + 3050109 + ], + [ + "2023-07-15T14:49:24", + 3050879 + ], + [ + "2023-07-17T01:18:56", + 3051957 ] ], "ci_light": [ @@ -2967,8 +3123,164 @@ 63857 ], [ - "2023-05-14T16:41:46", - 63926 + "2023-05-14T19:54:23", + 63946 + ], + [ + "2023-05-17T23:06:02", + 64761 + ], + [ + "2023-05-18T18:05:13", + 64933 + ], + [ + "2023-05-19T18:27:46", + 65149 + ], + [ + "2023-05-20T06:58:27", + 65247 + ], + [ + "2023-05-21T17:54:05", + 65353 + ], + [ + "2023-05-22T19:05:24", + 65540 + ], + [ + "2023-05-23T01:07:57", + 65598 + ], + [ + "2023-05-24T01:14:32", + 65843 + ], + [ + "2023-05-26T01:11:00", + 66471 + ], + [ + "2023-05-27T17:04:12", + 66727 + ], + [ + "2023-05-28T17:03:24", + 66788 + ], + [ + "2023-05-29T11:13:08", + 66872 + ], + [ + "2023-05-31T23:48:39", + 67518 + ], + [ + "2023-06-01T01:25:18", + 67540 + ], + [ + "2023-06-02T01:10:33", + 67746 + ], + [ + "2023-06-03T09:59:50", + 67948 + ], + [ + "2023-06-04T01:13:43", + 67991 + ], + [ + "2023-06-05T01:08:28", + 68043 + ], + [ + "2023-06-07T01:10:00", + 68684 + ], + [ + "2023-06-08T05:19:18", + 69031 + ], + [ + "2023-06-11T18:48:09", + 69579 + ], + [ + "2023-06-12T01:16:15", + 69631 + ], + [ + "2023-06-13T01:11:33", + 69939 + ], + [ + "2023-06-17T01:09:24", + 71103 + ], + [ + "2023-06-21T05:26:13", + 71933 + ], + [ + "2023-06-23T01:12:21", + 72425 + ], + [ + "2023-06-24T01:13:03", + 72723 + ], + [ + "2023-06-25T01:19:08", + 72767 + ], + [ + "2023-07-02T01:17:57", + 74840 + ], + [ + "2023-07-05T04:19:03", + 75591 + ], + [ + "2023-07-06T01:13:59", + 75909 + ], + [ + "2023-07-07T01:22:59", + 76220 + ], + [ + "2023-07-09T01:17:28", + 76549 + ], + [ + "2023-07-10T12:35:57", + 76815 + ], + [ + "2023-07-11T18:04:48", + 77401 + ], + [ + "2023-07-13T01:16:23", + 77844 + ], + [ + "2023-07-14T18:55:34", + 78446 + ], + [ + "2023-07-15T14:49:24", + 78520 + ], + [ + "2023-07-17T01:18:56", + 78617 ] ], "cupcake": [ @@ -3433,8 +3745,164 @@ 10508 ], [ - "2023-05-14T16:41:46", - 10516 + "2023-05-14T19:54:23", + 10530 + ], + [ + "2023-05-17T23:06:02", + 10950 + ], + [ + "2023-05-18T18:05:13", + 11130 + ], + [ + "2023-05-19T18:27:46", + 11308 + ], + [ + "2023-05-20T06:58:27", + 11458 + ], + [ + "2023-05-21T17:54:05", + 11476 + ], + [ + "2023-05-22T19:05:24", + 11597 + ], + [ + "2023-05-23T01:07:57", + 11677 + ], + [ + "2023-05-24T01:14:32", + 11975 + ], + [ + "2023-05-26T01:11:00", + 12354 + ], + [ + "2023-05-27T17:04:12", + 12625 + ], + [ + "2023-05-28T17:03:24", + 12641 + ], + [ + "2023-05-29T11:13:08", + 12665 + ], + [ + "2023-05-31T23:48:39", + 13001 + ], + [ + "2023-06-01T01:25:18", + 13016 + ], + [ + "2023-06-02T01:10:33", + 13151 + ], + [ + "2023-06-03T09:59:50", + 13318 + ], + [ + "2023-06-04T01:13:43", + 13322 + ], + [ + "2023-06-05T01:08:28", + 13334 + ], + [ + "2023-06-07T01:10:00", + 13679 + ], + [ + "2023-06-08T05:19:18", + 13861 + ], + [ + "2023-06-11T18:48:09", + 14314 + ], + [ + "2023-06-12T01:16:15", + 14328 + ], + [ + "2023-06-13T01:11:33", + 14534 + ], + [ + "2023-06-17T01:09:24", + 15273 + ], + [ + "2023-06-21T05:26:13", + 15679 + ], + [ + "2023-06-23T01:12:21", + 16016 + ], + [ + "2023-06-24T01:13:03", + 16249 + ], + [ + "2023-06-25T01:19:08", + 16256 + ], + [ + "2023-07-02T01:17:57", + 17199 + ], + [ + "2023-07-05T04:19:03", + 17497 + ], + [ + "2023-07-06T01:13:59", + 17717 + ], + [ + "2023-07-07T01:22:59", + 17951 + ], + [ + "2023-07-09T01:17:28", + 18346 + ], + [ + "2023-07-10T12:35:57", + 18539 + ], + [ + "2023-07-11T18:04:48", + 18937 + ], + [ + "2023-07-13T01:16:23", + 19361 + ], + [ + "2023-07-14T18:55:34", + 19859 + ], + [ + "2023-07-15T14:49:24", + 19910 + ], + [ + "2023-07-17T01:18:56", + 20011 ] ], "dart": [ @@ -5829,42 +6297,198 @@ 147866 ], [ - "2023-05-14T16:41:46", - 147912 - ] - ], - "dotnet": [ + "2023-05-14T19:54:23", + 147933 + ], [ - "2021-07-26T20:10:04", - 215546 + "2023-05-17T23:06:02", + 149017 ], [ - "2021-07-28T01:29:28", - 215612 + "2023-05-18T18:05:13", + 149270 ], [ - "2021-07-29T01:25:08", - 215655 + "2023-05-19T18:27:46", + 149612 ], [ - "2021-07-30T02:45:47", - 215693 + "2023-05-20T06:58:27", + 149753 ], [ - "2021-07-31T02:55:52", - 215736 + "2023-05-21T17:54:05", + 149917 ], [ - "2021-08-01T01:34:33", - 215742 + "2023-05-22T19:05:24", + 150249 ], [ - "2021-08-02T01:25:51", - 215755 + "2023-05-23T01:07:57", + 150318 ], [ - "2021-08-03T01:34:04", - 215956 + "2023-05-24T01:14:32", + 150695 + ], + [ + "2023-05-26T01:11:00", + 151632 + ], + [ + "2023-05-27T17:04:12", + 152034 + ], + [ + "2023-05-28T17:03:24", + 152191 + ], + [ + "2023-05-29T11:13:08", + 152305 + ], + [ + "2023-05-31T23:48:39", + 153372 + ], + [ + "2023-06-01T01:25:18", + 153427 + ], + [ + "2023-06-02T01:10:33", + 153773 + ], + [ + "2023-06-03T09:59:50", + 154155 + ], + [ + "2023-06-04T01:13:43", + 154230 + ], + [ + "2023-06-05T01:08:28", + 154337 + ], + [ + "2023-06-07T01:10:00", + 155093 + ], + [ + "2023-06-08T05:19:18", + 155542 + ], + [ + "2023-06-11T18:48:09", + 156562 + ], + [ + "2023-06-12T01:16:15", + 156602 + ], + [ + "2023-06-13T01:11:33", + 157113 + ], + [ + "2023-06-17T01:09:24", + 158705 + ], + [ + "2023-06-21T05:26:13", + 159755 + ], + [ + "2023-06-23T01:12:21", + 160416 + ], + [ + "2023-06-24T01:13:03", + 160693 + ], + [ + "2023-06-25T01:19:08", + 160764 + ], + [ + "2023-07-02T01:17:57", + 162559 + ], + [ + "2023-07-05T04:19:03", + 163036 + ], + [ + "2023-07-06T01:13:59", + 163294 + ], + [ + "2023-07-07T01:22:59", + 163534 + ], + [ + "2023-07-09T01:17:28", + 163815 + ], + [ + "2023-07-10T12:35:57", + 163986 + ], + [ + "2023-07-11T18:04:48", + 164354 + ], + [ + "2023-07-13T01:16:23", + 164673 + ], + [ + "2023-07-14T18:55:34", + 165267 + ], + [ + "2023-07-15T14:49:24", + 165378 + ], + [ + "2023-07-17T01:18:56", + 165480 + ] + ], + "dotnet": [ + [ + "2021-07-26T20:10:04", + 215546 + ], + [ + "2021-07-28T01:29:28", + 215612 + ], + [ + "2021-07-29T01:25:08", + 215655 + ], + [ + "2021-07-30T02:45:47", + 215693 + ], + [ + "2021-07-31T02:55:52", + 215736 + ], + [ + "2021-08-01T01:34:33", + 215742 + ], + [ + "2021-08-02T01:25:51", + 215755 + ], + [ + "2021-08-03T01:34:04", + 215956 ], [ "2021-08-04T01:25:42", @@ -7315,8 +7939,190 @@ 383804 ], [ - "2023-05-14T16:41:46", - 383850 + "2023-05-14T19:54:23", + 383879 + ], + [ + "2023-05-17T23:06:02", + 385783 + ], + [ + "2023-05-18T18:05:13", + 386087 + ], + [ + "2023-05-19T18:27:46", + 386599 + ], + [ + "2023-05-20T06:58:27", + 386745 + ], + [ + "2023-05-21T17:54:05", + 386877 + ], + [ + "2023-05-22T19:05:24", + 387226 + ], + [ + "2023-05-23T01:07:57", + 387323 + ], + [ + "2023-05-24T01:14:32", + 387794 + ], + [ + "2023-05-26T01:11:00", + 388513 + ], + [ + "2023-05-27T17:04:12", + 388936 + ], + [ + "2023-05-28T17:03:24", + 389016 + ], + [ + "2023-05-29T11:13:08", + 389112 + ], + [ + "2023-05-31T23:48:39", + 390243 + ], + [ + "2023-06-01T01:25:18", + 390312 + ], + [ + "2023-06-02T01:10:33", + 390955 + ], + [ + "2023-06-03T09:59:50", + 391306 + ], + [ + "2023-06-04T01:13:43", + 391379 + ], + [ + "2023-06-05T01:08:28", + 391465 + ], + [ + "2023-06-07T01:10:00", + 392283 + ], + [ + "2023-06-08T05:19:18", + 392693 + ], + [ + "2023-06-11T18:48:09", + 393568 + ], + [ + "2023-06-12T01:16:15", + 393583 + ], + [ + "2023-06-13T01:11:33", + 394135 + ], + [ + "2023-06-17T01:09:24", + 395762 + ], + [ + "2023-06-21T05:26:13", + 396717 + ], + [ + "2023-06-23T01:12:21", + 397473 + ], + [ + "2023-06-24T01:13:03", + 397734 + ], + [ + "2023-06-25T01:19:08", + 397771 + ], + [ + "2023-07-02T01:17:57", + 399355 + ], + [ + "2023-07-05T04:19:03", + 399928 + ], + [ + "2023-07-06T01:13:59", + 400218 + ], + [ + "2023-07-07T01:22:59", + 400748 + ], + [ + "2023-07-09T01:17:28", + 401628 + ], + [ + "2023-07-10T12:35:57", + 402077 + ], + [ + "2023-07-11T18:04:48", + 403260 + ], + [ + "2023-07-13T01:16:23", + 404095 + ], + [ + "2023-07-14T18:55:34", + 405270 + ], + [ + "2023-07-15T14:49:24", + 405543 + ], + [ + "2023-07-17T01:18:56", + 405706 + ] + ], + "dotnetweb": [ + [ + "2023-07-10T12:35:57", + 4 + ], + [ + "2023-07-11T18:04:48", + 16 + ], + [ + "2023-07-13T01:16:23", + 22 + ], + [ + "2023-07-14T18:55:34", + 30 + ], + [ + "2023-07-15T14:49:24", + 36 + ], + [ + "2023-07-17T01:18:56", + 38 ] ], "go": [ @@ -8801,8 +9607,164 @@ 20443 ], [ - "2023-05-14T16:41:46", - 20453 + "2023-05-14T19:54:23", + 20467 + ], + [ + "2023-05-17T23:06:02", + 20680 + ], + [ + "2023-05-18T18:05:13", + 20760 + ], + [ + "2023-05-19T18:27:46", + 20837 + ], + [ + "2023-05-20T06:58:27", + 20865 + ], + [ + "2023-05-21T17:54:05", + 20874 + ], + [ + "2023-05-22T19:05:24", + 20974 + ], + [ + "2023-05-23T01:07:57", + 20992 + ], + [ + "2023-05-24T01:14:32", + 21082 + ], + [ + "2023-05-26T01:11:00", + 21221 + ], + [ + "2023-05-27T17:04:12", + 21294 + ], + [ + "2023-05-28T17:03:24", + 21334 + ], + [ + "2023-05-29T11:13:08", + 21381 + ], + [ + "2023-05-31T23:48:39", + 21592 + ], + [ + "2023-06-01T01:25:18", + 21604 + ], + [ + "2023-06-02T01:10:33", + 21672 + ], + [ + "2023-06-03T09:59:50", + 21713 + ], + [ + "2023-06-04T01:13:43", + 21717 + ], + [ + "2023-06-05T01:08:28", + 21731 + ], + [ + "2023-06-07T01:10:00", + 21899 + ], + [ + "2023-06-08T05:19:18", + 21991 + ], + [ + "2023-06-11T18:48:09", + 22116 + ], + [ + "2023-06-12T01:16:15", + 22124 + ], + [ + "2023-06-13T01:11:33", + 22228 + ], + [ + "2023-06-17T01:09:24", + 22516 + ], + [ + "2023-06-21T05:26:13", + 22719 + ], + [ + "2023-06-23T01:12:21", + 22866 + ], + [ + "2023-06-24T01:13:03", + 22940 + ], + [ + "2023-06-25T01:19:08", + 22946 + ], + [ + "2023-07-02T01:17:57", + 23373 + ], + [ + "2023-07-05T04:19:03", + 23570 + ], + [ + "2023-07-06T01:13:59", + 23644 + ], + [ + "2023-07-07T01:22:59", + 23756 + ], + [ + "2023-07-09T01:17:28", + 23898 + ], + [ + "2023-07-10T12:35:57", + 23975 + ], + [ + "2023-07-11T18:04:48", + 24107 + ], + [ + "2023-07-13T01:16:23", + 24222 + ], + [ + "2023-07-14T18:55:34", + 24382 + ], + [ + "2023-07-15T14:49:24", + 24395 + ], + [ + "2023-07-17T01:18:56", + 24424 ] ], "java": [ @@ -10251,44 +11213,200 @@ 116906 ], [ - "2023-04-24T10:35:05", - 116984 + "2023-04-24T10:35:05", + 116984 + ], + [ + "2023-04-25T13:22:38", + 117126 + ], + [ + "2023-04-26T01:05:21", + 117202 + ], + [ + "2023-04-29T09:13:18", + 117528 + ], + [ + "2023-04-30T23:37:21", + 117596 + ], + [ + "2023-05-01T12:30:40", + 117623 + ], + [ + "2023-05-02T01:03:19", + 117682 + ], + [ + "2023-05-12T22:08:47", + 118821 + ], + [ + "2023-05-13T20:23:06", + 118907 + ], + [ + "2023-05-14T19:54:23", + 118965 + ], + [ + "2023-05-17T23:06:02", + 119365 + ], + [ + "2023-05-18T18:05:13", + 119481 + ], + [ + "2023-05-19T18:27:46", + 119605 + ], + [ + "2023-05-20T06:58:27", + 119649 + ], + [ + "2023-05-21T17:54:05", + 119746 + ], + [ + "2023-05-22T19:05:24", + 119861 + ], + [ + "2023-05-23T01:07:57", + 119886 + ], + [ + "2023-05-24T01:14:32", + 120045 + ], + [ + "2023-05-26T01:11:00", + 120330 + ], + [ + "2023-05-27T17:04:12", + 120494 + ], + [ + "2023-05-28T17:03:24", + 120553 + ], + [ + "2023-05-29T11:13:08", + 120588 + ], + [ + "2023-05-31T23:48:39", + 120936 + ], + [ + "2023-06-01T01:25:18", + 120955 + ], + [ + "2023-06-02T01:10:33", + 121071 + ], + [ + "2023-06-03T09:59:50", + 121214 + ], + [ + "2023-06-04T01:13:43", + 121249 + ], + [ + "2023-06-05T01:08:28", + 121309 + ], + [ + "2023-06-07T01:10:00", + 121707 + ], + [ + "2023-06-08T05:19:18", + 121904 + ], + [ + "2023-06-11T18:48:09", + 122298 + ], + [ + "2023-06-12T01:16:15", + 122329 + ], + [ + "2023-06-13T01:11:33", + 122526 + ], + [ + "2023-06-17T01:09:24", + 123348 + ], + [ + "2023-06-21T05:26:13", + 123866 + ], + [ + "2023-06-23T01:12:21", + 124267 + ], + [ + "2023-06-24T01:13:03", + 124501 + ], + [ + "2023-06-25T01:19:08", + 124559 + ], + [ + "2023-07-02T01:17:57", + 125975 + ], + [ + "2023-07-05T04:19:03", + 126405 ], [ - "2023-04-25T13:22:38", - 117126 + "2023-07-06T01:13:59", + 126628 ], [ - "2023-04-26T01:05:21", - 117202 + "2023-07-07T01:22:59", + 126827 ], [ - "2023-04-29T09:13:18", - 117528 + "2023-07-09T01:17:28", + 127130 ], [ - "2023-04-30T23:37:21", - 117596 + "2023-07-10T12:35:57", + 127358 ], [ - "2023-05-01T12:30:40", - 117623 + "2023-07-11T18:04:48", + 127681 ], [ - "2023-05-02T01:03:19", - 117682 + "2023-07-13T01:16:23", + 127977 ], [ - "2023-05-12T22:08:47", - 118821 + "2023-07-14T18:55:34", + 128391 ], [ - "2023-05-13T20:23:06", - 118907 + "2023-07-15T14:49:24", + 128461 ], [ - "2023-05-14T16:41:46", - 118947 + "2023-07-17T01:18:56", + 128530 ] ], "javascript": [ @@ -11773,8 +12891,164 @@ 260231 ], [ - "2023-05-14T16:41:46", - 260540 + "2023-05-14T19:54:23", + 260734 + ], + [ + "2023-05-17T23:06:02", + 262757 + ], + [ + "2023-05-18T18:05:13", + 263290 + ], + [ + "2023-05-19T18:27:46", + 263955 + ], + [ + "2023-05-20T06:58:27", + 264160 + ], + [ + "2023-05-21T17:54:05", + 264649 + ], + [ + "2023-05-22T19:05:24", + 265504 + ], + [ + "2023-05-23T01:07:57", + 265671 + ], + [ + "2023-05-24T01:14:32", + 266335 + ], + [ + "2023-05-26T01:11:00", + 267622 + ], + [ + "2023-05-27T17:04:12", + 268377 + ], + [ + "2023-05-28T17:03:24", + 268641 + ], + [ + "2023-05-29T11:13:08", + 268976 + ], + [ + "2023-05-31T23:48:39", + 270723 + ], + [ + "2023-06-01T01:25:18", + 270848 + ], + [ + "2023-06-02T01:10:33", + 271657 + ], + [ + "2023-06-03T09:59:50", + 272295 + ], + [ + "2023-06-04T01:13:43", + 272391 + ], + [ + "2023-06-05T01:08:28", + 272653 + ], + [ + "2023-06-07T01:10:00", + 273929 + ], + [ + "2023-06-08T05:19:18", + 274617 + ], + [ + "2023-06-11T18:48:09", + 276437 + ], + [ + "2023-06-12T01:16:15", + 276584 + ], + [ + "2023-06-13T01:11:33", + 277578 + ], + [ + "2023-06-17T01:09:24", + 280668 + ], + [ + "2023-06-21T05:26:13", + 284231 + ], + [ + "2023-06-23T01:12:21", + 285611 + ], + [ + "2023-06-24T01:13:03", + 286468 + ], + [ + "2023-06-25T01:19:08", + 286651 + ], + [ + "2023-07-02T01:17:57", + 292703 + ], + [ + "2023-07-05T04:19:03", + 296096 + ], + [ + "2023-07-06T01:13:59", + 297315 + ], + [ + "2023-07-07T01:22:59", + 298646 + ], + [ + "2023-07-09T01:17:28", + 299698 + ], + [ + "2023-07-10T12:35:57", + 301182 + ], + [ + "2023-07-11T18:04:48", + 303260 + ], + [ + "2023-07-13T01:16:23", + 304595 + ], + [ + "2023-07-14T18:55:34", + 306496 + ], + [ + "2023-07-15T14:49:24", + 306845 + ], + [ + "2023-07-17T01:18:56", + 307377 ] ], "php": [ @@ -13259,8 +14533,164 @@ 49374 ], [ - "2023-05-14T16:41:46", - 49381 + "2023-05-14T19:54:23", + 49393 + ], + [ + "2023-05-17T23:06:02", + 49529 + ], + [ + "2023-05-18T18:05:13", + 49564 + ], + [ + "2023-05-19T18:27:46", + 49635 + ], + [ + "2023-05-20T06:58:27", + 49654 + ], + [ + "2023-05-21T17:54:05", + 49663 + ], + [ + "2023-05-22T19:05:24", + 49704 + ], + [ + "2023-05-23T01:07:57", + 49708 + ], + [ + "2023-05-24T01:14:32", + 49750 + ], + [ + "2023-05-26T01:11:00", + 49869 + ], + [ + "2023-05-27T17:04:12", + 49926 + ], + [ + "2023-05-28T17:03:24", + 49930 + ], + [ + "2023-05-29T11:13:08", + 49939 + ], + [ + "2023-05-31T23:48:39", + 50079 + ], + [ + "2023-06-01T01:25:18", + 50083 + ], + [ + "2023-06-02T01:10:33", + 50168 + ], + [ + "2023-06-03T09:59:50", + 50256 + ], + [ + "2023-06-04T01:13:43", + 50274 + ], + [ + "2023-06-05T01:08:28", + 50290 + ], + [ + "2023-06-07T01:10:00", + 50424 + ], + [ + "2023-06-08T05:19:18", + 50506 + ], + [ + "2023-06-11T18:48:09", + 50690 + ], + [ + "2023-06-12T01:16:15", + 50693 + ], + [ + "2023-06-13T01:11:33", + 50761 + ], + [ + "2023-06-17T01:09:24", + 51059 + ], + [ + "2023-06-21T05:26:13", + 51184 + ], + [ + "2023-06-23T01:12:21", + 51246 + ], + [ + "2023-06-24T01:13:03", + 51289 + ], + [ + "2023-06-25T01:19:08", + 51291 + ], + [ + "2023-07-02T01:17:57", + 51514 + ], + [ + "2023-07-05T04:19:03", + 51573 + ], + [ + "2023-07-06T01:13:59", + 51619 + ], + [ + "2023-07-07T01:22:59", + 51638 + ], + [ + "2023-07-09T01:17:28", + 51687 + ], + [ + "2023-07-10T12:35:57", + 51714 + ], + [ + "2023-07-11T18:04:48", + 51775 + ], + [ + "2023-07-13T01:16:23", + 51854 + ], + [ + "2023-07-14T18:55:34", + 51951 + ], + [ + "2023-07-15T14:49:24", + 51963 + ], + [ + "2023-07-17T01:18:56", + 51965 ] ], "python": [ @@ -14741,12 +16171,168 @@ 203644 ], [ - "2023-05-13T20:23:06", - 203948 + "2023-05-13T20:23:06", + 203948 + ], + [ + "2023-05-14T19:54:23", + 204309 + ], + [ + "2023-05-17T23:06:02", + 206008 + ], + [ + "2023-05-18T18:05:13", + 206554 + ], + [ + "2023-05-19T18:27:46", + 207221 + ], + [ + "2023-05-20T06:58:27", + 207495 + ], + [ + "2023-05-21T17:54:05", + 207701 + ], + [ + "2023-05-22T19:05:24", + 208159 + ], + [ + "2023-05-23T01:07:57", + 208311 + ], + [ + "2023-05-24T01:14:32", + 209103 + ], + [ + "2023-05-26T01:11:00", + 210357 + ], + [ + "2023-05-27T17:04:12", + 210946 + ], + [ + "2023-05-28T17:03:24", + 211066 + ], + [ + "2023-05-29T11:13:08", + 211275 + ], + [ + "2023-05-31T23:48:39", + 212640 + ], + [ + "2023-06-01T01:25:18", + 212752 + ], + [ + "2023-06-02T01:10:33", + 213377 + ], + [ + "2023-06-03T09:59:50", + 213971 + ], + [ + "2023-06-04T01:13:43", + 214027 + ], + [ + "2023-06-05T01:08:28", + 214127 + ], + [ + "2023-06-07T01:10:00", + 215444 + ], + [ + "2023-06-08T05:19:18", + 216241 + ], + [ + "2023-06-11T18:48:09", + 217500 + ], + [ + "2023-06-12T01:16:15", + 217578 + ], + [ + "2023-06-13T01:11:33", + 218129 + ], + [ + "2023-06-17T01:09:24", + 220479 + ], + [ + "2023-06-21T05:26:13", + 221931 + ], + [ + "2023-06-23T01:12:21", + 223162 + ], + [ + "2023-06-24T01:13:03", + 223567 + ], + [ + "2023-06-25T01:19:08", + 223616 + ], + [ + "2023-07-02T01:17:57", + 226462 + ], + [ + "2023-07-05T04:19:03", + 227461 + ], + [ + "2023-07-06T01:13:59", + 228077 + ], + [ + "2023-07-07T01:22:59", + 228529 + ], + [ + "2023-07-09T01:17:28", + 229209 + ], + [ + "2023-07-10T12:35:57", + 229620 + ], + [ + "2023-07-11T18:04:48", + 230515 + ], + [ + "2023-07-13T01:16:23", + 231337 + ], + [ + "2023-07-14T18:55:34", + 232317 + ], + [ + "2023-07-15T14:49:24", + 232549 ], [ - "2023-05-14T16:41:46", - 204160 + "2023-07-17T01:18:56", + 232726 ] ], "ruby": [ @@ -16227,8 +17813,164 @@ 3557 ], [ - "2023-05-14T16:41:46", - 3565 + "2023-05-14T19:54:23", + 3577 + ], + [ + "2023-05-17T23:06:02", + 3583 + ], + [ + "2023-05-18T18:05:13", + 3589 + ], + [ + "2023-05-19T18:27:46", + 3601 + ], + [ + "2023-05-20T06:58:27", + 3603 + ], + [ + "2023-05-21T17:54:05", + 3603 + ], + [ + "2023-05-22T19:05:24", + 3606 + ], + [ + "2023-05-23T01:07:57", + 3606 + ], + [ + "2023-05-24T01:14:32", + 3613 + ], + [ + "2023-05-26T01:11:00", + 3621 + ], + [ + "2023-05-27T17:04:12", + 3640 + ], + [ + "2023-05-28T17:03:24", + 3644 + ], + [ + "2023-05-29T11:13:08", + 3647 + ], + [ + "2023-05-31T23:48:39", + 3660 + ], + [ + "2023-06-01T01:25:18", + 3663 + ], + [ + "2023-06-02T01:10:33", + 3666 + ], + [ + "2023-06-03T09:59:50", + 3672 + ], + [ + "2023-06-04T01:13:43", + 3674 + ], + [ + "2023-06-05T01:08:28", + 3676 + ], + [ + "2023-06-07T01:10:00", + 3680 + ], + [ + "2023-06-08T05:19:18", + 3684 + ], + [ + "2023-06-11T18:48:09", + 3690 + ], + [ + "2023-06-12T01:16:15", + 3693 + ], + [ + "2023-06-13T01:11:33", + 3697 + ], + [ + "2023-06-17T01:09:24", + 3733 + ], + [ + "2023-06-21T05:26:13", + 3766 + ], + [ + "2023-06-23T01:12:21", + 3768 + ], + [ + "2023-06-24T01:13:03", + 3770 + ], + [ + "2023-06-25T01:19:08", + 3772 + ], + [ + "2023-07-02T01:17:57", + 3779 + ], + [ + "2023-07-05T04:19:03", + 3789 + ], + [ + "2023-07-06T01:13:59", + 3792 + ], + [ + "2023-07-07T01:22:59", + 3804 + ], + [ + "2023-07-09T01:17:28", + 3808 + ], + [ + "2023-07-10T12:35:57", + 3816 + ], + [ + "2023-07-11T18:04:48", + 3828 + ], + [ + "2023-07-13T01:16:23", + 3844 + ], + [ + "2023-07-14T18:55:34", + 3860 + ], + [ + "2023-07-15T14:49:24", + 3866 + ], + [ + "2023-07-17T01:18:56", + 3868 ] ], "rust": [ @@ -17709,8 +19451,164 @@ 5578 ], [ - "2023-05-14T16:41:46", - 5586 + "2023-05-14T19:54:23", + 5596 + ], + [ + "2023-05-17T23:06:02", + 5634 + ], + [ + "2023-05-18T18:05:13", + 5641 + ], + [ + "2023-05-19T18:27:46", + 5654 + ], + [ + "2023-05-20T06:58:27", + 5657 + ], + [ + "2023-05-21T17:54:05", + 5657 + ], + [ + "2023-05-22T19:05:24", + 5658 + ], + [ + "2023-05-23T01:07:57", + 5658 + ], + [ + "2023-05-24T01:14:32", + 5658 + ], + [ + "2023-05-26T01:11:00", + 5674 + ], + [ + "2023-05-27T17:04:12", + 5699 + ], + [ + "2023-05-28T17:03:24", + 5703 + ], + [ + "2023-05-29T11:13:08", + 5705 + ], + [ + "2023-05-31T23:48:39", + 5743 + ], + [ + "2023-06-01T01:25:18", + 5746 + ], + [ + "2023-06-02T01:10:33", + 5776 + ], + [ + "2023-06-03T09:59:50", + 5790 + ], + [ + "2023-06-04T01:13:43", + 5792 + ], + [ + "2023-06-05T01:08:28", + 5795 + ], + [ + "2023-06-07T01:10:00", + 5806 + ], + [ + "2023-06-08T05:19:18", + 5818 + ], + [ + "2023-06-11T18:48:09", + 5839 + ], + [ + "2023-06-12T01:16:15", + 5842 + ], + [ + "2023-06-13T01:11:33", + 5858 + ], + [ + "2023-06-17T01:09:24", + 5889 + ], + [ + "2023-06-21T05:26:13", + 5967 + ], + [ + "2023-06-23T01:12:21", + 6017 + ], + [ + "2023-06-24T01:13:03", + 6035 + ], + [ + "2023-06-25T01:19:08", + 6037 + ], + [ + "2023-07-02T01:17:57", + 6096 + ], + [ + "2023-07-05T04:19:03", + 6143 + ], + [ + "2023-07-06T01:13:59", + 6153 + ], + [ + "2023-07-07T01:22:59", + 6164 + ], + [ + "2023-07-09T01:17:28", + 6176 + ], + [ + "2023-07-10T12:35:57", + 6187 + ], + [ + "2023-07-11T18:04:48", + 6206 + ], + [ + "2023-07-13T01:16:23", + 6233 + ], + [ + "2023-07-14T18:55:34", + 6255 + ], + [ + "2023-07-15T14:49:24", + 6262 + ], + [ + "2023-07-17T01:18:56", + 6266 ] ], "salesforce": [ @@ -19183,20 +21081,176 @@ 18859 ], [ - "2023-05-02T01:03:19", - 18876 + "2023-05-02T01:03:19", + 18876 + ], + [ + "2023-05-12T22:08:47", + 19292 + ], + [ + "2023-05-13T20:23:06", + 19321 + ], + [ + "2023-05-14T19:54:23", + 19349 + ], + [ + "2023-05-17T23:06:02", + 19561 + ], + [ + "2023-05-18T18:05:13", + 19677 + ], + [ + "2023-05-19T18:27:46", + 19748 + ], + [ + "2023-05-20T06:58:27", + 19761 + ], + [ + "2023-05-21T17:54:05", + 19780 + ], + [ + "2023-05-22T19:05:24", + 19806 + ], + [ + "2023-05-23T01:07:57", + 19813 + ], + [ + "2023-05-24T01:14:32", + 19874 + ], + [ + "2023-05-26T01:11:00", + 19987 + ], + [ + "2023-05-27T17:04:12", + 20060 + ], + [ + "2023-05-28T17:03:24", + 20076 + ], + [ + "2023-05-29T11:13:08", + 20089 + ], + [ + "2023-05-31T23:48:39", + 20240 + ], + [ + "2023-06-01T01:25:18", + 20249 + ], + [ + "2023-06-02T01:10:33", + 20299 + ], + [ + "2023-06-03T09:59:50", + 20348 + ], + [ + "2023-06-04T01:13:43", + 20352 + ], + [ + "2023-06-05T01:08:28", + 20361 + ], + [ + "2023-06-07T01:10:00", + 20421 + ], + [ + "2023-06-08T05:19:18", + 20454 + ], + [ + "2023-06-11T18:48:09", + 20563 + ], + [ + "2023-06-12T01:16:15", + 20573 + ], + [ + "2023-06-13T01:11:33", + 20610 + ], + [ + "2023-06-17T01:09:24", + 20763 + ], + [ + "2023-06-21T05:26:13", + 20859 + ], + [ + "2023-06-23T01:12:21", + 20923 + ], + [ + "2023-06-24T01:13:03", + 20947 + ], + [ + "2023-06-25T01:19:08", + 20960 + ], + [ + "2023-07-02T01:17:57", + 21229 + ], + [ + "2023-07-05T04:19:03", + 21351 + ], + [ + "2023-07-06T01:13:59", + 21394 + ], + [ + "2023-07-07T01:22:59", + 21446 + ], + [ + "2023-07-09T01:17:28", + 21481 + ], + [ + "2023-07-10T12:35:57", + 21522 + ], + [ + "2023-07-11T18:04:48", + 21589 + ], + [ + "2023-07-13T01:16:23", + 21642 ], [ - "2023-05-12T22:08:47", - 19292 + "2023-07-14T18:55:34", + 21712 ], [ - "2023-05-13T20:23:06", - 19321 + "2023-07-15T14:49:24", + 21727 ], [ - "2023-05-14T16:41:46", - 19339 + "2023-07-17T01:18:56", + 21741 ] ], "scala": [ @@ -20679,8 +22733,164 @@ 9125 ], [ - "2023-05-14T16:41:46", - 9131 + "2023-05-14T19:54:23", + 9139 + ], + [ + "2023-05-17T23:06:02", + 9367 + ], + [ + "2023-05-18T18:05:13", + 9391 + ], + [ + "2023-05-19T18:27:46", + 9423 + ], + [ + "2023-05-20T06:58:27", + 9425 + ], + [ + "2023-05-21T17:54:05", + 9425 + ], + [ + "2023-05-22T19:05:24", + 9629 + ], + [ + "2023-05-23T01:07:57", + 9666 + ], + [ + "2023-05-24T01:14:32", + 9920 + ], + [ + "2023-05-26T01:11:00", + 10646 + ], + [ + "2023-05-27T17:04:12", + 10996 + ], + [ + "2023-05-28T17:03:24", + 11028 + ], + [ + "2023-05-29T11:13:08", + 11127 + ], + [ + "2023-05-31T23:48:39", + 11861 + ], + [ + "2023-06-01T01:25:18", + 11923 + ], + [ + "2023-06-02T01:10:33", + 12363 + ], + [ + "2023-06-03T09:59:50", + 12567 + ], + [ + "2023-06-04T01:13:43", + 12589 + ], + [ + "2023-06-05T01:08:28", + 12635 + ], + [ + "2023-06-07T01:10:00", + 13067 + ], + [ + "2023-06-08T05:19:18", + 13248 + ], + [ + "2023-06-11T18:48:09", + 13693 + ], + [ + "2023-06-12T01:16:15", + 13734 + ], + [ + "2023-06-13T01:11:33", + 14118 + ], + [ + "2023-06-17T01:09:24", + 14849 + ], + [ + "2023-06-21T05:26:13", + 15511 + ], + [ + "2023-06-23T01:12:21", + 16060 + ], + [ + "2023-06-24T01:13:03", + 16321 + ], + [ + "2023-06-25T01:19:08", + 16342 + ], + [ + "2023-07-02T01:17:57", + 17810 + ], + [ + "2023-07-05T04:19:03", + 18325 + ], + [ + "2023-07-06T01:13:59", + 18553 + ], + [ + "2023-07-07T01:22:59", + 18849 + ], + [ + "2023-07-09T01:17:28", + 19004 + ], + [ + "2023-07-10T12:35:57", + 19221 + ], + [ + "2023-07-11T18:04:48", + 19473 + ], + [ + "2023-07-13T01:16:23", + 19652 + ], + [ + "2023-07-14T18:55:34", + 20018 + ], + [ + "2023-07-15T14:49:24", + 20096 + ], + [ + "2023-07-17T01:18:56", + 20204 ] ], "swift": [ @@ -22161,8 +24371,164 @@ 3698 ], [ - "2023-05-14T16:41:46", - 3704 + "2023-05-14T19:54:23", + 3710 + ], + [ + "2023-05-17T23:06:02", + 3724 + ], + [ + "2023-05-18T18:05:13", + 3734 + ], + [ + "2023-05-19T18:27:46", + 3747 + ], + [ + "2023-05-20T06:58:27", + 3750 + ], + [ + "2023-05-21T17:54:05", + 3750 + ], + [ + "2023-05-22T19:05:24", + 3752 + ], + [ + "2023-05-23T01:07:57", + 3754 + ], + [ + "2023-05-24T01:14:32", + 3770 + ], + [ + "2023-05-26T01:11:00", + 3778 + ], + [ + "2023-05-27T17:04:12", + 3797 + ], + [ + "2023-05-28T17:03:24", + 3801 + ], + [ + "2023-05-29T11:13:08", + 3804 + ], + [ + "2023-05-31T23:48:39", + 3831 + ], + [ + "2023-06-01T01:25:18", + 3834 + ], + [ + "2023-06-02T01:10:33", + 3841 + ], + [ + "2023-06-03T09:59:50", + 3851 + ], + [ + "2023-06-04T01:13:43", + 3853 + ], + [ + "2023-06-05T01:08:28", + 3855 + ], + [ + "2023-06-07T01:10:00", + 3867 + ], + [ + "2023-06-08T05:19:18", + 3879 + ], + [ + "2023-06-11T18:48:09", + 3900 + ], + [ + "2023-06-12T01:16:15", + 3903 + ], + [ + "2023-06-13T01:11:33", + 3911 + ], + [ + "2023-06-17T01:09:24", + 3962 + ], + [ + "2023-06-21T05:26:13", + 3980 + ], + [ + "2023-06-23T01:12:21", + 4003 + ], + [ + "2023-06-24T01:13:03", + 4006 + ], + [ + "2023-06-25T01:19:08", + 4008 + ], + [ + "2023-07-02T01:17:57", + 4066 + ], + [ + "2023-07-05T04:19:03", + 4077 + ], + [ + "2023-07-06T01:13:59", + 4086 + ], + [ + "2023-07-07T01:22:59", + 4089 + ], + [ + "2023-07-09T01:17:28", + 4094 + ], + [ + "2023-07-10T12:35:57", + 4104 + ], + [ + "2023-07-11T18:04:48", + 4111 + ], + [ + "2023-07-13T01:16:23", + 4128 + ], + [ + "2023-07-14T18:55:34", + 4149 + ], + [ + "2023-07-15T14:49:24", + 4153 + ], + [ + "2023-07-17T01:18:56", + 4155 ] ], "terraform": [ @@ -23647,8 +26013,164 @@ 235593 ], [ - "2023-05-14T16:41:46", - 235771 + "2023-05-14T19:54:23", + 235814 + ], + [ + "2023-05-17T23:06:02", + 238459 + ], + [ + "2023-05-18T18:05:13", + 239156 + ], + [ + "2023-05-19T18:27:46", + 239948 + ], + [ + "2023-05-20T06:58:27", + 240232 + ], + [ + "2023-05-21T17:54:05", + 240531 + ], + [ + "2023-05-22T19:05:24", + 241277 + ], + [ + "2023-05-23T01:07:57", + 241474 + ], + [ + "2023-05-24T01:14:32", + 242491 + ], + [ + "2023-05-26T01:11:00", + 244365 + ], + [ + "2023-05-27T17:04:12", + 245380 + ], + [ + "2023-05-28T17:03:24", + 245717 + ], + [ + "2023-05-29T11:13:08", + 245977 + ], + [ + "2023-05-31T23:48:39", + 248209 + ], + [ + "2023-06-01T01:25:18", + 248323 + ], + [ + "2023-06-02T01:10:33", + 249165 + ], + [ + "2023-06-03T09:59:50", + 249997 + ], + [ + "2023-06-04T01:13:43", + 250124 + ], + [ + "2023-06-05T01:08:28", + 250347 + ], + [ + "2023-06-07T01:10:00", + 252116 + ], + [ + "2023-06-08T05:19:18", + 253143 + ], + [ + "2023-06-11T18:48:09", + 254925 + ], + [ + "2023-06-12T01:16:15", + 255039 + ], + [ + "2023-06-13T01:11:33", + 255828 + ], + [ + "2023-06-17T01:09:24", + 259200 + ], + [ + "2023-06-21T05:26:13", + 261514 + ], + [ + "2023-06-23T01:12:21", + 262906 + ], + [ + "2023-06-24T01:13:03", + 263681 + ], + [ + "2023-06-25T01:19:08", + 263966 + ], + [ + "2023-07-02T01:17:57", + 269312 + ], + [ + "2023-07-05T04:19:03", + 271231 + ], + [ + "2023-07-06T01:13:59", + 271949 + ], + [ + "2023-07-07T01:22:59", + 272589 + ], + [ + "2023-07-09T01:17:28", + 273517 + ], + [ + "2023-07-10T12:35:57", + 274119 + ], + [ + "2023-07-11T18:04:48", + 275604 + ], + [ + "2023-07-13T01:16:23", + 276730 + ], + [ + "2023-07-14T18:55:34", + 278381 + ], + [ + "2023-07-15T14:49:24", + 278757 + ], + [ + "2023-07-17T01:18:56", + 279222 ] ] } \ No newline at end of file diff --git a/.automation/generated/linter-helps.json b/.automation/generated/linter-helps.json index a187dc895f9..9f22902efbb 100644 --- a/.automation/generated/linter-helps.json +++ b/.automation/generated/linter-helps.json @@ -130,7 +130,7 @@ " -w WARN_LIST, --warn-list WARN_LIST", " only warn about these rules, unless overridden in", " config file. Current version default value is:", - " experimental, jinja[spacing]", + " experimental, jinja[spacing], fqcn[deep]", " --enable-list ENABLE_LIST", " activate optional rules by their tag name", " --nocolor disable colored output, same as NO_COLOR=1", @@ -140,7 +140,8 @@ " repeatable.", " -c CONFIG_FILE, --config-file CONFIG_FILE", " Specify configuration file to use. By default it will", - " look for '.ansible-lint' or '.config/ansible-lint.yml'", + " look for '.ansible-lint', '.config/ansible-lint.yml',", + " or '.config/ansible-lint.yaml'", " -i IGNORE_FILE, --ignore-file IGNORE_FILE", " Specify ignore file to use. By default it will look", " for '.ansible-lint-ignore' or '.config/ansible-lint-", @@ -369,7 +370,7 @@ "General help using GNU software: " ], "bicep_linter": [ - "Bicep CLI version 0.17.1 (d423d61882)", + "Bicep CLI version 0.19.5 (87ca110fc0)", "", "Usage:", " bicep build [options] ", @@ -379,10 +380,11 @@ " The input file", "", " Options:", - " --outdir Saves the output at the specified directory.", - " --outfile Saves the output as the specified file path.", - " --stdout Prints the output to stdout.", - " --no-restore Builds the bicep file without restoring external modules.", + " --outdir Saves the output at the specified directory.", + " --outfile Saves the output as the specified file path.", + " --stdout Prints the output to stdout.", + " --no-restore Builds the bicep file without restoring external modules.", + " --diagnostics-format Sets the format with which diagnostics are displayed. Valid values are ( Default | Sarif ).", "", " Examples:", " bicep build file.bicep", @@ -390,6 +392,7 @@ " bicep build file.bicep --outdir dir1", " bicep build file.bicep --outfile file.json", " bicep build file.bicep --no-restore", + " bicep build file.bicep --diagnostics-format sarif", "", " bicep format [options] ", " Formats a .bicep file.", @@ -423,7 +426,7 @@ " --outdir Saves the output at the specified directory.", " --outfile Saves the output as the specified file path.", " --stdout Prints the output to stdout.", - " --force Allows overwriting the output file if it exists (applies only to 'bicep decompile').", + " --force Allows overwriting the output file if it exists (applies only to 'bicep decompile' or 'bicep decompile-params').", "", " Examples:", " bicep decompile file.json", @@ -432,8 +435,29 @@ " bicep decompile file.json --force", " bicep decompile file.json --outfile file.bicep", "", + " bicep decompile-params [options] ", + " Attempts to decompile a parameters .json file to .bicepparam.", + "", + " Arguments:", + " The input file", + "", + " Options:", + " --outdir Saves the output at the specified directory.", + " --outfile Saves the output as the specified file path.", + " --stdout Prints the output to stdout.", + " --force Allows overwriting the output file if it exists (applies only to 'bicep decompile' or 'bicep decompile-params').", + " --bicep-file Path to the bicep template file (relative to the .bicepparam file) that will be referenced in the using declaration", + "", + " Examples:", + " bicep decompile-params file.json", + " bicep decompile-params file.json --bicep-file ./dir/main.bicep", + " bicep decompile-params file.json --stdout", + " bicep decompile-params file.json --outdir dir1", + " bicep decompile-params file.json --force", + " bicep decompile-params file.json --outfile file.bicepparam", + "", " bicep generate-params [options] ", - " Builds .parameters.json file from the given bicep file, updates if there is an existing parameters.json file.", + " Builds parameters file from the given bicep file, updates if there is an existing parameters file.", "", " Arguments:", " The input file", @@ -443,6 +467,8 @@ " --outdir Saves the output at the specified directory.", " --outfile Saves the output as the specified file path.", " --stdout Prints the output to stdout.", + " --output-format Selects the output format {json, bicepparam}", + " --include-params Selects which parameters to include into output {requiredonly, all}", "", " Examples:", " bicep generate-params file.bicep", @@ -450,7 +476,7 @@ " bicep generate-params file.bicep --stdout", " bicep generate-params file.bicep --outdir dir1", " bicep generate-params file.bicep --outfile file.parameters.json", - "", + " bicep generate-params file.bicep --output-format bicepparam --include-params all", "", " bicep publish --target ", " Publishes the .bicep file to the module registry.", @@ -475,16 +501,15 @@ " Arguments:", " The input file", "", - " bicep [options]", + " bicep [options]", " Options:", " --version -v Shows bicep version information", " --help -h Shows this usage information", " --license Prints license information", " --third-party-notices Prints third-party notices", "", - "", " bicep build-params ", - " Builds .bicepparam file.", + " Builds a .json file from a .bicepparam file.", "", " Arguments:", " The input Bicepparam file", @@ -500,7 +525,6 @@ " bicep build-params params.bicepparam --stdout", " bicep build-params params.bicepparam --outfile otherParams.json", " bicep build-params params.bicepparam --no-restore", - "", "" ], "black": [ @@ -512,7 +536,7 @@ " -c, --code TEXT Format the code passed in as a string.", " -l, --line-length INTEGER How many characters per line to allow.", " [default: 88]", - " -t, --target-version [py33|py34|py35|py36|py37|py38|py39|py310|py311]", + " -t, --target-version [py33|py34|py35|py36|py37|py38|py39|py310|py311|py312]", " Python versions that should be supported by", " Black's output. By default, Black will try", " to infer this from the project metadata in", @@ -571,9 +595,10 @@ " directories on all platforms (Windows, too).", " Exclusions are calculated first, inclusions", " later. [default: /(\\.direnv|\\.eggs|\\.git|\\.h", - " g|\\.mypy_cache|\\.nox|\\.tox|\\.venv|venv|\\.svn", - " |\\.ipynb_checkpoints|_build|buck-", - " out|build|dist|__pypackages__)/]", + " g|\\.ipynb_checkpoints|\\.mypy_cache|\\.nox|\\.p", + " ytest_cache|\\.ruff_cache|\\.tox|\\.svn|\\.venv|", + " \\.vscode|__pypackages__|_build|buck-", + " out|build|dist|venv)/]", " --extend-exclude TEXT Like --exclude, but adds additional files", " and directories on top of the excluded ones.", " (Useful if you simply want to add to the", @@ -586,8 +611,9 @@ " stdin. Useful to make sure Black will", " respect --force-exclude option on some", " editors that rely on using stdin.", - " -W, --workers INTEGER RANGE Number of parallel workers [default: number", - " of CPUs in the system] [x>=1]", + " -W, --workers INTEGER RANGE Number of parallel workers [default:", + " BLACK_NUM_WORKERS environment variable or", + " number of CPUs in the system] [x>=1]", " -q, --quiet Don't emit non-error messages to stderr.", " Errors are still emitted; silence those with", " 2>/dev/null.", @@ -602,7 +628,7 @@ "usage:", "Basic: cfn-lint test.yaml", "Ignore a rule: cfn-lint -i E3012 -- test.yaml", - "Configure a rule: cfn-lint -x E3012:strict=false -t test.yaml", + "Configure a rule: cfn-lint -x E3012:strict=true -t test.yaml", "Lint all yaml files in a folder: cfn-lint dir/**/*.yaml", "", "CloudFormation Linter", @@ -634,7 +660,7 @@ " Include experimental rules", " -x CONFIGURE_RULES [CONFIGURE_RULES ...], --configure-rule CONFIGURE_RULES [CONFIGURE_RULES ...]", " Provide configuration for a rule. Format", - " RuleId:key=value. Example: E3012:strict=false", + " RuleId:key=value. Example: E3012:strict=true", " --config-file CONFIG_FILE", " Specify the cfnlintrc file to use", " -z CUSTOM_RULES, --custom-rules CUSTOM_RULES", @@ -682,11 +708,11 @@ " --list-rules List registered rules" ], "checkov": [ - "usage: checkov [-h] [-v] [--support] [-d DIRECTORY] [--add-check] [-f FILE]", - " [--skip-path SKIP_PATH]", + "usage: checkov [-h] [-v] [--support] [-d DIRECTORY] [--add-check]", + " [-f FILE [FILE ...]] [--skip-path SKIP_PATH]", " [--external-checks-dir EXTERNAL_CHECKS_DIR]", " [--external-checks-git EXTERNAL_CHECKS_GIT] [-l]", - " [-o {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv}]", + " [-o {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx}]", " [--output-file-path OUTPUT_FILE_PATH] [--output-bc-ids]", " [--include-all-checkov-policies] [--quiet] [--compact]", " [--framework {ansible,argo_workflows,arm,azure_pipelines,bicep,bitbucket_pipelines,circleci_pipelines,cloudformation,dockerfile,github_configuration,github_actions,gitlab_configuration,gitlab_ci,bitbucket_configuration,helm,json,yaml,kubernetes,kustomize,openapi,sca_package,sca_image,secrets,serverless,terraform,terraform_json,terraform_plan,3d_policy,all} [{ansible,argo_workflows,arm,azure_pipelines,bicep,bitbucket_pipelines,circleci_pipelines,cloudformation,dockerfile,github_configuration,github_actions,gitlab_configuration,gitlab_ci,bitbucket_configuration,helm,json,yaml,kubernetes,kustomize,openapi,sca_package,sca_image,secrets,serverless,terraform,terraform_json,terraform_plan,3d_policy,all} ...]]", @@ -694,7 +720,8 @@ " [-c CHECK] [--skip-check SKIP_CHECK]", " [--run-all-external-checks] [-s] [--soft-fail-on SOFT_FAIL_ON]", " [--hard-fail-on HARD_FAIL_ON] [--bc-api-key BC_API_KEY]", - " [--prisma-api-url PRISMA_API_URL] [--docker-image DOCKER_IMAGE]", + " [--prisma-api-url PRISMA_API_URL] [--skip-results-upload]", + " [--docker-image DOCKER_IMAGE]", " [--dockerfile-path DOCKERFILE_PATH] [--repo-id REPO_ID]", " [-b BRANCH] [--skip-download] [--use-enforcement-rules]", " [--no-guide] [--skip-suppressions] [--skip-policy-download]", @@ -730,7 +757,8 @@ " IaC root directory (can not be used together with", " --file).", " --add-check Generate a new check via CLI prompt", - " -f FILE, --file FILE File to scan (can not be used together with", + " -f FILE [FILE ...], --file FILE [FILE ...]", + " File to scan (can not be used together with", " --directory). With this option, Checkov will attempt", " to filter the runners based on the file type. For", " example, if you specify a \".tf\" file, only the", @@ -752,7 +780,7 @@ " specify a subdirectory after a double-slash //. cannot", " be used together with --external-checks-dir", " -l, --list List checks", - " -o {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv}, --output {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv}", + " -o {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx}, --output {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx}", " Report output format. Add multiple outputs by using", " the flag multiple times (-o sarif -o cli)", " --output-file-path OUTPUT_FILE_PATH", @@ -872,6 +900,11 @@ " --bc-api-key to be a Prisma Cloud Access Key in the", " following format: :: [env", " var: PRISMA_API_URL]", + " --skip-results-upload", + " Do not upload scan results to the platform to view in", + " the console. Results are only available locally. If", + " you use the --support flag, logs will still get", + " uploaded.", " --docker-image DOCKER_IMAGE, --image DOCKER_IMAGE", " Scan docker images by name or ID. Only works with", " --bc-api-key flag", @@ -1007,13 +1040,12 @@ " receive enhanced guidelines using", " CKV_OPENAI_MAX_FINDINGS [env var: CKV_OPENAI_API_KEY]", "", - "Args that start with '--' (eg. -v) can also be set in a config file", - "(/.checkov.yaml or /.checkov.yml or /root/.checkov.yaml or /root/.checkov.yml", - "or specified via --config-file). The config file uses YAML syntax and must", - "represent a YAML 'mapping' (for details, see", - "http://learn.getgrav.org/advanced/yaml). If an arg is specified in more than", - "one place, then commandline values override environment variables which", - "override config file values which override defaults." + "Args that start with '--' can also be set in a config file (/.checkov.yaml or", + "/.checkov.yml or /root/.checkov.yaml or /root/.checkov.yml or specified via", + "--config-file). The config file uses YAML syntax and must represent a YAML", + "'mapping' (for details, see http://learn.getgrav.org/advanced/yaml). In", + "general, command-line values override environment variables which override", + "config file values which override defaults." ], "checkstyle": [ "Usage: java [options] [args...]", @@ -1193,12 +1225,12 @@ "", "Common options:", " --no-deps Run Clippy only on the given crate, without linting the dependencies", - " --fix Automatically apply lint suggestions. This flag implies `--no-deps`", + " --fix Automatically apply lint suggestions. This flag implies `--no-deps` and `--all-targets`", " -h, --help Print this message", " -V, --version Print version info and exit", " --explain LINT Print the documentation for a given lint", "", - "Other options are the same as `cargo check`.", + "For the other options see `cargo check --help`.", "", "To allow or deny a lint from the command line you can use `cargo clippy --`", "with:", @@ -1214,7 +1246,7 @@ "" ], "clj-kondo": [ - "clj-kondo v2023.04.14", + "clj-kondo v2023.07.13", "", "", "Options:", @@ -1237,7 +1269,7 @@ " nearest `.clj-kondo` directory in the current and parent directories.", "", " --config : config may be a file or an EDN expression. See", - " https://cljdoc.org/d/clj-kondo/clj-kondo/2023.04.14/doc/configuration", + " https://cljdoc.org/d/clj-kondo/clj-kondo/2023.07.13/doc/configuration", "", " --config-dir : use this config directory instead of auto-detected", " .clj-kondo dir.", @@ -1528,7 +1560,9 @@ "", "Options:", " --check Check that files are formatted. Will not write any changes.", + " --loglevel Specify the log level - Debug, Information (default), Warning, Error, None [default: Information]", " --no-cache Bypass the cache to determine if a file needs to be formatted.", + " --no-msbuild-check Bypass the check to determine if a csproj files references a different version of CSharpier.MsBuild.", " --fast Skip comparing syntax tree of formatted file to original file to validate changes.", " --skip-write Skip writing changes. Generally used for testing to ensure csharpier doesn't throw any errors or cause syntax tree validation failures.", " --write-stdout Write the results of formatting any files to stdout.", @@ -1587,22 +1621,20 @@ "" ], "devskim": [ - "Microsoft DevSkim Command Line Interface 0.7.104+bd34d6c82b", + "devskim 1.0.11+87ad45b866", + "\u00a9 Microsoft Corporation. All rights reserved.", "", - "Usage: devskim [options] [command]", + " analyze Analyze source code using DevSkim", "", - "Options:", - " -?|-h|--help Show help information", - " -v|--version Show version information", + " fix Apply fixes from a Sarif", "", - "Commands:", - " analyze Analyze source code", - " catalogue Create csv file catalogue of rules", - " pack Pack rules into a single file", - " test Run tests for rules", - " verify Verify integrity and syntax of rules", + " verify Verify rule validity", + "", + " suppress Suppress issues identified in a DevSkim Sarif", "", - "Use \"devskim [command] --help\" for more information about a command.", + " help Display more information on a specific command.", + "", + " version Display version information.", "" ], "djlint": [ @@ -1661,6 +1693,12 @@ " --indent-js INTEGER Set JS indent level.", " --close-void-tags Add closing mark on known void tags. Ex:", " becomse ", + " --no-line-after-yaml Do not add a blank line after yaml front", + " matter.", + " --no-function-formatting Do not attempt to format function contents.", + " --no-set-formatting Do not attempt to format set contents.", + " --max-blank-lines INTEGER Consolidate blank lines down to x lines.", + " [default: 0]", " -h, --help Show this message and exit." ], "dockerfilelint": [ @@ -2118,7 +2156,7 @@ " --no-banner suppress banner", " --no-color turn off color for verbose output", " --redact redact secrets from logs and stdout", - " -f, --report-format string output format (json, csv, sarif) (default \"json\")", + " -f, --report-format string output format (json, csv, junit, sarif) (default \"json\")", " -r, --report-path string report file", " -s, --source string path to source (default \".\")", " -v, --verbose show verbose output from scan", @@ -2182,6 +2220,60 @@ " --version output the version number", " -h, --help output usage information" ], + "grype": [ + "A vulnerability scanner for container images, filesystems, and SBOMs.", + "", + "Supports the following image sources:", + " grype yourrepo/yourimage:tag defaults to using images from a Docker daemon", + " grype path/to/yourproject a Docker tar, OCI tar, OCI directory, SIF container, or generic filesystem directory", + "", + "You can also explicitly specify the scheme to use:", + " grype podman:yourrepo/yourimage:tag explicitly use the Podman daemon", + " grype docker:yourrepo/yourimage:tag explicitly use the Docker daemon", + " grype docker-archive:path/to/yourimage.tar use a tarball from disk for archives created from \"docker save\"", + " grype oci-archive:path/to/yourimage.tar use a tarball from disk for OCI archives (from Podman or otherwise)", + " grype oci-dir:path/to/yourimage read directly from a path on disk for OCI layout directories (from Skopeo or otherwise)", + " grype singularity:path/to/yourimage.sif read directly from a Singularity Image Format (SIF) container on disk", + " grype dir:path/to/yourproject read directly from a path on disk (any directory)", + " grype sbom:path/to/syft.json read Syft JSON from path on disk", + " grype registry:yourrepo/yourimage:tag pull image directly from a registry (no container runtime required)", + " grype purl:path/to/purl/file read a newline separated file of purls from a path on disk", + "", + "You can also pipe in Syft JSON directly:", + " syft yourimage:tag -o json | grype", + "", + "Usage:", + " grype [IMAGE] [flags]", + " grype [command]", + "", + "Available Commands:", + " completion Generate a shell completion for Grype (listing local docker images)", + " db vulnerability database operations", + " help Help about any command", + " version show the version", + "", + "Flags:", + " --add-cpes-if-none generate CPEs for packages with no CPE data", + " --by-cve orient results by CVE instead of the original vulnerability ID when possible", + " -c, --config string application config file", + " --distro string distro to match against in the format: :", + " --exclude stringArray exclude paths from being scanned using a glob expression", + " -f, --fail-on string set the return code to 1 if a vulnerability is found with a severity >= the given severity, options=[negligible low medium high critical]", + " --file string file to write the report output to (default is STDOUT)", + " -h, --help help for grype", + " --name string set the name of the target being analyzed", + " --only-fixed ignore matches for vulnerabilities that are not fixed", + " --only-notfixed ignore matches for vulnerabilities that are fixed", + " -o, --output string report output formatter, formats=[json table cyclonedx cyclonedx-json sarif template], deprecated formats=[embedded-cyclonedx-vex-json embedded-cyclonedx-vex-xml]", + " --platform string an optional platform specifier for container image sources (e.g. 'linux/arm64', 'linux/arm64/v8', 'arm64', 'linux')", + " -q, --quiet suppress all logging output", + " -s, --scope string selection of layers to analyze, options=[Squashed AllLayers] (default \"Squashed\")", + " --show-suppressed show suppressed/ignored vulnerabilities in the output (only supported with table output format)", + " -t, --template string specify the path to a Go template file (requires 'template' output to be selected)", + " -v, --verbose count increase verbosity (-v = info, -vv = debug)", + "", + "Use \"grype [command] --help\" for more information about a command." + ], "hadolint": [ "hadolint - Dockerfile Linter written in Haskell", "", @@ -2923,7 +3015,7 @@ " Comma-separated list of rules to globally disable. To", " disable standard ktlint rule-set use", " --disabled_rules=standard", - " -F, --format Fix any deviations from the code style", + " -F, --format Fix deviations from the code style when possible", " --limit= Maximum number of errors to show (default: show all)", " --relative Print files relative to the working directory (e.g.", " dir/file.kt instead of /home/user/project/dir/file.kt)", @@ -2985,7 +3077,7 @@ " -n int", " number of goroutines to run concurrently (default 4)", " -output string", - " output format - json, junit, tap, text (default \"text\")", + " output format - json, junit, pretty, tap, text (default \"text\")", " -reject string", " comma-separated list of kinds or GVKs to reject", " -schema-location value", @@ -3001,6 +3093,49 @@ " print results for all resources (ignored for tap and junit output)", "" ], + "kubescape": [ + "Kubescape is a tool for testing Kubernetes security posture. Docs: https://hub.armosec.io/docs", + "", + "Usage:", + " kubescape [command]", + "", + "Examples:", + "", + " # Scan command", + " kubescape scan", + "", + " # List supported frameworks", + " kubescape list frameworks", + "", + " # Download artifacts (air-gapped environment support)", + " kubescape download artifacts", + "", + " # View cached configurations", + " kubescape config view", + "", + "", + "Available Commands:", + " completion Generate autocompletion script", + " config Handle cached configurations", + " delete Delete configurations in Kubescape SaaS version", + " download Download exceptions,control,framework,artifacts,attack-tracks,controls-inputs", + " fix Fix misconfiguration in files", + " help Help about any command", + " list List frameworks/controls will list the supported frameworks and controls", + " scan Scan the current running cluster or yaml files", + " submit Submit an object to the Kubescape SaaS version", + " update Update your version", + " version Get current version", + "", + "Flags:", + " --cache-dir string Cache directory [$KS_CACHE_DIR] (default \"/root/.kubescape\")", + " --disable-color Disable Color output for logging", + " --enable-color Force enable Color output for logging", + " -h, --help help for kubescape", + " -l, --logger string Logger level. Supported: debug/info/success/warning/error/fatal [$KS_LOGGER] (default \"info\")", + "", + "Use \"kubescape [command] --help\" for more information about a command." + ], "kubeval": [ "Validate a Kubernetes YAML file against the relevant schema", "", @@ -3056,7 +3191,7 @@ " [--exclude-files [] ...]", " [--include-files [] ...]", "", - "luacheck 1.1.0, a linter and a static analyzer for Lua.", + "luacheck 1.1.1, a linter and a static analyzer for Lua.", "", "Arguments:", " files List of files, directories and rockspecs to check. Pass", @@ -3220,6 +3355,173 @@ " Luacheck on GitHub: https://github.com/lunarmodules/luacheck", " Luacheck documentation: https://luacheck.readthedocs.org" ], + "lychee": [ + "A fast, async link checker", + "", + "Finds broken URLs and mail addresses inside Markdown, HTML, `reStructuredText`, websites and more!", + "", + "Usage: lychee [OPTIONS] ...", + "", + "Arguments:", + " ...", + " The inputs (where to get links to check from). These can be: files (e.g. `README.md`), file globs (e.g. `\"~/git/*/README.md\"`), remote URLs (e.g. `https://example.com/README.md`) or standard input (`-`). NOTE: Use `--` to separate inputs from options that allow multiple arguments", + "", + "Options:", + " -c, --config ", + " Configuration file to use", + "", + " [default: lychee.toml]", + "", + " -v, --verbose...", + " Set verbosity level; more output per occurrence (e.g. `-v` or `-vv`)", + "", + " -q, --quiet...", + " Less output per occurrence (e.g. `-q` or `-qq`)", + "", + " -n, --no-progress", + " Do not show progress bar.", + " This is recommended for non-interactive shells (e.g. for continuous integration)", + "", + " --cache", + " Use request cache stored on disk at `.lycheecache`", + "", + " --max-cache-age ", + " Discard all cached requests older than this duration", + "", + " [default: 1d]", + "", + " --dump", + " Don't perform any link checking. Instead, dump all the links extracted from inputs that would be checked", + "", + " --archive ", + " Specify the use of a specific web archive. Can be used in combination with `--suggest`", + "", + " [possible values: wayback]", + "", + " --suggest", + " Suggest link replacements for broken links, using a web archive. The web archive can be specified with `--archive`", + "", + " -m, --max-redirects ", + " Maximum number of allowed redirects", + "", + " [default: 5]", + "", + " --max-retries ", + " Maximum number of retries per request", + "", + " [default: 3]", + "", + " --max-concurrency ", + " Maximum number of concurrent network requests", + "", + " [default: 128]", + "", + " -T, --threads ", + " Number of threads to utilize. Defaults to number of cores available to the system", + "", + " -u, --user-agent ", + " User agent", + "", + " [default: lychee/0.13.0]", + "", + " -i, --insecure", + " Proceed for server connections considered insecure (invalid TLS)", + "", + " -s, --scheme ", + " Only test links with the given schemes (e.g. http and https)", + "", + " --offline", + " Only check local files and block network requests", + "", + " --include ", + " URLs to check (supports regex). Has preference over all excludes", + "", + " --exclude ", + " Exclude URLs and mail addresses from checking (supports regex)", + "", + " --exclude-file ", + " Deprecated; use `--exclude-path` instead", + "", + " --exclude-path ", + " Exclude file path from getting checked", + "", + " -E, --exclude-all-private", + " Exclude all private IPs from checking.", + " Equivalent to `--exclude-private --exclude-link-local --exclude-loopback`", + "", + " --exclude-private", + " Exclude private IP address ranges from checking", + "", + " --exclude-link-local", + " Exclude link-local IP address range from checking", + "", + " --exclude-loopback", + " Exclude loopback IP address range and localhost from checking", + "", + " --exclude-mail", + " Exclude all mail addresses from checking", + "", + " --remap ", + " Remap URI matching pattern to different URI", + "", + " --header
", + " Custom request header", + "", + " -a, --accept ", + " Comma-separated list of accepted status codes for valid links", + "", + " -t, --timeout ", + " Website timeout in seconds from connect to response finished", + "", + " [default: 20]", + "", + " -r, --retry-wait-time ", + " Minimum wait time in seconds between retries of failed requests", + "", + " [default: 1]", + "", + " -X, --method ", + " Request method", + "", + " [default: get]", + "", + " -b, --base ", + " Base URL or website root directory to check relative URLs e.g. https://example.com or `/path/to/public`", + "", + " --basic-auth ", + " Basic authentication support. E.g. `username:password`", + "", + " --github-token ", + " GitHub API token to use when checking github.com links, to avoid rate limiting", + "", + " [env: GITHUB_TOKEN]", + "", + " --skip-missing", + " Skip missing input files (default is to error if they don't exist)", + "", + " --include-verbatim", + " Find links in verbatim sections like `pre`- and `code` blocks", + "", + " --glob-ignore-case", + " Ignore case when expanding filesystem path glob inputs", + "", + " -o, --output ", + " Output file of status report", + "", + " -f, --format ", + " Output format of final status report (compact, detailed, json, markdown)", + "", + " [default: compact]", + "", + " --require-https", + " When HTTPS is available, treat HTTP links as errors", + "", + " -h, --help", + " Print help (see a summary with '-h')", + "", + " -V, --version", + " Print version" + ], "markdown-link-check": [ "Usage: markdown-link-check [options] [filenamesOrUrls...]", "", @@ -3401,7 +3703,9 @@ " (inverse: --allow-untyped-defs)", " --disallow-incomplete-defs", " Disallow defining functions with incomplete type", - " annotations (inverse: --allow-incomplete-defs)", + " annotations (while still allowing entirely", + " unannotated definitions) (inverse: --allow-", + " incomplete-defs)", " --check-untyped-defs Type check the interior of functions without type", " annotations (inverse: --no-check-untyped-defs)", " --disallow-untyped-decorators", @@ -3780,32 +4084,35 @@ ], "phplint": [ "Description:", - " Lint something", + " Files syntax check only", "", "Usage:", - " phplint [options] [--] [...]", + " lint [options] [--] [...]", "", "Arguments:", - " path Path to file or directory to lint.", + " path Path to file or directory to lint (default: working directory)", "", "Options:", " --exclude=EXCLUDE Path to file or directory to exclude from linting (multiple values allowed)", - " --extensions=EXTENSIONS Check only files with selected extensions (default: php)", - " -j, --jobs=JOBS Number of parraled jobs to run (default: 5)", - " -c, --configuration=CONFIGURATION Read configuration from config file (default: ./.phplint.yml).", - " --no-configuration Ignore default configuration file (default: ./.phplint.yml).", - " --no-cache Ignore cached data.", - " --cache=CACHE Path to the cache file.", - " --no-progress Hide the progress output.", - " --json[=JSON] Path to store JSON results.", - " --xml[=XML] Path to store JUnit XML results.", - " -w, --warning Also show warnings.", + " --extensions=EXTENSIONS Check only files with selected extensions (multiple values allowed)", + " -j, --jobs=JOBS Number of paralleled jobs to run", + " -c, --configuration=CONFIGURATION Read configuration from config file [default: \".phplint.yml\"]", + " --no-configuration Ignore default configuration file (.phplint.yml)", + " --cache=CACHE Path to the cache directory", + " --no-cache Ignore cached data", + " -p, --progress=PROGRESS Show the progress output", + " --no-progress Hide the progress output", + " --log-json[=LOG-JSON] Log scan results in JSON format to file (default: standard output)", + " --log-junit[=LOG-JUNIT] Log scan results in JUnit XML format to file (default: standard output)", + " -w, --warning Also show warnings", + " --memory-limit=MEMORY-LIMIT Memory limit for analysis", + " --ignore-exit-code Ignore exit codes so there are no \"failure\" exit code even when no files processed", + " -h, --help Display help for the given command. When no command is given display help for the lint command", " -q, --quiet Do not output any message", - " --no-files-exit-code Throw error if no files processed.", - " -h, --help Display help for the given command. When no command is given display help for the list command", " -V, --version Display this application version", " --ansi|--no-ansi Force (or disable --no-ansi) ANSI output", " -n, --no-interaction Do not ask any interactive question", + " --manifest Show which versions of dependencies are bundled", " -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug" ], "phpstan": [ @@ -4713,9 +5020,9 @@ " Defaults to false.", " --tab-width Number of spaces per indentation level.", " Defaults to 2.", - " --trailing-comma ", + " --trailing-comma ", " Print trailing commas wherever possible when multi-line.", - " Defaults to es5.", + " Defaults to all.", " --use-tabs Indent with tabs instead of spaces.", " Defaults to false.", " --vue-indent-script-and-style", @@ -4733,13 +5040,9 @@ " --find-config-path ", " Find and print the path to a configuration file for the given input file.", " --ignore-path Path to a file with patterns describing files to ignore.", - " Defaults to .prettierignore.", - " --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s.", - " Defaults to [].", - " --plugin-search-dir ", - " Custom directory that contains prettier plugins in node_modules subdirectory.", - " Overrides default behavior when plugins are searched relatively to the location of Prettier.", " Multiple values are accepted.", + " Defaults to [.gitignore, .prettierignore].", + " --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s.", " Defaults to [].", " --with-node-modules Process files inside 'node_modules' directory.", "", @@ -4775,10 +5078,9 @@ " -u, --ignore-unknown Ignore unknown files.", " --insert-pragma Insert @format pragma into file's first docblock comment.", " Defaults to false.", - " --loglevel ", + " --log-level ", " What level of logs to report.", " Defaults to log.", - " --no-plugin-search Disable plugin autoloading.", " --require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment", " in order for it to be formatted.", " Defaults to false.", @@ -5293,6 +5595,148 @@ " Warning level messages displayed, use \"--disable=all", " --enable=classes --disable=W\".", "", + "Exceptions:", + " Exception related checks.", + "", + " --overgeneral-exceptions ", + " Exceptions that will emit a warning when caught.", + " (default: ('builtins.BaseException',", + " 'builtins.Exception'))", + "", + "Format:", + " Formatting checker.", + "", + " --max-line-length ", + " Maximum number of characters on a single line.", + " (default: 100)", + " --ignore-long-lines ", + " Regexp for a line that is allowed to be longer than", + " the limit. (default: ^\\s*(# )??$)", + " --single-line-if-stmt ", + " Allow the body of an if to be on the same line as the", + " test if there is no else. (default: False)", + " --single-line-class-stmt ", + " Allow the body of a class to be on the same line as", + " the declaration if body contains single statement.", + " (default: False)", + " --max-module-lines ", + " Maximum number of lines in a module. (default: 1000)", + " --indent-string ", + " String used as indentation unit. This is usually \" \"", + " (4 spaces) or \" \" (1 tab). (default: )", + " --indent-after-paren ", + " Number of spaces of indent required inside a hanging", + " or continued line. (default: 4)", + " --expected-line-ending-format ", + " Expected format of line ending, e.g. empty (any line", + " ending), LF or CRLF. (default: )", + "", + "Design:", + " Checker of potential misdesigns.", + "", + " --max-args Maximum number of arguments for function / method.", + " (default: 5)", + " --max-locals Maximum number of locals for function / method body.", + " (default: 15)", + " --max-returns Maximum number of return / yield for function / method", + " body. (default: 6)", + " --max-branches Maximum number of branch for function / method body.", + " (default: 12)", + " --max-statements ", + " Maximum number of statements in function / method", + " body. (default: 50)", + " --max-parents Maximum number of parents for a class (see R0901).", + " (default: 7)", + " --ignored-parents ", + " List of qualified class names to ignore when counting", + " class parents (see R0901) (default: ())", + " --max-attributes ", + " Maximum number of attributes for a class (see R0902).", + " (default: 7)", + " --min-public-methods ", + " Minimum number of public methods for a class (see", + " R0903). (default: 2)", + " --max-public-methods ", + " Maximum number of public methods for a class (see", + " R0904). (default: 20)", + " --max-bool-expr ", + " Maximum number of boolean expressions in an if", + " statement (see R0916). (default: 5)", + " --exclude-too-few-public-methods [,...]", + " List of regular expressions of class ancestor names to", + " ignore when counting public methods (see R0903)", + " (default: [])", + "", + "Imports:", + " BaseChecker for import statements.", + "", + " --deprecated-modules ", + " Deprecated modules which should not be used, separated", + " by a comma. (default: ())", + " --preferred-modules ", + " Couples of modules and preferred modules, separated by", + " a comma. (default: ())", + " --import-graph ", + " Output a graph (.gv or any supported image format) of", + " all (i.e. internal and external) dependencies to the", + " given file (report RP0402 must not be disabled).", + " (default: )", + " --ext-import-graph ", + " Output a graph (.gv or any supported image format) of", + " external dependencies to the given file (report RP0402", + " must not be disabled). (default: )", + " --int-import-graph ", + " Output a graph (.gv or any supported image format) of", + " internal dependencies to the given file (report RP0402", + " must not be disabled). (default: )", + " --known-standard-library ", + " Force import order to recognize a module as part of", + " the standard compatibility libraries. (default: ())", + " --known-third-party ", + " Force import order to recognize a module as part of a", + " third party library. (default: ('enchant',))", + " --allow-any-import-level ", + " List of modules that can be imported at any level, not", + " just the top level one. (default: ())", + " --allow-wildcard-with-all ", + " Allow wildcard imports from modules that define", + " __all__. (default: False)", + " --allow-reexport-from-package ", + " Allow explicit reexports by alias from a package", + " __init__. (default: False)", + "", + "String:", + " Check string literals.", + "", + " --check-str-concat-over-line-jumps ", + " This flag controls whether the implicit-str-concat", + " should generate a warning on implicit string", + " concatenation in sequences defined over several lines.", + " (default: False)", + " --check-quote-consistency ", + " This flag controls whether inconsistent-quotes", + " generates a warning when the character used as a quote", + " delimiter is used inconsistently within a module.", + " (default: False)", + "", + "Similarities:", + " Checks for similarities and duplicated code.", + "", + " --min-similarity-lines ", + " Minimum lines number of a similarity. (default: 4)", + " --ignore-comments ", + " Comments are removed from the similarity computation", + " (default: True)", + " --ignore-docstrings ", + " Docstrings are removed from the similarity computation", + " (default: True)", + " --ignore-imports ", + " Imports are removed from the similarity computation", + " (default: True)", + " --ignore-signatures ", + " Signatures are removed from the similarity computation", + " (default: True)", + "", "Miscellaneous:", " BaseChecker for encoding issues.", "", @@ -5302,86 +5746,6 @@ " --notes-rgx Regular expression of note tags to take in", " consideration. (default: )", "", - "Spelling:", - " Check spelling in comments and docstrings.", - "", - " --spelling-dict ", - " Spelling dictionary name. No available dictionaries :", - " You need to install both the python package and the", - " system dependency for enchant to work.. (default: )", - " --spelling-ignore-words ", - " List of comma separated words that should not be", - " checked. (default: )", - " --spelling-private-dict-file ", - " A path to a file that contains the private dictionary;", - " one word per line. (default: )", - " --spelling-store-unknown-words ", - " Tells whether to store unknown words to the private", - " dictionary (see the --spelling-private-dict-file", - " option) instead of raising a message. (default: n)", - " --max-spelling-suggestions N", - " Limits count of emitted suggestions for spelling", - " mistakes. (default: 4)", - " --spelling-ignore-comment-directives ", - " List of comma separated words that should be", - " considered directives if they appear at the beginning", - " of a comment and should not be checked. (default: fmt:", - " on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:)", - "", - "Classes:", - " Checker for class nodes.", - "", - " --defining-attr-methods ", - " List of method names used to declare (i.e. assign)", - " instance attributes. (default: ('__init__', '__new__',", - " 'setUp', 'asyncSetUp', '__post_init__'))", - " --valid-classmethod-first-arg ", - " List of valid names for the first argument in a class", - " method. (default: ('cls',))", - " --valid-metaclass-classmethod-first-arg ", - " List of valid names for the first argument in a", - " metaclass class method. (default: ('mcs',))", - " --exclude-protected ", - " List of member names, which should be excluded from", - " the protected access warning. (default: ('_asdict',", - " '_fields', '_replace', '_source', '_make',", - " 'os._exit'))", - " --check-protected-access-in-special-methods ", - " Warn about protected attribute access inside special", - " methods (default: False)", - "", - "Logging:", - " Checks use of the logging module.", - "", - " --logging-modules ", - " Logging modules to check that the string format", - " arguments are in logging function parameter format.", - " (default: ('logging',))", - " --logging-format-style ", - " The type of string formatting that logging methods do.", - " `old` means using % formatting, `new` is for `{}`", - " formatting. (default: old)", - "", - "Method_args:", - " BaseChecker for method_args.", - "", - " --timeout-methods ", - " List of qualified names (i.e., library.method) which", - " require a timeout parameter e.g.", - " 'requests.api.get,requests.api.post' (default:", - " ('requests.api.delete', 'requests.api.get',", - " 'requests.api.head', 'requests.api.options',", - " 'requests.api.patch', 'requests.api.post',", - " 'requests.api.put', 'requests.api.request'))", - "", - "Exceptions:", - " Exception related checks.", - "", - " --overgeneral-exceptions ", - " Exceptions that will emit a warning when caught.", - " (default: ('builtins.BaseException',", - " 'builtins.Exception'))", - "", "Basic:", " --good-names Good variable names which should always be accepted,", " separated by a comma. (default: ('i', 'j', 'k', 'ex',", @@ -5511,61 +5875,17 @@ " Minimum line length for functions/classes that require", " docstrings, shorter ones are exempt. (default: -1)", "", - "Similarities:", - " Checks for similarities and duplicated code.", - "", - " --min-similarity-lines ", - " Minimum lines number of a similarity. (default: 4)", - " --ignore-comments ", - " Comments are removed from the similarity computation", - " (default: True)", - " --ignore-docstrings ", - " Docstrings are removed from the similarity computation", - " (default: True)", - " --ignore-imports ", - " Imports are removed from the similarity computation", - " (default: True)", - " --ignore-signatures ", - " Signatures are removed from the similarity computation", - " (default: True)", - "", - "Imports:", - " BaseChecker for import statements.", + "Logging:", + " Checks use of the logging module.", "", - " --deprecated-modules ", - " Deprecated modules which should not be used, separated", - " by a comma. (default: ())", - " --preferred-modules ", - " Couples of modules and preferred modules, separated by", - " a comma. (default: ())", - " --import-graph ", - " Output a graph (.gv or any supported image format) of", - " all (i.e. internal and external) dependencies to the", - " given file (report RP0402 must not be disabled).", - " (default: )", - " --ext-import-graph ", - " Output a graph (.gv or any supported image format) of", - " external dependencies to the given file (report RP0402", - " must not be disabled). (default: )", - " --int-import-graph ", - " Output a graph (.gv or any supported image format) of", - " internal dependencies to the given file (report RP0402", - " must not be disabled). (default: )", - " --known-standard-library ", - " Force import order to recognize a module as part of", - " the standard compatibility libraries. (default: ())", - " --known-third-party ", - " Force import order to recognize a module as part of a", - " third party library. (default: ('enchant',))", - " --allow-any-import-level ", - " List of modules that can be imported at any level, not", - " just the top level one. (default: ())", - " --allow-wildcard-with-all ", - " Allow wildcard imports from modules that define", - " __all__. (default: False)", - " --allow-reexport-from-package ", - " Allow explicit reexports by alias from a package", - " __init__. (default: False)", + " --logging-modules ", + " Logging modules to check that the string format", + " arguments are in logging function parameter format.", + " (default: ('logging',))", + " --logging-format-style ", + " The type of string formatting that logging methods do.", + " `old` means using % formatting, `new` is for `{}`", + " formatting. (default: old)", "", "Typecheck:", " Try to find bugs in the code using type inference.", @@ -5629,98 +5949,6 @@ " List of decorators that change the signature of a", " decorated function. (default: [])", "", - "String:", - " Check string literals.", - "", - " --check-str-concat-over-line-jumps ", - " This flag controls whether the implicit-str-concat", - " should generate a warning on implicit string", - " concatenation in sequences defined over several lines.", - " (default: False)", - " --check-quote-consistency ", - " This flag controls whether inconsistent-quotes", - " generates a warning when the character used as a quote", - " delimiter is used inconsistently within a module.", - " (default: False)", - "", - "Format:", - " Formatting checker.", - "", - " --max-line-length ", - " Maximum number of characters on a single line.", - " (default: 100)", - " --ignore-long-lines ", - " Regexp for a line that is allowed to be longer than", - " the limit. (default: ^\\s*(# )??$)", - " --single-line-if-stmt ", - " Allow the body of an if to be on the same line as the", - " test if there is no else. (default: False)", - " --single-line-class-stmt ", - " Allow the body of a class to be on the same line as", - " the declaration if body contains single statement.", - " (default: False)", - " --max-module-lines ", - " Maximum number of lines in a module. (default: 1000)", - " --indent-string ", - " String used as indentation unit. This is usually \" \"", - " (4 spaces) or \" \" (1 tab). (default: )", - " --indent-after-paren ", - " Number of spaces of indent required inside a hanging", - " or continued line. (default: 4)", - " --expected-line-ending-format ", - " Expected format of line ending, e.g. empty (any line", - " ending), LF or CRLF. (default: )", - "", - "Refactoring:", - " Looks for code which can be refactored.", - "", - " --max-nested-blocks ", - " Maximum number of nested blocks for function / method", - " body (default: 5)", - " --never-returning-functions ", - " Complete name of functions that never returns. When", - " checking for inconsistent-return-statements if a never", - " returning function is called then it will be", - " considered as an explicit return statement and no", - " message will be printed. (default: ('sys.exit',", - " 'argparse.parse_error'))", - "", - "Design:", - " Checker of potential misdesigns.", - "", - " --max-args Maximum number of arguments for function / method.", - " (default: 5)", - " --max-locals Maximum number of locals for function / method body.", - " (default: 15)", - " --max-returns Maximum number of return / yield for function / method", - " body. (default: 6)", - " --max-branches Maximum number of branch for function / method body.", - " (default: 12)", - " --max-statements ", - " Maximum number of statements in function / method", - " body. (default: 50)", - " --max-parents Maximum number of parents for a class (see R0901).", - " (default: 7)", - " --ignored-parents ", - " List of qualified class names to ignore when counting", - " class parents (see R0901) (default: ())", - " --max-attributes ", - " Maximum number of attributes for a class (see R0902).", - " (default: 7)", - " --min-public-methods ", - " Minimum number of public methods for a class (see", - " R0903). (default: 2)", - " --max-public-methods ", - " Maximum number of public methods for a class (see", - " R0904). (default: 20)", - " --max-bool-expr ", - " Maximum number of boolean expressions in an if", - " statement (see R0916). (default: 5)", - " --exclude-too-few-public-methods [,...]", - " List of regular expressions of class ancestor names to", - " ignore when counting public methods (see R0903)", - " (default: [])", - "", "Variables:", " BaseChecker for variables.", "", @@ -5752,7 +5980,81 @@ " Tells whether unused global variables should be", " treated as a violation. (default: True)", " --allowed-redefined-builtins ", - " List of names allowed to shadow builtins (default: ())" + " List of names allowed to shadow builtins (default: ())", + "", + "Refactoring:", + " Looks for code which can be refactored.", + "", + " --max-nested-blocks ", + " Maximum number of nested blocks for function / method", + " body (default: 5)", + " --never-returning-functions ", + " Complete name of functions that never returns. When", + " checking for inconsistent-return-statements if a never", + " returning function is called then it will be", + " considered as an explicit return statement and no", + " message will be printed. (default: ('sys.exit',", + " 'argparse.parse_error'))", + "", + "Spelling:", + " Check spelling in comments and docstrings.", + "", + " --spelling-dict ", + " Spelling dictionary name. No available dictionaries :", + " You need to install both the python package and the", + " system dependency for enchant to work.. (default: )", + " --spelling-ignore-words ", + " List of comma separated words that should not be", + " checked. (default: )", + " --spelling-private-dict-file ", + " A path to a file that contains the private dictionary;", + " one word per line. (default: )", + " --spelling-store-unknown-words ", + " Tells whether to store unknown words to the private", + " dictionary (see the --spelling-private-dict-file", + " option) instead of raising a message. (default: n)", + " --max-spelling-suggestions N", + " Limits count of emitted suggestions for spelling", + " mistakes. (default: 4)", + " --spelling-ignore-comment-directives ", + " List of comma separated words that should be", + " considered directives if they appear at the beginning", + " of a comment and should not be checked. (default: fmt:", + " on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:)", + "", + "Method_args:", + " BaseChecker for method_args.", + "", + " --timeout-methods ", + " List of qualified names (i.e., library.method) which", + " require a timeout parameter e.g.", + " 'requests.api.get,requests.api.post' (default:", + " ('requests.api.delete', 'requests.api.get',", + " 'requests.api.head', 'requests.api.options',", + " 'requests.api.patch', 'requests.api.post',", + " 'requests.api.put', 'requests.api.request'))", + "", + "Classes:", + " Checker for class nodes.", + "", + " --defining-attr-methods ", + " List of method names used to declare (i.e. assign)", + " instance attributes. (default: ('__init__', '__new__',", + " 'setUp', 'asyncSetUp', '__post_init__'))", + " --valid-classmethod-first-arg ", + " List of valid names for the first argument in a class", + " method. (default: ('cls',))", + " --valid-metaclass-classmethod-first-arg ", + " List of valid names for the first argument in a", + " metaclass class method. (default: ('mcs',))", + " --exclude-protected ", + " List of member names, which should be excluded from", + " the protected access warning. (default: ('_asdict',", + " '_fields', '_replace', '_source', '_make',", + " 'os._exit'))", + " --check-protected-access-in-special-methods ", + " Warn about protected attribute access inside special", + " methods (default: False)" ], "pyright": [ "Usage: pyright [options] files...", @@ -5765,16 +6067,18 @@ " --outputjson Output results in JSON format", " -p,--project Use the configuration file at this location", " --pythonplatform Analyze for a specific platform (Darwin, Linux, Windows)", + " --pythonpath Path to the Python interpreter", " --pythonversion Analyze for a specific version (3.3, 3.4, etc.)", " --skipunannotated Skip analysis of functions with no type annotations", " --stats Print detailed performance stats", - " -t,--typeshed-path Use typeshed type stubs at this location", - " -v,--venv-path Directory that contains virtual environments", + " -t,--typeshedpath Use typeshed type stubs at this location", + " -v,--venvpath Directory that contains virtual environments", " --verbose Emit verbose diagnostics", " --verifytypes Verify type completeness of a py.typed package", - " --version Print Pyright version", + " --version Print Pyright version and exit", " --warnings Use exit code of 1 if warnings are reported", " -w,--watch Continue to run and watch for changes", + " - Read files from stdin", "" ], "raku": [ @@ -6080,6 +6384,9 @@ " parameter AllCops: CacheRootDirectory and", " the $RUBOCOP_CACHE_ROOT environment variable.", "", + "LSP Option:", + " --lsp Start a language server listening on STDIN.", + "", "Server Options:", " --[no-]server If a server process has not been started yet, start", " the server process and execute inspection with server.", @@ -6203,7 +6510,7 @@ "", "Commands:", " check Run Ruff on the given files or directories (default)", - " rule Explain a rule", + " rule Explain a rule (or all rules)", " config List or describe the available configuration options", " linter List all supported upstream linters", " clean Clear any caches in the current directory and any subdirectories", @@ -6221,7 +6528,7 @@ "For help with a specific command, see: `ruff help `." ], "scalafix": [ - "Scalafix 0.10.4", + "Scalafix 0.11.0", "Usage: scalafix [options] [ ...]", "", "Scalafix is a refactoring and linting tool. Scalafix supports both syntactic and", @@ -6304,7 +6611,7 @@ " The scala compiler options used to compile this --classpath, for example", " -Ywarn-unused-import", "", - " --scala-version ScalaVersion (default: \"2.13.10\")", + " --scala-version ScalaVersion (default: \"2.13.11\")", " The major or binary Scala version that the provided files are targeting, or the", " full version that was used to compile them when a classpath is provided.", "", @@ -6394,7 +6701,7 @@ "", " 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, mask-result, table", + " --format [String] formatter name. Default: \"stylish\". Available Formatter: checkstyle, compact, jslint-xml, junit, pretty-error, stylish, tap, unix, json, mask-result, 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.", @@ -6416,10 +6723,21 @@ " $ secretlint \"source/**/*.ini\"", " # found secrets and mask the secrets", " $ secretlint .zsh_history --format=mask-result --output=.zsh_history", + "", + " Exit Status", + " Secretlint exits with the following values:", + "", + " - 0:", + " - Linting succeeded, no errors found.", + " - Found lint error but --output is specified.", + " - 1:", + " - Linting failed, errors found.", + " - 2:", + " - Unexpected error occurred, fatal error.", "" ], "semgrep": [ - "Usage: semgrep [OPTIONS] COMMAND [ARGS]...", + "Usage: pysemgrep [OPTIONS] COMMAND [ARGS]...", "", " To get started quickly, run `semgrep scan --config auto`", "", @@ -6819,7 +7137,7 @@ " scanner run dfa scan codebase with all DFA rules", "", "WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA", - "(node:1435) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", + "(node:1521) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", "(Use `node --trace-warnings ...` to show where the warning was created)", " NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT", " \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500", @@ -6827,67 +7145,67 @@ " VfHtmlStyleTagXss visualforce Security pmd N N", " VfUnescapeEl visualforce Security Basic VF pmd N N", " ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N", - " ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", + " ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,quickstart,Default ruleset... pmd N N", " ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N", " ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N", - " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", - " AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N", - " AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N", + " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,quickstart,Default ruleset... pmd N N", + " AvoidGlobalModifier apex Best Practices quickstart,Style,Default ruleset... pmd N N", + " AvoidLogicInTrigger apex Best Practices quickstart,Style,Default ruleset... pmd N N", " DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N", " UnusedLocalVariable apex Best Practices pmd N N", " AvoidDebugStatements apex Performance pmd N N", - " AvoidDmlStatementsInLoops apex Performance Default ruleset...,Performance pmd N N", - " AvoidSoqlInLoops apex Performance Default ruleset...,Performance pmd N N", - " AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N", + " AvoidDmlStatementsInLoops apex Performance Performance,Default ruleset... pmd N N", + " AvoidSoqlInLoops apex Performance Performance,Default ruleset... pmd N N", + " AvoidSoslInLoops apex Performance Performance,Default ruleset... pmd N N", " EagerlyLoadedDescribeSObjectResult apex Performance pmd N N", " OperationWithLimitsInLoop apex Performance quickstart pmd N N", - " ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N", + " ApexBadCrypto apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexCRUDViolation apex Security quickstart,Security,Default ruleset... pmd N N", " ApexCSRF apex Security Security pmd N N", - " ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N", - " ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ApexDangerousMethods apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexInsecureEndpoint apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexOpenRedirect apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexSharingViolations apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexSOQLInjection apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexSuggestUsingNamedCred apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexXSSFromEscapeFalse apex Security quickstart,Security,Default ruleset... pmd N N", + " ApexXSSFromURLParam apex Security quickstart,Security,Default ruleset... pmd N N", + " ClassNamingConventions apex Code Style quickstart,Style,Default ruleset... pmd N N", + " IfElseStmtsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N", + " IfStmtsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N", " FieldDeclarationsShouldBeAtStart apex Code Style pmd N N", " FieldNamingConventions apex Code Style quickstart pmd N N", - " ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ForLoopsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N", " FormalParameterNamingConventions apex Code Style quickstart pmd N N", " LocalVariableNamingConventions apex Code Style quickstart pmd N N", - " MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N", + " MethodNamingConventions apex Code Style quickstart,Style,Default ruleset... pmd N N", + " OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N", " PropertyNamingConventions apex Code Style quickstart pmd N N", " VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N", - " WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N", - " CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N", + " WhileLoopsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N", + " AvoidDeeplyNestedIfStmts apex Design quickstart,Complexity,Default ruleset... pmd N N", + " CyclomaticComplexity apex Design Metrics tempora...,quickstart,Default ruleset... pmd N N", " CognitiveComplexity apex Design pmd N N", - " ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N", - " TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ApexDoc apex Documentation Default ruleset...,quickstart pmd N N", - " ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N", - " AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N", - " EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", + " ExcessiveClassLength apex Design quickstart,Complexity,Default ruleset... pmd N N", + " ExcessiveParameterList apex Design quickstart,Complexity,Default ruleset... pmd N N", + " ExcessivePublicCount apex Design quickstart,Complexity,Default ruleset... pmd N N", + " NcssConstructorCount apex Design quickstart,Complexity,Default ruleset... pmd N N", + " NcssMethodCount apex Design quickstart,Complexity,Default ruleset... pmd N N", + " NcssTypeCount apex Design quickstart,Complexity,Default ruleset... pmd N N", + " StdCyclomaticComplexity apex Design quickstart,Complexity,Default ruleset... pmd N N", + " TooManyFields apex Design quickstart,Complexity,Default ruleset... pmd N N", + " ApexDoc apex Documentation quickstart,Default ruleset... pmd N N", + " ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N", + " AvoidDirectAccessTriggerMap apex Error Prone quickstart,Style,Default ruleset... pmd N N", + " AvoidHardcodingId apex Error Prone quickstart,Style,Default ruleset... pmd N N", + " AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N", + " EmptyCatchBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N", + " EmptyIfStmt apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N", + " EmptyStatementBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N", + " EmptyTryOrFinallyBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N", + " EmptyWhileStmt apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N", " InaccessibleAuraEnabledGetter apex Error Prone pmd N N", - " MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N", + " MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Style,Default ruleset... pmd N N", " OverrideBothEqualsAndHashcode apex Error Prone pmd N N", " TestMethodsMustBeInTestClasses apex Error Prone pmd N N", " constructor-super javascript problem problem eslint N N", @@ -7036,6 +7354,7 @@ " insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N", " UnusedMethodRule apex Performance sfge Y Y", " ApexFlsViolationRule apex Security sfge Y N", + " MultipleMassSchemaLookupRule apex Performance sfge Y Y", " ApexNullPointerExceptionRule apex Error Prone sfge Y N", " UnimplementedTypeRule apex Performance sfge N N" ], @@ -7111,7 +7430,7 @@ " scanner run dfa scan codebase with all DFA rules", "", "WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA", - "(node:1576) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", + "(node:1662) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", "(Use `node --trace-warnings ...` to show where the warning was created)", " NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT", " \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500", @@ -7119,12 +7438,12 @@ " VfHtmlStyleTagXss visualforce Security pmd N N", " VfUnescapeEl visualforce Security Basic VF pmd N N", " ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N", - " ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", + " ApexUnitTestClassShouldHaveAsserts apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N", " ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N", " ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N", - " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", - " AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N", - " AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N", + " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N", + " AvoidGlobalModifier apex Best Practices quickstart,Default ruleset...,Style pmd N N", + " AvoidLogicInTrigger apex Best Practices quickstart,Default ruleset...,Style pmd N N", " DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N", " UnusedLocalVariable apex Best Practices pmd N N", " AvoidDebugStatements apex Performance pmd N N", @@ -7133,53 +7452,53 @@ " AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N", " EagerlyLoadedDescribeSObjectResult apex Performance pmd N N", " OperationWithLimitsInLoop apex Performance quickstart pmd N N", - " ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N", + " ApexBadCrypto apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexCRUDViolation apex Security quickstart,Default ruleset...,Security pmd N N", " ApexCSRF apex Security Security pmd N N", - " ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N", - " ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ApexDangerousMethods apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexInsecureEndpoint apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexOpenRedirect apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSharingViolations apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSOQLInjection apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSuggestUsingNamedCred apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexXSSFromEscapeFalse apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexXSSFromURLParam apex Security quickstart,Default ruleset...,Security pmd N N", + " ClassNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N", + " IfElseStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", + " IfStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", " FieldDeclarationsShouldBeAtStart apex Code Style pmd N N", " FieldNamingConventions apex Code Style quickstart pmd N N", - " ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ForLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", " FormalParameterNamingConventions apex Code Style quickstart pmd N N", " LocalVariableNamingConventions apex Code Style quickstart pmd N N", - " MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N", + " MethodNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N", + " OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N", " PropertyNamingConventions apex Code Style quickstart pmd N N", - " VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N", - " WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N", - " CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N", + " VariableNamingConventions apex Code Style Default ruleset...,Style pmd N N", + " WhileLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", + " AvoidDeeplyNestedIfStmts apex Design quickstart,Default ruleset...,Complexity pmd N N", + " CyclomaticComplexity apex Design quickstart,Default ruleset...,Metrics tempora... pmd N N", " CognitiveComplexity apex Design pmd N N", - " ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N", - " TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ApexDoc apex Documentation Default ruleset...,quickstart pmd N N", - " ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N", - " AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N", - " EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", + " ExcessiveClassLength apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ExcessiveParameterList apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ExcessivePublicCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssConstructorCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssMethodCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssTypeCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " StdCyclomaticComplexity apex Design quickstart,Default ruleset...,Complexity pmd N N", + " TooManyFields apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ApexDoc apex Documentation quickstart,Default ruleset... pmd N N", + " ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N", + " AvoidDirectAccessTriggerMap apex Error Prone quickstart,Default ruleset...,Style pmd N N", + " AvoidHardcodingId apex Error Prone quickstart,Default ruleset...,Style pmd N N", + " AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N", + " EmptyCatchBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyIfStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyStatementBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyTryOrFinallyBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyWhileStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", " InaccessibleAuraEnabledGetter apex Error Prone pmd N N", - " MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N", + " MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Default ruleset...,Style pmd N N", " OverrideBothEqualsAndHashcode apex Error Prone pmd N N", " TestMethodsMustBeInTestClasses apex Error Prone pmd N N", " constructor-super javascript problem problem eslint N N", @@ -7328,6 +7647,7 @@ " insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N", " UnusedMethodRule apex Performance sfge Y Y", " ApexFlsViolationRule apex Security sfge Y N", + " MultipleMassSchemaLookupRule apex Performance sfge Y Y", " ApexNullPointerExceptionRule apex Error Prone sfge Y N", " UnimplementedTypeRule apex Performance sfge N N" ], @@ -7403,7 +7723,7 @@ " scanner run dfa scan codebase with all DFA rules", "", "WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA", - "(node:1717) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", + "(node:1803) Warning: Deprecated config name: apiVersion. Please use org-api-version instead.", "(Use `node --trace-warnings ...` to show where the warning was created)", " NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT", " \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500", @@ -7411,12 +7731,12 @@ " VfHtmlStyleTagXss visualforce Security pmd N N", " VfUnescapeEl visualforce Security Basic VF pmd N N", " ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N", - " ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", + " ApexUnitTestClassShouldHaveAsserts apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N", " ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N", " ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N", - " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N", - " AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N", - " AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N", + " ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N", + " AvoidGlobalModifier apex Best Practices quickstart,Default ruleset...,Style pmd N N", + " AvoidLogicInTrigger apex Best Practices quickstart,Default ruleset...,Style pmd N N", " DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N", " UnusedLocalVariable apex Best Practices pmd N N", " AvoidDebugStatements apex Performance pmd N N", @@ -7425,53 +7745,53 @@ " AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N", " EagerlyLoadedDescribeSObjectResult apex Performance pmd N N", " OperationWithLimitsInLoop apex Performance quickstart pmd N N", - " ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N", + " ApexBadCrypto apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexCRUDViolation apex Security quickstart,Default ruleset...,Security pmd N N", " ApexCSRF apex Security Security pmd N N", - " ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N", - " ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N", - " ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ApexDangerousMethods apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexInsecureEndpoint apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexOpenRedirect apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSharingViolations apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSOQLInjection apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexSuggestUsingNamedCred apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexXSSFromEscapeFalse apex Security quickstart,Default ruleset...,Security pmd N N", + " ApexXSSFromURLParam apex Security quickstart,Default ruleset...,Security pmd N N", + " ClassNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N", + " IfElseStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", + " IfStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", " FieldDeclarationsShouldBeAtStart apex Code Style pmd N N", " FieldNamingConventions apex Code Style quickstart pmd N N", - " ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", + " ForLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", " FormalParameterNamingConventions apex Code Style quickstart pmd N N", " LocalVariableNamingConventions apex Code Style quickstart pmd N N", - " MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N", - " OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N", + " MethodNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N", + " OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N", " PropertyNamingConventions apex Code Style quickstart pmd N N", - " VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N", - " WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N", - " AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N", - " CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N", + " VariableNamingConventions apex Code Style Default ruleset...,Style pmd N N", + " WhileLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N", + " AvoidDeeplyNestedIfStmts apex Design quickstart,Default ruleset...,Complexity pmd N N", + " CyclomaticComplexity apex Design quickstart,Default ruleset...,Metrics tempora... pmd N N", " CognitiveComplexity apex Design pmd N N", - " ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N", - " StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N", - " TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N", - " ApexDoc apex Documentation Default ruleset...,quickstart pmd N N", - " ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N", - " AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N", - " AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N", - " EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", - " EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N", + " ExcessiveClassLength apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ExcessiveParameterList apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ExcessivePublicCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssConstructorCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssMethodCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " NcssTypeCount apex Design quickstart,Default ruleset...,Complexity pmd N N", + " StdCyclomaticComplexity apex Design quickstart,Default ruleset...,Complexity pmd N N", + " TooManyFields apex Design quickstart,Default ruleset...,Complexity pmd N N", + " ApexDoc apex Documentation quickstart,Default ruleset... pmd N N", + " ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N", + " AvoidDirectAccessTriggerMap apex Error Prone quickstart,Default ruleset...,Style pmd N N", + " AvoidHardcodingId apex Error Prone quickstart,Default ruleset...,Style pmd N N", + " AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N", + " EmptyCatchBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyIfStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyStatementBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyTryOrFinallyBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", + " EmptyWhileStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N", " InaccessibleAuraEnabledGetter apex Error Prone pmd N N", - " MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N", + " MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Default ruleset...,Style pmd N N", " OverrideBothEqualsAndHashcode apex Error Prone pmd N N", " TestMethodsMustBeInTestClasses apex Error Prone pmd N N", " constructor-super javascript problem problem eslint N N", @@ -7620,6 +7940,7 @@ " insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N", " UnusedMethodRule apex Performance sfge Y Y", " ApexFlsViolationRule apex Security sfge Y N", + " MultipleMassSchemaLookupRule apex Performance sfge Y Y", " ApexNullPointerExceptionRule apex Error Prone sfge Y N", " UnimplementedTypeRule apex Performance sfge N N" ], @@ -7723,7 +8044,8 @@ " -v, --verbose Turns on debug-level logger." ], "snakemake": [ - "usage: snakemake [-h] [--dry-run] [--profile PROFILE] [--cache [RULE ...]]", + "usage: snakemake [-h] [--dry-run] [--profile PROFILE]", + " [--workflow-profile WORKFLOW_PROFILE] [--cache [RULE ...]]", " [--snakefile FILE] [--cores [N]] [--jobs [N]]", " [--local-cores N] [--resources [NAME=INT ...]]", " [--set-threads RULE=THREADS [RULE=THREADS ...]]", @@ -7800,10 +8122,12 @@ " [--google-lifesciences]", " [--google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...]]", " [--google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION]", - " [--google-lifesciences-keep-cache] [--flux] [--tes URL]", - " [--use-conda] [--conda-not-block-search-path-envvars]", - " [--list-conda-envs] [--conda-prefix DIR]", - " [--conda-cleanup-envs]", + " [--google-lifesciences-keep-cache] [--az-batch]", + " [--az-batch-enable-autoscale]", + " [--az-batch-account-url [AZ_BATCH_ACCOUNT_URL]] [--flux]", + " [--tes URL] [--use-conda]", + " [--conda-not-block-search-path-envvars] [--list-conda-envs]", + " [--conda-prefix DIR] [--conda-cleanup-envs]", " [--conda-cleanup-pkgs [{tarballs,cache}]]", " [--conda-create-envs-only] [--conda-frontend {conda,mamba}]", " [--use-singularity] [--singularity-prefix DIR]", @@ -7836,8 +8160,33 @@ " the YAML file. Profiles can be obtained from", " https://github.com/snakemake-profiles. The profile can", " also be set via the environment variable", - " $SNAKEMAKE_PROFILE. [env var: SNAKEMAKE_PROFILE]", - " (default: None)", + " $SNAKEMAKE_PROFILE. To override this variable and use", + " no profile at all, provide the value 'none' to this", + " argument. [env var: SNAKEMAKE_PROFILE] (default: None)", + " --workflow-profile WORKFLOW_PROFILE", + " Path (relative to current directory) to workflow", + " specific profile folder to use for configuring", + " Snakemake with parameters specific for this workflow", + " (like resources). If this flag is not used, Snakemake", + " will by default use 'profiles/default' if present", + " (searched both relative to current directory and", + " relative to Snakefile, in this order). For skipping", + " any workflow specific profile provide the special", + " value 'none'. Settings made in the workflow profile", + " will override settings made in the general profile", + " (see --profile). The profile folder has to contain a", + " file 'config.yaml'. This file can be used to set", + " default values for command line options in YAML", + " format. For example, '--cluster qsub' becomes", + " 'cluster: qsub' in the YAML file. It is advisable to", + " use the workflow profile to set or overwrite e.g.", + " workflow specific resources like the amount of threads", + " of a particular rule or the amount of memory needed.", + " Note that in such cases, the arguments may be given as", + " nested YAML mappings in the profile, e.g. 'set-", + " threads: myrule: 4' instead of 'set-threads:", + " myrule=4'. [env var: SNAKEMAKE_PROFILE] (default:", + " None)", " --cache [RULE ...] Store output files of given rules in a central cache", " given by the environment variable", " $SNAKEMAKE_OUTPUT_CACHE. Likewise, retrieve output", @@ -8563,6 +8912,38 @@ " without. If you don't have a shared filesystem,", " additionally specify --no-shared-fs. (default: False)", "", + "GOOGLE_LIFE_SCIENCE:", + " --google-lifesciences", + " Execute workflow on Google Cloud cloud using the", + " Google Life. Science API. This requires default", + " application credentials (json) to be created and", + " export to the environment to use Google Cloud Storage,", + " Compute Engine, and Life Sciences. The credential file", + " should be exported as GOOGLE_APPLICATION_CREDENTIALS", + " for snakemake to discover. Also, --use-conda, --use-", + " singularity, --config, --configfile are supported and", + " will be carried over. (default: False)", + " --google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...]", + " Specify one or more valid instance regions (defaults", + " to US) (default: ['us-east1', 'us-west1', 'us-", + " central1'])", + " --google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION", + " The Life Sciences API service used to schedule the", + " jobs. E.g., us-centra1 (Iowa) and europe-west2", + " (London) Watch the terminal output to see all options", + " found to be available. If not specified, defaults to", + " the first found with a matching prefix from regions", + " specified with --google-lifesciences-regions.", + " (default: None)", + " --google-lifesciences-keep-cache", + " Cache workflows in your Google Cloud Storage Bucket", + " specified by --default-remote-prefix/{source}/{cache}.", + " Each workflow working directory is compressed to a", + " .tar.gz, named by the hash of the contents, and kept", + " in Google Cloud Storage. By default, the caches are", + " deleted at the shutdown step of the workflow.", + " (default: False)", + "", "KUBERNETES:", " --kubernetes [NAMESPACE]", " Execute workflow in a kubernetes cluster (in the", @@ -8596,6 +8977,10 @@ " would still see the original value, i.e. as the value", " substituted in {threads}. (default: 0.95)", "", + "TES:", + " --tes URL Send workflow tasks to GA4GH TES server specified by", + " url. (default: None)", + "", "TIBANNA:", " --tibanna Execute workflow on AWS cloud using Tibanna. This", " requires --default-remote-prefix to be set to S3", @@ -8628,41 +9013,17 @@ " spot_instance=true subnet= security", " group= (default: None)", "", - "GOOGLE_LIFE_SCIENCE:", - " --google-lifesciences", - " Execute workflow on Google Cloud cloud using the", - " Google Life. Science API. This requires default", - " application credentials (json) to be created and", - " export to the environment to use Google Cloud Storage,", - " Compute Engine, and Life Sciences. The credential file", - " should be exported as GOOGLE_APPLICATION_CREDENTIALS", - " for snakemake to discover. Also, --use-conda, --use-", - " singularity, --config, --configfile are supported and", - " will be carried over. (default: False)", - " --google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...]", - " Specify one or more valid instance regions (defaults", - " to US) (default: ['us-east1', 'us-west1', 'us-", - " central1'])", - " --google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION", - " The Life Sciences API service used to schedule the", - " jobs. E.g., us-centra1 (Iowa) and europe-west2", - " (London) Watch the terminal output to see all options", - " found to be available. If not specified, defaults to", - " the first found with a matching prefix from regions", - " specified with --google-lifesciences-regions.", - " (default: None)", - " --google-lifesciences-keep-cache", - " Cache workflows in your Google Cloud Storage Bucket", - " specified by --default-remote-prefix/{source}/{cache}.", - " Each workflow working directory is compressed to a", - " .tar.gz, named by the hash of the contents, and kept", - " in Google Cloud Storage. By default, the caches are", - " deleted at the shutdown step of the workflow.", + "AZURE_BATCH:", + " --az-batch Execute workflow on azure batch (default: False)", + " --az-batch-enable-autoscale", + " Enable autoscaling of the azure batch pool nodes, this", + " option will set the initial dedicated node count to", + " zero, and requires five minutes to resize the cluster,", + " so is only recommended for longer running jobs.", " (default: False)", - "", - "TES:", - " --tes URL Send workflow tasks to GA4GH TES server specified by", - " url. (default: None)", + " --az-batch-account-url [AZ_BATCH_ACCOUNT_URL]", + " Azure batch account url, requires AZ_BATCH_ACCOUNT_KEY", + " environment variable to be set. (default: None)", "", "CONDA:", " --use-conda If defined in the rule, run job in a conda", @@ -8727,8 +9088,8 @@ " fallback for rules which don't define environment", " modules. (default: False)", "", - " If an arg is specified in more than one place, then commandline values", - "override environment variables which override defaults." + " In general, command-line values override environment variables which override", + "defaults." ], "spectral": [ "spectral lint [documents..]", @@ -8827,6 +9188,7 @@ "Flags (advanced):", " --stdin Read file text from stdin", " --ext Specify JavaScript file extensions", + " --ignore Specify files to ignore", " --global Declare global variable", " --plugin Use custom eslint plugin", " --env Use custom eslint environment", @@ -8849,15 +9211,15 @@ "", " --config, -c ", "", - " A path to a specific configuration file (JSON, YAML, or CommonJS), or a", - " module name in \"node_modules\" that points to one. If no argument is", + " A path to a specific configuration file (JSON, YAML, CommonJS, or ES module),", + " or a module name in \"node_modules\" that points to one. If no argument is", " provided, Stylelint will search for configuration files in the following", " places, in this order:", "", " - a \"stylelint\" property in \"package.json\"", - " - a \".stylelintrc\" file (with or without filename extension:", - " \".json\", \".yaml\", \".yml\", \".js\", and \".cjs\" are available)", - " - a \"stylelint.config.js\" file exporting a JS object", + " - a \".stylelintrc\" file", + " - a \".stylelintrc.{cjs,mjs,js,json,yaml,yml}\" file", + " - a \"stylelint.config.{cjs,mjs,js}\" file", "", " The search will begin in the working directory and move up the directory", " tree until a configuration file is found.", @@ -8868,9 +9230,9 @@ " \"plugins\", and \"customSyntax\" are *relative to*. Only necessary if these", " values are relative paths.", "", - " --print-config ", + " --print-config", "", - " Print the configuration for the given path.", + " Print the configuration for the given input file path. Globs are unsupported.", "", " --ignore-path, -i ", "", @@ -9076,16 +9438,19 @@ " version show the version", "", "Flags:", + " --base-path string base directory for scanning, no links will be followed above this directory, and all paths will be reported relative to this directory", " --catalogers stringArray enable one or more package catalogers", " -c, --config string application config file", " --exclude stringArray exclude paths from being scanned using a glob expression", " --file string file to write the default report output to (default is STDOUT)", " -h, --help help for syft", - " --name string set the name of the target being analyzed", + " --name string set the name of the target being analyzed (DEPRECATED: use: source-name)", " -o, --output stringArray report output format, options=[syft-json cyclonedx-xml cyclonedx-json github-json spdx-tag-value spdx-json syft-table syft-text template] (default [syft-table])", " --platform string an optional platform specifier for container image sources (e.g. 'linux/arm64', 'linux/arm64/v8', 'arm64', 'linux')", " -q, --quiet suppress all logging output", " -s, --scope string selection of layers to catalog, options=[Squashed AllLayers] (default \"Squashed\")", + " --source-name string set the name of the target being analyzed", + " --source-version string set the name of the target being analyzed", " -t, --template string specify the path to a Go template file", " -v, --verbose count increase verbosity (-v = info, -vv = debug)", " --version version for syft", @@ -9209,7 +9574,7 @@ " terragrunt-include-module-prefix When this flag is set output from Terraform sub-commands is prefixed with module path.", "", "VERSION:", - " v0.45.11", + " v0.48.1", "", "AUTHOR(S):", " Gruntwork ", @@ -9307,6 +9672,8 @@ " colorized output", " --no-color Disable", " colorized output", + " --fix Fix issues", + " automatically", "", "Help Options:", " -h, --help Show this help", @@ -9333,22 +9700,83 @@ " # Run in server mode", " $ trivy server", "", - "Available Commands:", + "Scanning Commands", " aws [EXPERIMENTAL] Scan AWS account", - " completion Generate the autocompletion script for the specified shell", " config Scan config files for misconfigurations", " filesystem Scan local filesystem", - " help Help about any command", " image Scan a container image", " kubernetes [EXPERIMENTAL] Scan kubernetes cluster", + " repository Scan a remote repository", + " rootfs Scan rootfs", + " sbom Scan SBOM for vulnerabilities", + " vm [EXPERIMENTAL] Scan a virtual machine image", + "", + "Management Commands", " module Manage modules", " plugin Manage plugins", + "", + "Utility Commands", + " completion Generate the autocompletion script for the specified shell", + " convert Convert Trivy JSON report into a different format", + " help Help about any command", + " server Server mode", + " version Print the version", + "", + "Flags:", + " --cache-dir string cache directory (default \"/root/.cache/trivy\")", + " -c, --config string config path (default \"trivy.yaml\")", + " -d, --debug debug mode", + " -f, --format string version format (json)", + " --generate-default-config write the default config to trivy-default.yaml", + " -h, --help help for trivy", + " --insecure allow insecure server connections", + " -q, --quiet suppress progress bar and log output", + " --timeout duration timeout (default 5m0s)", + " -v, --version show version", + "", + "Use \"trivy [command] --help\" for more information about a command." + ], + "trivy-sbom": [ + "Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues and hard-coded secrets", + "", + "Usage:", + " trivy [global flags] command [flags] target", + " trivy [command]", + "", + "Examples:", + " # Scan a container image", + " $ trivy image python:3.4-alpine", + "", + " # Scan a container image from a tar archive", + " $ trivy image --input ruby-3.1.tar", + "", + " # Scan local filesystem", + " $ trivy fs .", + "", + " # Run in server mode", + " $ trivy server", + "", + "Scanning Commands", + " aws [EXPERIMENTAL] Scan AWS account", + " config Scan config files for misconfigurations", + " filesystem Scan local filesystem", + " image Scan a container image", + " kubernetes [EXPERIMENTAL] Scan kubernetes cluster", " repository Scan a remote repository", " rootfs Scan rootfs", " sbom Scan SBOM for vulnerabilities", + " vm [EXPERIMENTAL] Scan a virtual machine image", + "", + "Management Commands", + " module Manage modules", + " plugin Manage plugins", + "", + "Utility Commands", + " completion Generate the autocompletion script for the specified shell", + " convert Convert Trivy JSON report into a different format", + " help Help about any command", " server Server mode", " version Print the version", - " vm [EXPERIMENTAL] Scan a virtual machine image", "", "Flags:", " --cache-dir string cache directory (default \"/root/.cache/trivy\")", @@ -9364,6 +9792,112 @@ "", "Use \"trivy [command] --help\" for more information about a command." ], + "trufflehog": [ + "usage: TruffleHog [] [ ...]", + "", + "TruffleHog is a tool for finding credentials.", + "", + "Flags:", + " --help Show context-sensitive help (also try", + " --help-long and --help-man).", + " --debug Run in debug mode.", + " --trace Run in trace mode.", + " --profile Enables profiling and sets a pprof and fgprof", + " server on :18066.", + " -j, --json Output in JSON format.", + " --json-legacy Use the pre-v3.0 JSON format. Only works with", + " git, gitlab, and github sources.", + " --github-actions Output in GitHub Actions format.", + " --concurrency=2 Number of concurrent workers.", + " --no-verification Don't verify the results.", + " --only-verified Only output verified results.", + " --filter-unverified Only output first unverified result per", + " chunk per detector if there are more than one", + " results.", + " --config=CONFIG Path to configuration file.", + " --print-avg-detector-time Print the average time spent on each detector.", + " --no-update Don't check for updates.", + " --fail Exit with code 183 if results are found.", + " --verifier=VERIFIER ... Set custom verification endpoints.", + " --archive-max-size=ARCHIVE-MAX-SIZE", + " Maximum size of archive to scan. (Byte units", + " eg. 512B, 2KB, 4MB)", + " --archive-max-depth=ARCHIVE-MAX-DEPTH", + " Maximum depth of archive to scan.", + " --archive-timeout=ARCHIVE-TIMEOUT", + " Maximum time to spend extracting an archive.", + " --include-detectors=\"all\" Comma separated list of detector types to", + " include. Protobuf name or IDs may be used,", + " as well as ranges.", + " --exclude-detectors=EXCLUDE-DETECTORS", + " Comma separated list of detector types to", + " exclude. Protobuf name or IDs may be used,", + " as well as ranges. IDs defined here take", + " precedence over the include list.", + " --version Show application version.", + "", + "Commands:", + " help [...]", + " Show help.", + "", + " git [] ", + " Find credentials in git repositories.", + "", + " github []", + " Find credentials in GitHub repositories.", + "", + " gitlab --token=TOKEN []", + " Find credentials in GitLab repositories.", + "", + " filesystem [] [...]", + " Find credentials in a filesystem.", + "", + " s3 []", + " Find credentials in S3 buckets.", + "", + " gcs []", + " Find credentials in GCS buckets.", + "", + " syslog []", + " Scan syslog", + "", + " circleci --token=TOKEN", + " Scan CircleCI", + "", + " docker --image=IMAGE", + " Scan Docker Image", + "", + "" + ], + "ts-standard": [ + "ts-standard - Standard for TypeScript! (https://github.com/standard/ts-standard)", + "", + "Usage:", + " ts-standard [FILES...]", + "", + " If FILES is omitted, all JavaScript/TypeScript source files (*.js, *.jsx, *.mjs, *.cjs, *.ts, *.tsx)", + " in the current working directory are checked, recursively.", + "", + " Certain paths (node_modules/, coverage/, vendor/, *.min.js, and", + " files/folders that begin with '.' like .git/) are automatically ignored.", + "", + " Paths in a project's root .gitignore file are also automatically ignored.", + "", + "Flags:", + " --fix Automatically fix problems", + " -p, --project Specify ts-config location (default: ./tsconfig.eslint.json or ./tsconfig.json)", + " --version Show current version", + " -h, --help Show usage information", + "", + "Flags (advanced):", + " --stdin Read file text from stdin", + " --ext Specify JavaScript/TypeScript file extensions", + " --global Declare global variable", + " --plugin Use custom eslint plugin", + " --env Use custom eslint environment", + " --parser Use custom ts/js parser (default: @typescript-eslint/parser)", + "" + ], "tsqllint": [ "running tsqllint", "", diff --git a/.automation/generated/linter-licenses.json b/.automation/generated/linter-licenses.json index beefa22e8e6..ff941ebefc8 100644 --- a/.automation/generated/linter-licenses.json +++ b/.automation/generated/linter-licenses.json @@ -11,6 +11,7 @@ "checkstyle": "LGPL-2.1", "clippy": "Other", "clj-kondo": "EPL-1.0", + "cljstyle": "EPL-1.0", "coffeelint": "Other", "cpplint": "Other", "csharpier": "MIT", @@ -32,6 +33,7 @@ "golangci-lint": "GPL-3.0", "goodcheck": "MIT", "graphql-schema-linter": "MIT", + "grype": "Apache-2.0", "hadolint": "GPL-3.0", "helm": "Apache-2.0", "htmlhint": "MIT", @@ -41,9 +43,11 @@ "kics": "Apache-2.0", "ktlint": "MIT", "kubeconform": "Apache-2.0", + "kubescape": "Apache-2.0", "kubeval": "Other", "lintr": "Other", "luacheck": "MIT", + "lychee": "Apache-2.0", "markdown-link-check": "ISC", "markdown-table-formatter": "MIT", "markdownlint": "MIT", @@ -61,28 +65,43 @@ "powershell_formatter": "MIT", "prettier": "MIT", "proselint": "BSD-3-Clause", + "protolint": "MIT", "psalm": "MIT", "puppet-lint": "MIT", "pylint": "GPL-2.0", + "pyright": "Other", "raku": "Artistic-2.0", "remark-lint": "MIT", "revive": "MIT", + "rst-lint": "Unlicense", + "rstcheck": "MIT", "rubocop": "MIT", + "ruff": "MIT", "scalafix": "Other", + "scss-lint": "MIT", "secretlint": "MIT", + "semgrep": "LGPL-2.1", "sfdx-scanner-apex": "MIT", "sfdx-scanner-aura": "MIT", "sfdx-scanner-lwc": "MIT", + "shellcheck": "GPL-3.0", + "shfmt": "BSD-3-Clause", + "snakefmt": "MIT", "snakemake": "MIT", "spectral": "Apache-2.0", + "sql-lint": "MIT", "sqlfluff": "MIT", "standard": "MIT", "stylelint": "MIT", "swiftlint": "MIT", + "syft": "Apache-2.0", "terraform-fmt": "MPL-2.0", "terragrunt": "MIT", "terrascan": "Apache-2.0", + "tflint": "MPL-2.0", "trivy": "Apache-2.0", "tsqllint": "MIT", + "v8r": "MIT", + "vale": "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 c266534f36e..b10deae791b 100644 --- a/.automation/generated/linter-links-previews.json +++ b/.automation/generated/linter-links-previews.json @@ -184,6 +184,11 @@ "image": "https://avatars0.githubusercontent.com/u/385270?s=400&v=4", "title": "cjoudrey/graphql-schema-linter" }, + "grype": { + "description": "A vulnerability scanner for container images and filesystems - GitHub - anchore/grype: A vulnerability scanner for container images and filesystems", + "image": "https://repository-images.githubusercontent.com/267054247/c41d4c8f-cd32-4bdd-9f2a-89a82992a359", + "title": "GitHub - anchore/grype: A vulnerability scanner for container images and filesystems" + }, "hadolint": { "description": "Dockerfile linter, validate inline bash, written in Haskell - hadolint/hadolint", "image": "https://avatars1.githubusercontent.com/u/34047791?s=400&v=4", @@ -249,6 +254,11 @@ "image": "https://avatars3.githubusercontent.com/u/17838737?s=400&v=4", "title": "luarocks/luacheck" }, + "lychee": { + "description": "Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!", + "image": "https://avatars.githubusercontent.com/u/74027027?s=200&v=4", + "title": "lycheeverse/lychee" + }, "markdown-link-check": { "description": "checks that all of the hyperlinks in a markdown text to determine if they are alive or dead - tcort/markdown-link-check", "image": "https://avatars2.githubusercontent.com/u/216720?s=400&v=4", @@ -534,6 +544,21 @@ "image": null, "title": "Redirecting" }, + "trivy-sbom": { + "description": "None", + "image": null, + "title": "Redirecting" + }, + "trufflehog": { + "description": "Find and verify credentials. Contribute to trufflesecurity/trufflehog development by creating an account on GitHub.", + "image": "https://opengraph.githubassets.com/55d7b011372ebd97a601f51e0a882c04765952ec8a9de7f814746cc71a64face/trufflesecurity/trufflehog", + "title": "GitHub - trufflesecurity/trufflehog: Find and verify credentials" + }, + "ts-standard": { + "description": "English \u2022 Espan\u0303ol (Latinoame\u0301rica) \u2022 Franc\u0327ais \u2022 Bahasa Indonesia \u2022 Italiano (Italian) \u2022 \u65e5\u672c\u8a9e (Japanese) \u2022 \u1112\u1161\u11ab\u1100\u116e\u11a8\u110b\u1165 (Korean) \u2022 Portugue\u0302s (Brasil) \u2022 \u7b80\u4f53\u4e2d\u6587 (Simplified Chinese) \u2022 \u7e41\u9ad4\u4e2d\u6587 (Taiwanese Mandarin).", + "image": null, + "title": "JavaScript Standard Style" + }, "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/linter-versions.json b/.automation/generated/linter-versions.json index 04f4448cd50..bb843982600 100644 --- a/.automation/generated/linter-versions.json +++ b/.automation/generated/linter-versions.json @@ -1,110 +1,116 @@ { - "actionlint": "1.6.24", - "ansible-lint": "6.16.0", + "actionlint": "1.6.25", + "ansible-lint": "6.17.2", "arm-ttk": "0.0.0", "bandit": "1.7.5", "bash-exec": "5.2.15", - "bicep_linter": "0.17.1", - "black": "23.3.0", - "cfn-lint": "0.77.5", + "bicep_linter": "0.19.5", + "black": "23.7.0", + "cfn-lint": "0.78.1", "checkmake": "0.2.0", - "checkov": "2.3.239", - "checkstyle": "10.11.0", + "checkov": "2.3.326", + "checkstyle": "10.12.1", "chktex": "1.7.6", - "clippy": "0.1.69", - "clj-kondo": "2023.04.14", + "clippy": "0.1.71", + "clj-kondo": "2023.07.13", "cljstyle": "0.15.0", "coffeelint": "5.2.11", "cpplint": "1.6.1", - "csharpier": "0.24.2", - "cspell": "6.31.1", + "csharpier": "0.25.0", + "cspell": "6.31.2", "dartanalyzer": "0.0.0", - "devskim": "0.7.104", - "djlint": "1.27.2", + "devskim": "1.0.11", + "djlint": "1.31.1", "dockerfilelint": "1.8.0", "dotenv-linter": "3.3.0", - "dotnet-format": "6.0.408", + "dotnet-format": "6.0.412", "dustilock": "1.2.0", "editorconfig-checker": "2.7.0", - "eslint": "8.40.0", - "eslint-plugin-jsonc": "2.8.0", + "eslint": "8.45.0", + "eslint-plugin-jsonc": "2.9.0", "flake8": "6.0.0", "gherkin-lint": "0.0.0", "git_diff": "2.38.5", - "gitleaks": "8.16.3", - "golangci-lint": "1.52.2", + "gitleaks": "8.17.0", + "golangci-lint": "1.53.3", "goodcheck": "3.1.0", "graphql-schema-linter": "3.0.1", + "grype": "0.63.1", "hadolint": "2.12.0", "helm": "3.10.2", "htmlhint": "1.1.4", "isort": "5.12.0", "jscpd": "3.5.9", "jsonlint": "14.0.3", - "kics": "1.7.1", - "ktlint": "0.49.1", - "kubeconform": "0.5.0", + "kics": "1.7.3", + "ktlint": "0.50.0", + "kubeconform": "0.6.3", + "kubescape": "2.3.6", "kubeval": "0.16.1", "lintr": "0.0.0", - "luacheck": "1.1.0", + "luacheck": "1.1.1", + "lychee": "0.13.0", "markdown-link-check": "3.11.2", "markdown-table-formatter": "1.4.0", - "markdownlint": "0.34.0", + "markdownlint": "0.35.0", "misspell": "0.3.4", - "mypy": "1.3.0", + "mypy": "1.4.1", "npm-groovy-lint": "11.1.1", - "npm-package-json-lint": "6.4.0", + "npm-package-json-lint": "7.0.0", "perlcritic": "1.150", "php": "7.4.26", "phpcs": "3.7.2", - "phplint": "5.5", - "phpstan": "1.10.15", + "phplint": "9.0.4", + "phpstan": "1.10.25", "pmd": "6.55.0", - "powershell": "7.3.4", - "powershell_formatter": "7.3.4", - "prettier": "2.8.8", + "powershell": "7.3.6", + "powershell_formatter": "7.3.6", + "prettier": "3.0.0", "proselint": "0.13.0", - "protolint": "0.44.0", - "psalm": "Psalm.5.11.0@", + "protolint": "0.45.0", + "psalm": "Psalm.5.13.1@", "puppet-lint": "4.0.0", "pylint": "2.17.4", - "pyright": "1.1.308", + "pyright": "1.1.317", "raku": "2020.10", "remark-lint": "14.0.2", - "revive": "1.3.1", + "revive": "1.3.2", "rst-lint": "1.4.0", "rstcheck": "6.1.2", "rstfmt": "0.0.13", - "rubocop": "1.51.0", - "ruff": "0.0.267", - "scalafix": "0.10.4", + "rubocop": "1.54.2", + "ruff": "0.0.278", + "scalafix": "0.11.0", "scss-lint": "0.60.0", - "secretlint": "6.2.3", - "semgrep": "1.21.0", + "secretlint": "7.0.3", + "semgrep": "1.32.0", "sfdx-scanner": "2.8.0", - "sfdx-scanner-apex": "3.12.0", - "sfdx-scanner-aura": "3.12.0", - "sfdx-scanner-lwc": "3.12.0", + "sfdx-scanner-apex": "3.14.0", + "sfdx-scanner-aura": "3.14.0", + "sfdx-scanner-lwc": "3.14.0", "shellcheck": "0.9.0", - "shfmt": "3.6.0", + "shfmt": "3.7.0", "snakefmt": "0.8.4", - "snakemake": "7.25.4", - "spectral": "6.6.0", + "snakemake": "7.30.1", + "spectral": "6.8.0", "sql-lint": "1.0.0", - "sqlfluff": "2.1.0", - "standard": "17.0.0", - "stylelint": "15.6.1", - "swiftlint": "0.52.2", - "syft": "0.80.0", + "sqlfluff": "2.1.2", + "standard": "17.1.0", + "stylelint": "15.10.1", + "swiftlint": "0.52.4", + "syft": "0.85.0", "tekton-lint": "0.6.0", - "terraform-fmt": "1.4.6", - "terragrunt": "0.45.11", + "terraform-fmt": "1.5.3", + "terragrunt": "0.48.1", "terrascan": "1.18.1", - "tflint": "0.46.1", - "trivy": "0.41.0", + "tflint": "0.47.0", + "trivy": "0.43.1", + "trivy-sbom": "0.43.1", + "trufflehog": "3.44.0", + "ts-standard": "12.0.2", "tsqllint": "1.15.3.0", "v8r": "2.0.0", - "vale": "2.26.0", + "vale": "2.28.0", "xmllint": "21004", - "yamllint": "1.31.0" + "yamllint": "1.32.0" } \ No newline at end of file diff --git a/.automation/log.sh b/.automation/log.sh deleted file mode 100755 index 04a86dc1476..00000000000 --- a/.automation/log.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2155 -# Super-Linter legacy - -declare -Agr B=( - [B]=$(echo -e "\e[44m") - [C]=$(echo -e "\e[46m") - [G]=$(echo -e "\e[42m") - [K]=$(echo -e "\e[40m") - [M]=$(echo -e "\e[45m") - [R]=$(echo -e "\e[41m") - [W]=$(echo -e "\e[47m") - [Y]=$(echo -e "\e[43m") -) -declare -Agr F=( - [B]=$(echo -e "\e[0;34m") - [C]=$(echo -e "\e[0;36m") - [G]=$(echo -e "\e[0;32m") - [K]=$(echo -e "\e[0;30m") - [M]=$(echo -e "\e[0;35m") - [R]=$(echo -e "\e[0;31m") - [W]=$(echo -e "\e[0;37m") - [Y]=$(echo -e "\e[0;33m") -) -readonly NC=$(echo -e "\e[0m") - -export B -export F -export NC - -# Log Functions -LOG_TEMP=$(mktemp) || echo "Failed to create temporary log file." -export LOG_TEMP -echo "super-linter Log" >"${LOG_TEMP}" -log() { - local TOTERM=${1:-} - local MESSAGE=${2:-} - echo -e "${MESSAGE:-}" | ( - if [[ -n ${TOTERM} ]]; then - tee -a "${LOG_TEMP}" >&2 - else - cat >>"${LOG_TEMP}" 2>&1 - fi - ) -} -trace() { log "${LOG_TRACE:-}" "${NC}$(date +"%F %T") ${F[B]}[TRACE]${NC} $*${NC}"; } -debug() { log "${LOG_DEBUG:-}" "${NC}$(date +"%F %T") ${F[B]}[DEBUG]${NC} $*${NC}"; } -info() { log "${LOG_VERBOSE:-}" "${NC}$(date +"%F %T") ${F[B]}[INFO]${NC} $*${NC}"; } -notice() { log "${LOG_NOTICE:-}" "${NC}$(date +"%F %T") ${F[G]}[NOTICE]${NC} $*${NC}"; } -warn() { log "${LOG_WARN:-}" "${NC}$(date +"%F %T") ${F[Y]}[WARN]${NC} $*${NC}"; } -error() { log "${LOG_ERROR:-}" "${NC}$(date +"%F %T") ${F[R]}[ERROR]${NC} $*${NC}"; } -fatal() { - log "true" "${NC}$(date +"%F %T") ${B[R]}${F[W]}[FATAL]${NC} $*${NC}" - exit 1 -} diff --git a/.automation/plugins.yml b/.automation/plugins.yml new file mode 100644 index 00000000000..28e6c379961 --- /dev/null +++ b/.automation/plugins.yml @@ -0,0 +1,31 @@ +plugins: + # Jupyfmt + - name: jupyfmt + description: The uncompromising Jupyter notebook formatter + docUrl: https://github.com/kpj/jupyfmt#mega-linter-integration + pluginUrl: https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml + author: "[Kim Philipp Jablonski](https://github.com/kpj)" + # linkcheck + - name: linkcheck + description: Plugin to check and validate markdown links exist and working + docUrl: https://github.com/shiranr/linkcheck + pluginUrl: https://raw.githubusercontent.com/shiranr/linkcheck/main/mega-linter-plugin-linkcheck/linkcheck.megalinter-descriptor.yml + author: "[Shiran Rubin](https://github.com/shiranr)" + # nitpick + - name: nitpick + description: Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects + docUrl: https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin + pluginUrl: https://raw.githubusercontent.com/andreoliwa/nitpick/master/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml + author: "[W. Augusto Andreoli](https://github.com/andreoliwa)" + # mustache + - name: mustache + description: Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) + docUrl: https://github.com/one-acre-fund/mega-linter-plugin-logstash + pluginUrl: https://raw.githubusercontent.com/one-acre-fund/mega-linter-plugin-logstash/main/mega-linter-plugin-logstash/logstash.megalinter-descriptor.yml + author: "[Yann Jouanique](https://github.com/Yann-J)" + # salt-lint + - name: salt-lint + description: Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. + docUrl: https://github.com/ssc-services/mega-linter-plugin-salt + pluginUrl: https://raw.githubusercontent.com/ssc-services/mega-linter-plugin-salt/main/mega-linter-plugin-salt/salt.megalinter-descriptor.yml + author: "[Joachim Grimm](https://github.com/grimmjo)" diff --git a/.automation/test/action/.github/workflows/actionlint_bad_1.yml b/.automation/test/action/.github/workflows/actionlint_bad_1.yml index 8e37befde6a..d7c1a094ff0 100644 --- a/.automation/test/action/.github/workflows/actionlint_bad_1.yml +++ b/.automation/test/action/.github/workflows/actionlint_bad_1.yml @@ -11,7 +11,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - run: echo "Checking commit '${{ github.event.head_commit.message }}'" - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-node@v2 with: node_version: 16.x diff --git a/.automation/test/action/.github/workflows/actionlint_good_1.yaml b/.automation/test/action/.github/workflows/actionlint_good_1.yaml index 33167026c2e..f4a1e3c2266 100644 --- a/.automation/test/action/.github/workflows/actionlint_good_1.yaml +++ b/.automation/test/action/.github/workflows/actionlint_good_1.yaml @@ -17,7 +17,7 @@ jobs: env: COMMIT_MESSAGE: ${{ github.event.head_commit.message }} run: echo "Checking commit '$COMMIT_MESSAGE'" - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-node@v2 with: node-version: 16.x diff --git a/.automation/test/gitleaks/bad/keys b/.automation/test/gitleaks/bad/keys new file mode 100644 index 00000000000..aa504a82046 --- /dev/null +++ b/.automation/test/gitleaks/bad/keys @@ -0,0 +1,44 @@ +Basic auth: + +https://admin:admin@the-internet.herokuapp.com/basic_auth + +Private key: +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAjNIZuun +xgLkM8KuzfmQuRAAAAEAAAAAEAAAGXAAAAB3NzaC1yc2EAAAADAQABAAABgQDe3Al0EMPz +utVNk5DixaYrGMK56RqUoqGBinke6SWVWmqom1lBcJWzor6HlnMRPPr7YCEsJKL4IpuVwu +inRa5kdtNTyM7yyQTSR2xXCS0fUItNuq8pUktsH8VUggpMeew8hJv7rFA7tnIg3UXCl6iF +OLZKbDA5aa24idpcD8b1I9/RzTOB1fu0of5xd9vgODzGw5JvHQSJ0FaA42aNBMGwrDhDB3 +sgnRNdWf6NNIh8KpXXMKJADf3klsyn6He8L2bPMp8a4wwys2YB35p5zQ0JURovsdewlOxH +NT7eP19eVf4dCreibxUmRUaob5DEoHEk8WrxjKWIYUuLeD6AfcW6oXyRU2Yy8Vrt6SqFl5 +WAi47VMFTkDZYS/eCvG53q9UBHpCj7Qvb0vSkCZXBvBIhlw193F3PX4WvO1IXsMwvQ1D1X +lmomsItbqM0cJyKw6LU18QWiBHvE7BqcphaoL5E08W2ATTSRIMCp6rt4rptM7KyGK8rc6W +UYrCnWt6KlCA8AAAWQXk+lVx6bH5itIKKYmQr6cR/5xtZ2GHAxnYtvlW3xnGhU0MHv+lJ2 +uoWlT2RXE5pdMUQj7rNWAMqkwifSKZs9wBfYeo1TaFDmC3nW7yHSN3XTuO78mPIW5JyvmE +Rj5qjsUn7fNmzECoAxnVERhwnF3KqUBEPzIAc6/7v/na9NTiiGaJPco9lvCoPWbVLN08WG +SuyU+0x5zc3ebzuPcYqu5/c5nmiGxhALrIhjIS0OV1mtAAFhvdMjMIHOijOzSKVCC7rRk5 +kG9EMLNvOn/DUVSRHamw5gs2V3V+Zq2g5nYWfgq8aDSTB8XlIzOj1cz3HwfN6pfSNQ/3Qe +wOQfWfTWdO+JSL8aoBN5Wg8tDbgmvmbFrINsJfFfSm0wZgcHhC7Ul4U3v4c8PoNdK9HXwi +TKKzJ9nxLYb+vDh50cnkseu2gt0KwVpjIorxEqeK755mKPao3JmOMr6uFTQsb+g+ZNgPwl +nRHA4Igx+zADFj3twldnKIiRpBQ5J4acur3uQ+saanBTXgul1TiFiUGT2cnz+IiCsdPovg +TAMt868W5LmzpfH4Cy54JtaRC4/UuMnkTGbWgutVDnWj2stOAzsQ1YmhH5igUmc94mUL+W +8vQDCKpeI8n+quDS9zxTvy4L4H5Iz7OZlh0h6N13BDvCYXKcNF/ugkfxZbu8mZsZQQzXNR +wOrEtKoHc4AnXYNzsuHEoEyLyJxGfFRDSTLbyN9wFOS/c0k9Gjte+kQRZjBVGORE5sN6X3 +akUnTF76RhbEc+LamrwM1h5340bwosRbR8I+UrsQdFfJBEj1ZSyMRJlMkFUNi6blt7bhyx +ea+Pm2A614nlYUBjw2KKzzn8N/0H2NpJjIptvDsbrx3BS/rKwOeJwavRrGnIlEzuAag4vx +Zb2TPVta45uz7fQP5IBl83b0BJKI5Zv/fniUeLI78W/UsZqb64YQbfRyBzFtI1T/SsCi0B +e0EyKMzbxtSceT1Mb8eJiVIq04Xpwez9fIUt5rSedZD8KPq8P6s0cGsR7Qmw6eXZ/dBR/a +s5vPhfIUmQawmnwAVuWNRdQQ79jUBSn5M+ZRVVTgEG+vFyvxr/bZqOo1JCoq5BmQhLWGRJ +Dk9TolbeFIVFrkuXkcu99a079ux7XSkON64oPzHrcsEzjPA1GPqs9CGBSO16wq/nI3zg+E +kcOCaurc9yHJJPwduem0+8WLX3WoGNfQRKurtQze2ppy8KarEtDhDd96sKkhYaqOg3GOX8 +Yx827L4vuWSJSIqKuO2kH6kOCMUNO16piv0z/8u3CJxOGh9+4FZIop81fiFTKLhV3/gwLm +fzFY++KIZrLfZcUjzd80NNEja69F452Eb9HrI5BurN/PznDEi9bzM598Y7beyl4/kd4R2e +S7SW9/LOrGw5UgxtiU+kV8nPz1PdgxO4sRlnntSBEwkQBzMkLOpq2h2BuJ2TlMP/TWuwLQ +sDkv1Yk1pD0roGmtMzbujnURGxqRJ8gUmuIot4hpfyRSssvnRQQZ3lQCQCwHiE+HJxXWf5 +c58zOMjW7o21tI8e13uUnbRoQVJM9XYqk1usPXIkYPYL9uOw3AW/Zn+cnDrsXvTK9ZxgGD +/90b1BNwVqMlUK+QggHNwl5qD8eoXK5cDvav66te+E+V7FYFQ06w3tytRVz8SjoaiChN02 +muIjvl6G7Hoj1hObM2t/ZheN1EShS11z868hhS6Mx7GvIdtkXuvdiBYMiBLOshJQxB8Mzx +iug9W+Di3upLf0UMC1TqADGphsIHRU7RbmHQ8Rwp7dogswmDfpRSapPt9p0D+6Ad5VBzi3 +f3BPXj76UBLMEJCrZR1P28vnAA7AyNHaLvMPlWDMG5v3V/UV+ugyFcoBAOyjiQgYST8F3e +Hx7UPVlTK8dyvk1Z+Yw0nrfNClI= +-----END OPENSSH PRIVATE KEY----- \ No newline at end of file diff --git a/.automation/test/golang/golang_fix_01.go b/.automation/test/golang/golang_fix_01.go new file mode 100644 index 00000000000..0b39e9189d5 --- /dev/null +++ b/.automation/test/golang/golang_fix_01.go @@ -0,0 +1,9 @@ +// This is a package comment +package main + +import "fmt" + +func main() { +fmt.Println("hello world") +nicolas() +} diff --git a/.automation/test/golang/golang_fix_02.go b/.automation/test/golang/golang_fix_02.go new file mode 100644 index 00000000000..426a5bbcd0f --- /dev/null +++ b/.automation/test/golang/golang_fix_02.go @@ -0,0 +1,8 @@ +// This is a package comment +package main + +import "fmt" + +func nicolas() { +fmt.Println("hello world") +} diff --git a/.automation/test/repository_grype/bad/package-lock.json b/.automation/test/repository_grype/bad/package-lock.json new file mode 100644 index 00000000000..8a2c3c24568 --- /dev/null +++ b/.automation/test/repository_grype/bad/package-lock.json @@ -0,0 +1,4585 @@ +{ + "name": "mega-linter-runner", + "version": "5.6.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz", + "integrity": "sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + } + }, + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + }, + "@isaacs/string-locale-compare": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/arborist": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.0.4.tgz", + "integrity": "sha512-5hRkiHF9zu62z6a7CJqhVG5CFUVnbYqvrrcxxEmhxFgyH2ovICyULOrj7nF4VBlfzp7OPu/rveV2ts9iYrn74g==", + "requires": { + "@isaacs/string-locale-compare": "^1.0.1", + "@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.1", + "@npmcli/package-json": "^1.0.1", + "@npmcli/run-script": "^2.0.0", + "bin-links": "^2.3.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": "^11.0.0", + "pacote": "^12.0.0", + "parse-conflict-json": "^1.1.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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@npmcli/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "requires": { + "@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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/map-workspaces": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.0.tgz", + "integrity": "sha512-QBJfpCY1NOAkkW3lFfru9VTdqvMB2TN0/vrevl5xBCv5Fi0XDVcA6rqqSau4Ysi4Iw3fBzyXV7hzyTBDfadf7g==", + "requires": { + "@npmcli/name-from-folder": "^1.0.1", + "glob": "^7.1.6", + "minimatch": "^3.0.4", + "read-package-json-fast": "^2.0.1" + } + }, + "@npmcli/metavuln-calculator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz", + "integrity": "sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==", + "requires": { + "cacache": "^15.0.5", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^12.0.0", + "semver": "^7.3.2" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@npmcli/name-from-folder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", + "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==" + }, + "@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==" + }, + "@npmcli/package-json": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", + "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", + "requires": { + "json-parse-even-better-errors": "^2.3.1" + } + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "requires": { + "@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": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "requires": { + "@octokit/types": "^6.0.3" + } + }, + "@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@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": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==" + }, + "@octokit/plugin-paginate-rest": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", + "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "requires": { + "@octokit/types": "^6.34.0" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==" + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", + "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "requires": { + "@octokit/types": "^6.34.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "requires": { + "@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.1", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "requires": { + "@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": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "requires": { + "@octokit/openapi-types": "^11.2.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@types/expect": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==" + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + }, + "@types/vinyl": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", + "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "requires": { + "@types/expect": "^1.20.4", + "@types/node": "*" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dev": true, + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "dev": true, + "requires": { + "array-filter": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" + }, + "bin-links": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.3.0.tgz", + "integrity": "sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA==", + "requires": { + "cmd-shim": "^4.0.1", + "mkdirp-infer-owner": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0", + "read-cmd-shim": "^2.0.0", + "rimraf": "^3.0.0", + "write-file-atomic": "^3.0.3" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "binaryextensions": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", + "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "requires": { + "@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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.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" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + }, + "cli-table": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", + "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "cmd-shim": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", + "requires": { + "mkdirp-infer-owner": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "commander": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==" + }, + "common-ancestor-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" + }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "requires": { + "ms": "2.1.2" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "requires": { + "jake": "^10.6.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "error": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", + "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz", + "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "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", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.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": "^4.17.19", + "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": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "espree": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", + "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "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": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "requires": { + "@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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "requires": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "github-username": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", + "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", + "requires": { + "@octokit/rest": "^18.0.6" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "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-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-promise": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.2.2.tgz", + "integrity": "sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==", + "requires": { + "@types/glob": "^7.1.3" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "grouped-queue": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", + "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "requires": { + "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.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-generator-function": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", + "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + }, + "is-nan": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", + "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-scoped": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", + "requires": { + "scoped-regex": "^2.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-nice": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "just-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", + "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==" + }, + "just-diff-apply": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.1.2.tgz", + "integrity": "sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "requires": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "requires": { + "chalk": "^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "requires": { + "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": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz", + "integrity": "sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==", + "requires": { + "@types/node": "^15.6.1", + "@types/vinyl": "^2.0.4", + "vinyl": "^2.0.1", + "vinyl-file": "^3.0.0" + } + }, + "mem-fs-editor": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", + "integrity": "sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==", + "requires": { + "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" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "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", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.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": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-infer-owner": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", + "requires": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "mocha": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", + "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.4.3", + "debug": "4.2.0", + "diff": "4.0.2", + "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": "3.14.0", + "log-symbols": "4.0.0", + "minimatch": "3.0.4", + "ms": "2.1.2", + "nanoid": "3.1.12", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "7.2.0", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.0.2", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "requires": { + "@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": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nanoid": { + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", + "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-fetch": { + "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" + } + }, + "node-gyp": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.0.tgz", + "integrity": "sha512-Bi/oCm5bH6F+FmzfUxJpPaxMEyIhszULGR3TprmTeku8/dMFcdTcypk120NeZqEt54r1BrgEKtm2jJiuIKE28Q==", + "requires": { + "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": "^4.1.2", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "requires": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "requires": { + "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": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "requires": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + }, + "dependencies": { + "gauge": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz", + "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==", + "requires": { + "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": "^1.0.1 || ^2.0.0", + "strip-ansi": "^3.0.1 || ^4.0.0", + "wide-align": "^1.1.2" + } + } + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "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": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-transform": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-transform/-/p-transform-1.3.0.tgz", + "integrity": "sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==", + "requires": { + "debug": "^4.3.2", + "p-queue": "^6.6.2" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pacote": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.2.tgz", + "integrity": "sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg==", + "requires": { + "@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": "^11.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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "pad-component": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pad-component/-/pad-component-0.0.1.tgz", + "integrity": "sha1-rR8izhvw/cDW3dkIrxfzUaQEuKw=" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-conflict-json": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", + "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "just-diff": "^3.0.1", + "just-diff-apply": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@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": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "preferred-pm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", + "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", + "requires": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "proc-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", + "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-all-reject-late": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==" + }, + "promise-call-limit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", + "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read-cmd-shim": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==" + }, + "read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "requires": { + "tslib": "~2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scoped-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", + "integrity": "sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==", + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + } + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "requires": { + "minipass": "^3.1.1" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-buf": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "requires": { + "is-utf8": "^0.2.1" + } + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "taketalk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/taketalk/-/taketalk-1.0.0.tgz", + "integrity": "sha1-tNTw3u0gauffd1sSnqLKbeUvJt0=", + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0" + } + }, + "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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz", + "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "treeverse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", + "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==" + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "dev": true, + "requires": { + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "requires": { + "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" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + } + } + }, + "vinyl-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", + "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", + "requires": { + "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" + } + }, + "walk-up-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==" + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "requires": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + } + }, + "which-typed-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", + "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "es-abstract": "^1.17.5", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workerpool": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", + "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } + } + }, + "yeoman-environment": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.8.0.tgz", + "integrity": "sha512-BPo3btCxefe8NzDMk59QRDNBXMC4Ra6SHhFfEsV2DTmAp/6ZoovMANlJiWrXu41rtFQBmjH/rT2tSiHGowt38w==", + "requires": { + "@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" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "yeoman-generator": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.4.2.tgz", + "integrity": "sha512-xgS3A4r5VoEYq3vPdk1fWPVZ30y5NHlT2hn0OEyhKG79xojCtPkPkfWcKQamgvC9QLhaotVGvambBxwxwBeDTg==", + "requires": { + "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.4", + "text-table": "^0.2.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "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" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + } + } + }, + "yosay": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/yosay/-/yosay-2.0.2.tgz", + "integrity": "sha512-avX6nz2esp7IMXGag4gu6OyQBsMh/SEn+ZybGu3yKPlOTE6z9qJrzG/0X5vCq/e0rPFy0CUYCze0G5hL310ibA==", + "requires": { + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "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" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + } + } + } + } +} diff --git a/.automation/test/repository_grype/bad/package.json b/.automation/test/repository_grype/bad/package.json new file mode 100644 index 00000000000..be2b54b2929 --- /dev/null +++ b/.automation/test/repository_grype/bad/package.json @@ -0,0 +1,96 @@ +{ + "name": "mega-linter-runner", + "version": "5.6.0", + "repository": { + "type": "git", + "url": "https://github.com/oxsecurity/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_grype/good/package.json b/.automation/test/repository_grype/good/package.json new file mode 100644 index 00000000000..242f289e802 --- /dev/null +++ b/.automation/test/repository_grype/good/package.json @@ -0,0 +1,83 @@ +{ + "name": "mega-linter-runner", + "version": "5.6.0", + "repository": { + "type": "git", + "url": "https://github.com/oxsecurity/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": "^5.3.0" + } +} diff --git a/.automation/test/terraform_kics/terraform_kics_bad_1.tf b/.automation/test/repository_kics/bad/terraform_kics_bad_1.tf similarity index 100% rename from .automation/test/terraform_kics/terraform_kics_bad_1.tf rename to .automation/test/repository_kics/bad/terraform_kics_bad_1.tf diff --git a/.automation/test/repository_kics/bad/terraform_kics_bad_2.tf b/.automation/test/repository_kics/bad/terraform_kics_bad_2.tf new file mode 100644 index 00000000000..7f821843729 --- /dev/null +++ b/.automation/test/repository_kics/bad/terraform_kics_bad_2.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/terraform_kics/terraform_kics_good_1.tf b/.automation/test/repository_kics/good/terraform_kics_good_1.tf similarity index 100% rename from .automation/test/terraform_kics/terraform_kics_good_1.tf rename to .automation/test/repository_kics/good/terraform_kics_good_1.tf diff --git a/.automation/test/repository_kics/good/terraform_kics_good_2.tf b/.automation/test/repository_kics/good/terraform_kics_good_2.tf new file mode 100644 index 00000000000..02ae2d89ea7 --- /dev/null +++ b/.automation/test/repository_kics/good/terraform_kics_good_2.tf @@ -0,0 +1,39 @@ +resource "aws_sagemaker_domain" "pass" { + domain_name = "examplea" + auth_mode = "IAM" + analyzer_name = "example" + vpc_id = aws_vpc.test.id + subnet_ids = [aws_subnet.test.id] + kms_key_id = aws_kms_key.test.arn + + tags = { + Environment = "test" + } + + default_user_settings { + execution_role = aws_iam_role.test.arn + } + + retention_policy { + home_efs_file_system = "Delete" + } +} + +resource "aws_organizations_organization" "example" { + aws_service_access_principals = ["access-analyzer.amazonaws.com"] + + tags = { + Environment = "test" + } +} + +resource "aws_accessanalyzer_analyzer" "example" { + depends_on = [aws_organizations_organization.example] + + analyzer_name = "example" + type = "ORGANIZATION" + + tags = { + Environment = "test" + } +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif b/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif index b8ef0da33f0..92d1ce6314b 100644 --- a/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif +++ b/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif @@ -1,5 +1,5 @@ { - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", + "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "version": "2.1.0", "runs": [ { diff --git a/.automation/test/spell_lychee/markdown_bad_1.md b/.automation/test/spell_lychee/markdown_bad_1.md new file mode 100644 index 00000000000..8db51d55dbe --- /dev/null +++ b/.automation/test/spell_lychee/markdown_bad_1.md @@ -0,0 +1,28 @@ +## Bad Markdown + +This is just a standard bad markdown. + +###### Second level header + +This header does **NOT** follow the **step** down from `level 1`. + +- Here it *is* + - Some more indention + - why so much? + +``` +ls -la +``` + +| this | is a wrong | table | +|--------|------------ |--------------------| +| hahaha | naaaaaaah | wrong formatting ! | +| hahaha | naaaaaaah | wrong formatting ! | + +# Walk away + +We're all done **here**. +- [Link Action]https://github.com +- [Link Action 2](#wesh) +- [Link Action 3](http://www.glouglouglglsdgdfgfdgsfgdfgdf.com) +- [Link Action 4](http://www.glouglouglglsdgdfgfdgsfgdfgdf.com2) diff --git a/.automation/test/spell_lychee/markdown_good_1.md b/.automation/test/spell_lychee/markdown_good_1.md new file mode 100644 index 00000000000..9d41d2dce3b --- /dev/null +++ b/.automation/test/spell_lychee/markdown_good_1.md @@ -0,0 +1,25 @@ +# Good Markdown + +This is just a standard good markdown. + +## Second level header + +This header follows the step down from `level 1`. + +- Here it *is* + - Some more **indention** + - why so much? + +```bash +ls -la +``` + +| this | is a good | table | +|------|-----------|----------| +| haha | yesssssss | good ! | +| haha | yesssssss | gooood ! | + +### Walk away + +We're all done **here**. +- [Link Action](https://github.com) diff --git a/.automation/test/spell_lychee/reports/ERROR-SPELL_LYCHEE.txt b/.automation/test/spell_lychee/reports/ERROR-SPELL_LYCHEE.txt new file mode 100644 index 00000000000..ee646b78a36 --- /dev/null +++ b/.automation/test/spell_lychee/reports/ERROR-SPELL_LYCHEE.txt @@ -0,0 +1,19 @@ +Results of lychee linter (version 0.0.0) +See documentation on https://lychee.cli.rs +----------------------------------------------- + +❌ [ERROR] for workspace /github/workspace +Linter raw log: +📝 Summary +--------------------- +🔍 Total............3 +✅ Successful.......1 +⏳ Timeouts.........0 +🔀 Redirected.......0 +👻 Excluded.........0 +❓ Unknown..........0 +🚫 Errors...........2 + +Errors in /github/workspace/.automation/test/spell_lychee/markdown_bad_1.md +✗ [ERR] http://www.glouglouglglsdgdfgfdgsfgdfgdf.com2/ | Failed: Network error: dns error: no record found for Query { name: Name("www.glouglouglglsdgdfgfdgsfgdfgdf.com2."), query_type: AAAA, query_class: IN } +✗ [ERR] http://www.glouglouglglsdgdfgfdgsfgdfgdf.com/ | Failed: Network error: dns error: no record found for Query { name: Name("www.glouglouglglsdgdfgfdgsfgdfgdf.com."), query_type: AAAA, query_class: IN } diff --git a/.automation/test/spell_lychee/reports/SUCCESS-SPELL_LYCHEE.txt b/.automation/test/spell_lychee/reports/SUCCESS-SPELL_LYCHEE.txt new file mode 100644 index 00000000000..c44e030339c --- /dev/null +++ b/.automation/test/spell_lychee/reports/SUCCESS-SPELL_LYCHEE.txt @@ -0,0 +1,15 @@ +Results of lychee linter (version 0.0.0) +See documentation on https://lychee.cli.rs +----------------------------------------------- + +✅ [SUCCESS] for workspace /github/workspace +Linter raw log: +📝 Summary +--------------------- +🔍 Total............1 +✅ Successful.......1 +⏳ Timeouts.........0 +🔀 Redirected.......0 +👻 Excluded.........0 +❓ Unknown..........0 +🚫 Errors...........0 diff --git a/.automation/test/terraform/bad/nested_module_vars/.terraform/modules/modules.json b/.automation/test/terraform/bad/nested_module_vars/.terraform/modules/modules.json new file mode 100644 index 00000000000..97fae8bdbf8 --- /dev/null +++ b/.automation/test/terraform/bad/nested_module_vars/.terraform/modules/modules.json @@ -0,0 +1 @@ +{"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"module1","Source":"./module","Dir":"module"},{"Key":"module1.module2","Source":"./module","Dir":"module/module"}]} \ No newline at end of file diff --git a/.automation/test/terraform/bad/nested_module_vars/main.tf b/.automation/test/terraform/bad/nested_module_vars/main.tf new file mode 100644 index 00000000000..12ca4bbe6af --- /dev/null +++ b/.automation/test/terraform/bad/nested_module_vars/main.tf @@ -0,0 +1,6 @@ +module "module1" { + source = "./module" + + foo = "foo" + bar = "bar" +} diff --git a/.automation/test/terraform/bad/nested_module_vars/module/main.tf b/.automation/test/terraform/bad/nested_module_vars/module/main.tf new file mode 100644 index 00000000000..841e1198d85 --- /dev/null +++ b/.automation/test/terraform/bad/nested_module_vars/module/main.tf @@ -0,0 +1,11 @@ +variable "foo" {} +variable "bar" {} +variable "baz" {} + +module "module2" { + source = "./module" + + red = "${var.foo}-${var.bar}" + blue = "blue" + green = "${var.foo}-${var.baz}-${path.module}" +} diff --git a/.automation/test/terraform/bad/nested_module_vars/module/module/main.tf b/.automation/test/terraform/bad/nested_module_vars/module/module/main.tf new file mode 100644 index 00000000000..b089b0dbc89 --- /dev/null +++ b/.automation/test/terraform/bad/nested_module_vars/module/module/main.tf @@ -0,0 +1,4 @@ +variable "red" {} +variable "blue" {} +variable "green" {} +variable "yellow" {} diff --git a/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module.tf b/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module.tf new file mode 100644 index 00000000000..53fbf87ecb1 --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module.tf @@ -0,0 +1,13 @@ +variable "override" { + default = "baz" +} +variable "no_default" {} +variable "unknown" {} + +module "test" { + source = "./module1" + + override = "${var.override}" + no_default = "${var.no_default}" + unknown = "${var.unknown}" +} diff --git a/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module1/resource.tf b/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module1/resource.tf new file mode 100644 index 00000000000..a5b1c64fc0c --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/.terraform/modules/07be448a6067a2bba065bff4beea229d/module1/resource.tf @@ -0,0 +1,15 @@ +variable "override" { + default = "baz" +} +variable "no_default" {} +variable "unknown" {} + +resource "aws_instance" "web" { + ami = "ami-b73b63a0" + instance_type = "t1.2xlarge" + + tags { + Name = "HelloWorld" + } +} + diff --git a/.automation/test/terraform/bad/nested_modules/.terraform/modules/a8d8930bc3c2ae53bf6e3bbcb3083d7b/resource.tf b/.automation/test/terraform/bad/nested_modules/.terraform/modules/a8d8930bc3c2ae53bf6e3bbcb3083d7b/resource.tf new file mode 100644 index 00000000000..a5b1c64fc0c --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/.terraform/modules/a8d8930bc3c2ae53bf6e3bbcb3083d7b/resource.tf @@ -0,0 +1,15 @@ +variable "override" { + default = "baz" +} +variable "no_default" {} +variable "unknown" {} + +resource "aws_instance" "web" { + ami = "ami-b73b63a0" + instance_type = "t1.2xlarge" + + tags { + Name = "HelloWorld" + } +} + diff --git a/.automation/test/terraform/bad/nested_modules/.terraform/modules/modules.json b/.automation/test/terraform/bad/nested_modules/.terraform/modules/modules.json new file mode 100644 index 00000000000..ed4ed6bad7a --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/.terraform/modules/modules.json @@ -0,0 +1 @@ +{"Modules":[{"Key":"root","Source":"./module","Dir":"module"},{"Key":"root.test","Source":"./module1","Dir":"module/module1"},{"Key":"1.root;./module","Source":"./module","Dir":".terraform/modules/07be448a6067a2bba065bff4beea229d"},{"Key":"1.root;./module|test;./module1","Source":"./module1","Dir":".terraform/modules/a8d8930bc3c2ae53bf6e3bbcb3083d7b"},{"Key":"","Source":"","Dir":"."}]} \ No newline at end of file diff --git a/.automation/test/terraform/bad/nested_modules/module.tf b/.automation/test/terraform/bad/nested_modules/module.tf new file mode 100644 index 00000000000..cb53aad1ff2 --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/module.tf @@ -0,0 +1,7 @@ +module "root" { + source = "./module" + + override = "foo" + no_default = "bar" + unknown = "${data.aws.ami.id}" +} diff --git a/.automation/test/terraform/bad/nested_modules/module/module.tf b/.automation/test/terraform/bad/nested_modules/module/module.tf new file mode 100644 index 00000000000..53fbf87ecb1 --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/module/module.tf @@ -0,0 +1,13 @@ +variable "override" { + default = "baz" +} +variable "no_default" {} +variable "unknown" {} + +module "test" { + source = "./module1" + + override = "${var.override}" + no_default = "${var.no_default}" + unknown = "${var.unknown}" +} diff --git a/.automation/test/terraform/bad/nested_modules/module/module1/resource.tf b/.automation/test/terraform/bad/nested_modules/module/module1/resource.tf new file mode 100644 index 00000000000..a5b1c64fc0c --- /dev/null +++ b/.automation/test/terraform/bad/nested_modules/module/module1/resource.tf @@ -0,0 +1,15 @@ +variable "override" { + default = "baz" +} +variable "no_default" {} +variable "unknown" {} + +resource "aws_instance" "web" { + ami = "ami-b73b63a0" + instance_type = "t1.2xlarge" + + tags { + Name = "HelloWorld" + } +} + diff --git a/.automation/test/terraform/bad/terraform_bad_1.tf b/.automation/test/terraform/bad/terraform_bad_1.tf index 553341e9e8c..8d4a1f96a44 100644 --- a/.automation/test/terraform/bad/terraform_bad_1.tf +++ b/.automation/test/terraform/bad/terraform_bad_1.tf @@ -1,4 +1,16 @@ +terraform { + required_version = ">= 1.2.5" +} + resource "aws_instance" "bad" { - ami = "ami-0ff8a91507f77f867" - instance_type = # invalid type! + instance_type = "t2.small" + associate_public_ip_address = false + + murf = "cupcake8" + + ebs_block_device { + encrypted = true + wesh = false + } } + diff --git a/.automation/test/terraform/bad/terraform_bad_2.tf b/.automation/test/terraform/bad/terraform_bad_2.tf index 51343098953..3449f18bb77 100644 --- a/.automation/test/terraform/bad/terraform_bad_2.tf +++ b/.automation/test/terraform/bad/terraform_bad_2.tf @@ -1,4 +1,18 @@ +terraform { + required_version = ">= 1.2.5" +} + resource "aws_instance" "bad" { - ami = "ami-0ff8a91507f77f867" - instance_type = # invalid type! + ami = "ami-0ff8a91507f77f867" + associate_public_ip_address = false + + vpc_security_group_ids = ["sg-12345678901234567"] + + murf = "cupcake" + + ebs_block_device { + encrypted = true + wesh2 = false + } } + diff --git a/.automation/test/terraform/good/terraform_good_1.tf b/.automation/test/terraform/good/terraform_good_1.tf index 330a28bfdfd..fbfef93e814 100644 --- a/.automation/test/terraform/good/terraform_good_1.tf +++ b/.automation/test/terraform/good/terraform_good_1.tf @@ -1,4 +1,9 @@ +terraform { + required_version = ">= 1.2.5" +} + resource "aws_instance" "good" { + required_version = ">= 0.15.0" ami = "ami-0ff8a91507f77f867" instance_type = "t2.small" associate_public_ip_address = false @@ -9,3 +14,4 @@ resource "aws_instance" "good" { encrypted = true } } + diff --git a/.automation/test/terraform/good/terraform_good_2.tf b/.automation/test/terraform/good/terraform_good_2.tf index 330a28bfdfd..fbfef93e814 100644 --- a/.automation/test/terraform/good/terraform_good_2.tf +++ b/.automation/test/terraform/good/terraform_good_2.tf @@ -1,4 +1,9 @@ +terraform { + required_version = ">= 1.2.5" +} + resource "aws_instance" "good" { + required_version = ">= 0.15.0" ami = "ami-0ff8a91507f77f867" instance_type = "t2.small" associate_public_ip_address = false @@ -9,3 +14,4 @@ resource "aws_instance" "good" { encrypted = true } } + diff --git a/.automation/test/tsx/tsx_fix_1.tsx b/.automation/test/tsx/tsx_fix_1.tsx index 618c7ed3e24..4aa38572dc7 100644 --- a/.automation/test/tsx/tsx_fix_1.tsx +++ b/.automation/test/tsx/tsx_fix_1.tsx @@ -1,3 +1,4 @@ import React from 'react'; var Hello = +console.log(Hello) diff --git a/.automation/test/tsx/tsx_fix_2.tsx b/.automation/test/tsx/tsx_fix_2.tsx index 618c7ed3e24..f3a0fe9fa04 100644 --- a/.automation/test/tsx/tsx_fix_2.tsx +++ b/.automation/test/tsx/tsx_fix_2.tsx @@ -1,3 +1,4 @@ import React from 'react'; var Hello = +console.log(Hello) \ No newline at end of file diff --git a/.automation/test/typescript/reports/ERROR-TYPESCRIPT_STANDARD.txt b/.automation/test/typescript/reports/ERROR-TYPESCRIPT_STANDARD.txt index dabd0f6c39e..5b24a52d652 100644 --- a/.automation/test/typescript/reports/ERROR-TYPESCRIPT_STANDARD.txt +++ b/.automation/test/typescript/reports/ERROR-TYPESCRIPT_STANDARD.txt @@ -2,7 +2,7 @@ Results of standard linter (version 15.0.1) See documentation on https://megalinter.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. +[ERROR] .automation/test/typescript_standard/typescript_bad_1.ts + ts-standard: Use TypeScript Standard Style (https://standardjs.com) + .automation/test/typescript_standard/typescript_bad_1.ts:5:39: Parsing error: Unterminated regular expression literal. diff --git a/.automation/test/typescript/reports/SUCCESS-TYPESCRIPT_STANDARD.txt b/.automation/test/typescript/reports/SUCCESS-TYPESCRIPT_STANDARD.txt index eb7d3f41f98..a6cf4922ce6 100644 --- a/.automation/test/typescript/reports/SUCCESS-TYPESCRIPT_STANDARD.txt +++ b/.automation/test/typescript/reports/SUCCESS-TYPESCRIPT_STANDARD.txt @@ -2,6 +2,6 @@ Results of standard linter (version 15.0.1) See documentation on https://megalinter.io/descriptors/typescript_standard/ ----------------------------------------------- -[SUCCESS] .automation/test/typescript/typescript_good_1.ts +[SUCCESS] .automation/test/typescript_standard/typescript_good_1.ts diff --git a/.automation/test/typescript/reports/expected-TYPESCRIPT_STANDARD.tap b/.automation/test/typescript/reports/expected-TYPESCRIPT_STANDARD.tap deleted file mode 100644 index 1271fc8fc9d..00000000000 --- a/.automation/test/typescript/reports/expected-TYPESCRIPT_STANDARD.tap +++ /dev/null @@ -1,7 +0,0 @@ -TAP version 13 -1..2 -not ok 1 - typescript_bad_1.ts - --- - message: standard Use JavaScript Standard Style (https //standardjs.com)\n /tmp/lint/.automation/test/typescript/typescript_bad_1.ts 5 39 Parsing error Unterminated regular expression literal.\n - ... -ok 2 - typescript_good_1.ts diff --git a/.automation/test/typescript/tsconfig.json b/.automation/test/typescript/tsconfig.json new file mode 100644 index 00000000000..a7d85ef05bf --- /dev/null +++ b/.automation/test/typescript/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "noImplicitAny": true, + "strictNullChecks": true + }, + "files": [ + "typescript_bad_1.ts", + "typescript_good_1.ts", + "typescript_good_2.ts", + "typescript_fix_1.ts", + "typescript_fix_2.ts", + ] +} diff --git a/.automation/test/typescript/typescript_fix_1.ts b/.automation/test/typescript/typescript_fix_1.ts old mode 100644 new mode 100755 index df79f77f3ed..58dde598797 --- a/.automation/test/typescript/typescript_fix_1.ts +++ b/.automation/test/typescript/typescript_fix_1.ts @@ -1,2 +1,2 @@ -const str: String = 'foo'; -console.log(str) +const str: String = 'foo' + console.log(str) diff --git a/.automation/test/typescript/typescript_fix_2.ts b/.automation/test/typescript/typescript_fix_2.ts old mode 100644 new mode 100755 index df79f77f3ed..58dde598797 --- a/.automation/test/typescript/typescript_fix_2.ts +++ b/.automation/test/typescript/typescript_fix_2.ts @@ -1,2 +1,2 @@ -const str: String = 'foo'; -console.log(str) +const str: String = 'foo' + console.log(str) diff --git a/.automation/test/typescript/typescript_good_1.ts b/.automation/test/typescript/typescript_good_1.ts index 68ef03e098c..bc63d3e533b 100644 --- a/.automation/test/typescript/typescript_good_1.ts +++ b/.automation/test/typescript/typescript_good_1.ts @@ -1,4 +1,4 @@ -const spiderman = (person) => { +const spiderman = (person: string): string => { return 'Hello, ' + person } diff --git a/.automation/test/typescript/typescript_good_2.ts b/.automation/test/typescript/typescript_good_2.ts index 68ef03e098c..bc63d3e533b 100644 --- a/.automation/test/typescript/typescript_good_2.ts +++ b/.automation/test/typescript/typescript_good_2.ts @@ -1,4 +1,4 @@ -const spiderman = (person) => { +const spiderman = (person: string): string => { return 'Hello, ' + person } diff --git a/.automation/test/yaml_schema/good/action.yml b/.automation/test/yaml_schema/good/action.yml index ed76fc59549..c5a3787155a 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://oxsecurity/megalinter:v6" + image: "docker://oxsecurity/megalinter:v7" branding: icon: "check" color: "green" diff --git a/.config/gitpod/Dockerfile b/.config/gitpod/Dockerfile new file mode 100644 index 00000000000..8d9188b0752 --- /dev/null +++ b/.config/gitpod/Dockerfile @@ -0,0 +1,100 @@ +################### +# builder # +################### +# First stage: Install build-time dependencies +FROM ubuntu:jammy as builder + +# hadolint ignore=DL3002 +USER root + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Copy Python version config file +COPY .python-version /tmp/ + +# Update system and install packages +# hadolint ignore=DL3008,DL3009,DL3013 +RUN PYTHON_VERSION=$(cut -d '.' -f 1,2 /tmp/.python-version) \ + && apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + bash-completion \ + ca-certificates \ + curl \ + git \ + git-lfs \ + gnupg \ + htop \ + iproute2 \ + lsb-release \ + make \ + nano \ + python3-pip \ + "python${PYTHON_VERSION}" \ + "python${PYTHON_VERSION}-venv" \ + sudo \ + tree \ + vim \ + wget \ + && python3 -m pip install --no-cache-dir --upgrade pip \ + && python3 -m pip install --no-cache-dir virtualenv + +############################ +# docker-installer # +############################ +FROM builder as docker-installer + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3009 +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \ + && apt-get update \ + && apt-get install -y --no-install-recommends docker-ce docker-ce-cli containerd.io + +########################### +# npm-installer # +########################### +FROM docker-installer as npm-installer + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Set a variable for packages version +ARG NPM_VERSION=9.8.0 +ARG UNGIT_VERSION=1.5.23 +ARG MEGA_LINTER_RUNNER_VERSION=7.0.0 +ARG MARKDOWN_TABLE_FORMATTER_VERSION=1.4.0 + +# hadolint ignore=DL3008 +RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ + && apt-get install -y --no-install-recommends nodejs \ + && npm install -g "npm@${NPM_VERSION}" \ + && npm install -g \ + "ungit@${UNGIT_VERSION}" \ + "mega-linter-runner@${MEGA_LINTER_RUNNER_VERSION}" \ + "markdown-table-formatter@${MARKDOWN_TABLE_FORMATTER_VERSION}" + +########################### +# cleanup # +########################### +FROM npm-installer as cleanup + +RUN apt-get clean && rm -rf /var/lib/apt/lists/* tmp/* + +########################### +# gitpod-user # +########################### +FROM cleanup as gitpod-user + +# UID must be 33333. +RUN useradd -l -u 33333 -G sudo -md /home/gitpod -s /bin/bash -p gitpod gitpod + +######################### +# final # +######################### +FROM ubuntu:jammy + +COPY --from=gitpod-user / / + +USER gitpod diff --git a/.config/make/00_config.mak b/.config/make/00_config.mak new file mode 100644 index 00000000000..8e954b1ac8c --- /dev/null +++ b/.config/make/00_config.mak @@ -0,0 +1,34 @@ +# Makefile global config +.DEFAULT_GOAL:=help +.EXPORT_ALL_VARIABLES: +.ONESHELL: +.SILENT: +MAKEFLAGS += "-j$(NUM_CORES) -l$(NUM_CORES)" +MAKEFLAGS += --silent +SHELL:=/bin/bash +.SHELLFLAGS = -eu -o pipefail -c + +# Makefile colors config +bold=$(shell tput bold) +normal=$(shell tput sgr0) +errorTitle=$(shell tput setab 1 && tput bold && echo '\n') +recommendation=$(shell tput setab 4) +underline=$(shell tput smul) +reset=$(shell tput -Txterm sgr0) +black=$(shell tput setaf 0) +red=$(shell tput setaf 1) +green=$(shell tput setaf 2) +yellow=$(shell tput setaf 3) +blue=$(shell tput setaf 4) +magenta=$(shell tput setaf 5) +cyan=$(shell tput setaf 6) +white=$(shell tput setaf 7) + +define HEADER +How to use me: + make help + make bootstrap-dev + make ${cyan}${reset} + +endef +export HEADER diff --git a/.config/make/gitpod.mak b/.config/make/gitpod.mak new file mode 100644 index 00000000000..ebefa549905 --- /dev/null +++ b/.config/make/gitpod.mak @@ -0,0 +1,13 @@ +## —— Gitpod ————————————————————————————————————————————————————————————————————————————————————— +.PHONY: gitpod-build +gitpod-build: ## Run docker build image in local + docker build --tag megalinter_gitpod:local --file .config/gitpod/Dockerfile . + +.PHONY: gitpod-lint +gitpod-lint: ## Run hadolint command to lint Dokerfile + docker run --rm -i hadolint/hadolint < .config/gitpod/Dockerfile + +.PHONY: gitpod-tests +gitpod-tests: ## Run tests for gitpod + $(MAKE) gitpod-lint + $(MAKE) gitpod-build diff --git a/.config/make/help.mak b/.config/make/help.mak new file mode 100644 index 00000000000..a71f2c7cad9 --- /dev/null +++ b/.config/make/help.mak @@ -0,0 +1,5 @@ +## —— Help ——————————————————————————————————————————————————————————————————————————————————————— +.PHONY: help +help: ## Help command + echo -e "$$HEADER" + grep -E '(^[a-zA-Z0-9_-]+:.*?## .*$$)|(^## )' $(MAKEFILE_LIST) | sed 's/^[^:]*://g' | awk 'BEGIN {FS = ":.*?## | #"} ; {printf "${cyan}%-30s${reset} ${white}%s${reset} ${green}%s${reset}\n", $$1, $$2, $$3}' | sed -e 's/\[36m##/\n[32m##/' diff --git a/.config/make/megalinter.mak b/.config/make/megalinter.mak new file mode 100644 index 00000000000..185ab78ef12 --- /dev/null +++ b/.config/make/megalinter.mak @@ -0,0 +1,20 @@ +## —— Megalinter ————————————————————————————————————————————————————————————————————————————————————— +.PHONY: megalinter-build +megalinter-build: ## Run script build.sh + source .venv/bin/activate + bash build.sh + +.PHONY: megalinter-run +megalinter-run: ## Run megalinter locally + npx mega-linter-runner --flavor python --release beta + +.PHONY: megalinter-tests +megalinter-tests: ## Run all megalinter tests + $(MAKE) megalinter-run + $(MAKE) megalinter-build + +.PHONY: megalinter-clean +megalinter-clean: ## Clean megalinter locally + sudo rm -rf megalinter-reports + sudo rm -rf site + sudo rm -f *megalinter_file_names_cspell.txt diff --git a/.config/make/nodejs.mak b/.config/make/nodejs.mak new file mode 100644 index 00000000000..ff58b01eebf --- /dev/null +++ b/.config/make/nodejs.mak @@ -0,0 +1,8 @@ +## —— Node.js ————————————————————————————————————————————————————————————————————————————————————— +.PHONY: nodejs-clean +nodejs-clean: ## Clean nodejs files + sudo rm -rf node_modules + +.PHONY: nodejs-bootstrap +nodejs-bootstrap: ## Bootstrap nodejs + npm install diff --git a/.config/make/python.mak b/.config/make/python.mak new file mode 100644 index 00000000000..0f9a342e3af --- /dev/null +++ b/.config/make/python.mak @@ -0,0 +1,75 @@ +# Python default launcher +python_launcher ?= python3.11 +python_requirements_file ?= .config/python/dev/requirements.txt +python_requirements_dev_file ?= .config/python/dev/requirements.txt + +## —— Python ————————————————————————————————————————————————————————————————————————————————————— +.PHONY: python-bootstrap +python-bootstrap: ## Bootstrap python + $(MAKE) python-venv-init + $(MAKE) python-venv-upgrade + $(MAKE) python-venv-requirements + +.PHONY: python-bootstrap-dev +python-bootstrap-dev: ## Bootstrap python for dev env + $(MAKE) python-venv-requirements-dev + $(MAKE) python-venv-linters-install + +# =============================================================================================== +# .venv +# =============================================================================================== +.PHONY: python-venv-init +python-venv-init: ## Create venv ".venv/" if not exist + if [ ! -d .venv ] ; then + $(python_launcher) -m venv .venv + fi + +.PHONY: python-venv-upgrade +python-venv-upgrade: ## Upgrade venv with pip, setuptools and wheel + source .venv/bin/activate + pip install --upgrade pip setuptools wheel + +.PHONY: python-venv-requirements +python-venv-requirements: ## Install or upgrade from $(python_requirements_file) + source .venv/bin/activate + pip install --upgrade --requirement $(python_requirements_file) + +.PHONY: python-venv-requirements-dev +python-venv-requirements-dev: ## Install or upgrade from $(python_requirements_dev_file) + source .venv/bin/activate + pip install --upgrade --requirement $(python_requirements_dev_file) + +.PHONY: python-venv-linters-install +python-venv-linters-install: ## Install or upgrade linters + source .venv/bin/activate + pip install --upgrade flake8 + +.PHONY: python-venv-purge +python-venv-purge: ## Remove venv ".venv/" folder + rm -rf .venv + +# =============================================================================================== +# Utils +# =============================================================================================== +.PHONY: python-purge-cache +python-purge-cache: ## Purge cache to avoid used cached files + if [ -d .venv ] ; then + source .venv/bin/activate + pip cache purge + fi + +.PHONY: python-version +python-version: ## Displays the python version used for the .venv + source .venv/bin/activate + $(python_launcher) --version + +.PHONY: python-flake8 +python-flake8: ## Run flake8 linter for python + source .venv/bin/activate + flake8 --config .config/.flake8 + +.PHONY: python-pytest +python-pytest: ## Run pytest to test python scripts + source .venv/bin/activate + cd scripts/ + $(python_launcher) -m pytest diff --git a/requirements.dev.txt b/.config/python/dev/requirements.txt similarity index 87% rename from requirements.dev.txt rename to .config/python/dev/requirements.txt index 142da2a7205..2c4ac6c8fee 100644 --- a/requirements.dev.txt +++ b/.config/python/dev/requirements.txt @@ -1,29 +1,33 @@ +aiofiles +azure-devops==6.0.0b4 +beautifulsoup4 +commentjson +fastapi gitpython -jsonschema +giturlparse +importlib-metadata>=3.10 +json-schema-for-humans jsonpickle +jsonschema +mdx_truly_sane_lists mkdocs +mkdocs-glightbox==0.3.2 +mkdocs-material multiprocessing_logging pychalk pygithub -python-gitlab -azure-devops==6.0.0b4 -commentjson +pymdown-extensions==9.11 pytablewriter pytest-cov pytest-timeout pytest-xdist python-gitlab +python-gitlab +python-multipart pyyaml +redis regex requests terminaltables webpreview yq -importlib-metadata>=3.10 -mkdocs-material -mkdocs-glightbox==0.3.2 -mdx_truly_sane_lists -beautifulsoup4 -giturlparse -json-schema-for-humans -fastapi diff --git a/.cspell.json b/.cspell.json index 11dffdde5c7..129b9fe10af 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,20 +1,152 @@ { "ignorePaths": [ - "**/node_modules/**", - "**/vscode-extension/**", "**/.automation/generated/**", + "**/.cspell.json", "**/.git/**", - "**/package-lock.json", - "**/licenses/*.md", "**/all_users.md", + "**/licenses/*.md", + "**/node_modules/**", + "**/package-lock.json", "**/used-by-stats.md", - "**/.cspell.json", "**/valestyles/**", + "**/vscode-extension/**", + ".vscode", "lib", - "report", - ".vscode" + "misspell", + "report" + ], + "ignoreWords": [ + "AROA47DSWDEZA3", + "Chandan", + "Cpageref", + "Cpagerefrange", + "Crefrange", + "FATA", + "KNNXNNXO", + "KNXNX0kxdddddddoc", + "Ksection", + "OXXXXKd", + "Paren", + "Prego", + "QIDAQAB", + "RQASWB", + "Ywarn", + "abefhkmnptuvx", + "admiralawkbar", + "alignat", + "aproba", + "arrify", + "baprs", + "cacache", + "categor", + "cdkOOOOOOOO0KXXXXXXXXXXK0OOOOOOOkxo", + "chokidar", + "chownr", + "citep", + "citet", + "citetext", + "citeyear", + "ckKXNNNXkc", + "cloneable-readable", + "crcr", + "cyclonedx", + "dKNNXXO", + "dargs", + "depd", + "dezalgo", + "dont", + "drmaa", + "eadme", + "enableassertions", + "enablesystemassertions", + "epub", + "esprima", + "etailed", + "eventemitter3", + "execa", + "fastq", + "ffenses", + "filelist", + "fs.realpath", + "gotit", + "has-bigints", + "has-tostringtag", + "hiqr", + "humanwhocodes", + "ilrsD", + "imple", + "iname", + "inimal", + "is-arrayish", + "isaacs", + "kleur", + "kxdddddddoc", + "lKXXXX0", + "leavevmode", + "lodddddddxk0XXXX0c", + "looool", + "lycheecache", + "lycheeignore", + "lycheeverse", + "metavuln", + "minimatch", + "minimist", + "minipass", + "minizlib", + "mkdirp", + "msgon", + "nextick", + "noni", + "noout", + "nopt", + "npm-packlist", + "npmpackagejsonlintignore", + "npmpackagejsonlintrc", + "oKXXN0", + "oKXXXXNXXX0l", + "oool", + "ormal", + "orst", + "os-tmpdir", + "pacote", + "paren", + "pbab", + "pify", + "punycode", + "pushexample", + "pypi-AgEIcHlwaS5vcmc", + "qedhere", + "readdir-scoped-modules", + "rechoir", + "repositoryformatversion", + "reusify", + "rimraf", + "rulesetsoverridetype", + "sffamily", + "shelljs", + "sisteransi", + "taketalk", + "tootallnate", + "treeverse", + "ubar", + "uiet", + "universalify", + "untildify", + "usedif", + "utteranc", + "verbatiminput", + "verbatimtab", + "verbatimtabinput", + "versionthe", + "wcwidth", + "webidl-conversions", + "wemn", + "whatwg-url", + "xXNXXXXXXXXXKo", + "yallist", + "yocto-queue" ], - "language": "en", + "language": "en,en-GB", "noConfigSearch": true, "version": "0.2", "words": [ @@ -36,16 +168,17 @@ "Aftertabs", "Airlinese", "Alexa", - "Amarkdown", - "Amegalinter", "Analyse", "Anchore", + "Andreoli", "Andrieu", "Anson", "Antiferov", + "ApexCSRF", "Archi", "Arsene", "Atoi", + "Augusto", "BCHP", "BETAID", "BUILDID", @@ -53,16 +186,13 @@ "BUILTINS", "Bame", "Berkers", - "Bmegalinter", + "Borja", "Bosse", "Braintree", - "Breporters", "Bubley", "CHECKMAKE", "CHECKOV", "CHECKSTYLE", - "CHKTEX", - "CHOCO", "CLIPPY", "CLIXML", "CLIs", @@ -80,23 +210,16 @@ "Callout", "Checkmake", "Checkstyle", - "Choini", "Choini\u00e8re", - "Citealp", - "Citealt", - "Citeauthor", "Citep", "Citet", "Classpath", "Cleveref", - "Cmegalinter", + "Cloudity", "Codespaces", "Concat", "Conda", "Constantin", - "Cpageref", - "Cpagerefrange", - "Crefrange", "Cres", "Csrf", "C\u00e9dric", @@ -107,21 +230,19 @@ "DOCKERFILELINT", "DOCTEST", "DOTENV", - "DRMAA", "DTDs", "DUSTILOCK", "Dariusz", - "Dariusz) -- megalinter/issues/2448", + "DashExcpt", "Deneuve", "Dependabot", "Detekt", "Devcontainer", - "Dmegalinter", "Dockerfiles", "Dockerhub", "Dockle", + "Doommius", "Dustilock", - "Dxml", "Dynatrace", "EDITORCONFIG", "EEXIT", @@ -129,76 +250,53 @@ "ENTRYPOINT", "ESRCH", "Edouard", - "Ekubernetes", - "Emegalinter", "Envir", "Etienne", - "Excpt", - "FATA", "FILEIO", "FIRSTPARTY", - "Fmegalinter", "Fougerouse", "GHSA", - "GITLEAKS", "GOBIN", "GOLANGCI", "GOODCHECK", "GOPATH", "GOROOT", - "Gcss", + "GRYPE", "Gdns", "Gijs", "Gijt", "Gitleaks", "Globstar", - "Gmegalinter", "Grachev", "Gravley", - "Gridex) -- v=raCDpsP9O78", - "Gridex) -- \"Gridex", - "Gridex) -- v=raCDpsP9O78", + "GridexX", "Gruntwork", "HADOLINT", "HTMLHINT", - "HYPHDASH", "Hadolint", "Hardcoding", - "Hashi", - "Hlwa", - "Hmegalinter", + "HashiCorp", "Hosom", - "Htest", - "Hyph", + "HyphDash", "ISORT", - "Ihgroovy", "Intellij", "Isort", - "JAVSCRIPT", "JREs", "JSCPD", "JSONLINT", + "Jablonski", "Javadoc", "Jenkinsfile", "Jens", "Jouanique", "KICS", - "KNNXNNXO", - "KNNXXO", - "KNXNX", "KONDO", "KTLINT", "KUBERNETES", "KUBESCAPE", "KUBEVAL", - "KXNNN", - "KXXN", - "KXXXX", - "KXXXXNXXX", - "KXXXXXXXXXXK", "Klingenberg", "Kover", - "Ksection", "Ktlint", "Kubernetes", "Kubescape", @@ -208,22 +306,16 @@ "LOCALFOLDER", "LUACHECK", "Laven", - "Lfiles", "Libxml", "Lintr", - "Llib", - "Lmoc", "Luacheck", "Lukas", "MARKDOWNLINT", "MODULEPATH", - "MPAF", "Mailchimp", "Mailgun", "Minguez", - "Mmegalinter", - "Moar", - "Mspell", + "MoarVM", "Musavi", "NICO", "NOLINT", @@ -234,13 +326,10 @@ "Nonwords", "OPENAPI", "OPTIONNAME", - "OXXXX", - "Okxo", "Omeed", "Ortelius", "Overridable", "Oxymorons", - "PCPCS", "PCRE", "PERLCRITIC", "PHAR", @@ -269,29 +358,21 @@ "PYTYPE", "Pansino", "Parallelly", - "Paren", - "Pathto", + "Philipp", "Phive", "Picatic", "Pluggable", "Porowski", - "Porowski) -- issues/2448", "Positionals", "Practicalli", "Proselint", "Protolint", "Pylint", "Pytest", - "QIDAQAB", - "Qreporters", "R2DevOps", "RAKU", - "RAKUDO", "RAKULIB", - "RELASE", - "RISSUE", "ROOTPATH", - "RSTCHECK", "RSTFMT", "RUBOCOP", "RULECODE", @@ -300,7 +381,6 @@ "Rakudo", "Reijn", "Rhysd", - "Roos", "Rscript", "Rubo", "Rubocop", @@ -314,12 +394,10 @@ "SEMGREP", "SFDC", "SFDX", - "SHELLCHECK", "SHELLCMD", "SHELLNAME", "SHFMT", "SNAKEFMT", - "SNAKEMAKE", "SOQL", "SOURCEPATHS", "SQLFLUFF", @@ -333,6 +411,7 @@ "Scalafix", "Semgrep", "Shellcheck", + "Shiran", "Signup", "Singleline", "Snakefile", @@ -357,11 +436,11 @@ "TFLINT", "THIRDPARTY", "TIBANNA", - "TODONEXT", - "TOTERM", + "TRUFFLEHOG", "TSQL", "TSQLLINT", "TYPECHECK", + "TeXbook", "Terrafmt", "Terragrunt", "Terrascan", @@ -370,7 +449,7 @@ "Tibanna", "Trivy", "Twilio", - "UNSECURE", + "UNGIT", "Uncomparables", "VARNAME", "VBDOTNET", @@ -379,34 +458,26 @@ "WORDDASH", "WORKDIR", "Wiebe", - "Wsnakemake", - "Wtreports", - "XNXXXXXXXXX", "YAMLLINT", "YMLs", "YOURBRANCH", "YOURUSERNAME", - "Yreports", - "Ywarn", - "Zepu", - "Zraku", "aarch64", - "abefhkmnptuvx", "abhith", - "abogoyavlensky", "absolutized", "abstractproperty", "accurics", "addgroup", "additional", "addlinespace", - "admiralawkbar", + "addsuffix", "adrienverge", + "agentkeepalive", "agentlib", "agentpath", + "aiofiles", "airbnb", "akhilerm", - "alignat", "alnum", "analyse", "analysed", @@ -424,7 +495,6 @@ "aren", "argparse", "armv6", - "arror", "artefacts", "asdict", "ashokm", @@ -441,17 +511,15 @@ "automerge", "autopep", "autoplay", + "await-thenable", "babashka", "backticks", "backtrace", - "baprs", "basename", "basenames", "basepath", "basestring", "bashbug", - "bashdb", - "bbcoffeescript", "bcbad", "bdovaz", "beautifulsoup", @@ -464,8 +532,8 @@ "bicepconfig", "bigskip", "bikeshedding", + "binaryextensions", "binx", - "bmod", "booktabs", "borkdude", "bottomrule", @@ -473,17 +541,16 @@ "bucketname", "buildx", "builtins", - "cacache", "callout", "callouts", "callsites", "camelcase", "catcode", - "categor", "cdxml", "cfnlint", "cfnlintrc", "chardef", + "chardet", "charmap", "checkmake", "checkmarx", @@ -499,10 +566,6 @@ "citealp", "citealt", "citeauthor", - "citep", - "citet", - "citetext", - "citeyear", "citeyearpar", "cjoudrey", "classloader", @@ -530,11 +593,13 @@ "codestyle", "coffeelint", "collectd", + "colour", "columnsep", "columnseprule", "commandline", "commentjson", "commmands", + "commondir", "compat", "compojure", "cond", @@ -553,7 +618,6 @@ "cpagerefrange", "cpplint", "cpython", - "crcr", "creds", "crefrange", "csharpierignore", @@ -564,8 +628,11 @@ "cyclomatic", "dans", "dartanalyzer", + "dateformat", "davidjeddy", + "dearmor", "debugent", + "debuglog", "decamelize", "dedup", "defroutes", @@ -573,13 +640,11 @@ "delslice", "dependabot", "deps", - "dera", "descriptionless", "devcontainer", "devcontainers", "devel", - "devpro) -- \"devpro", - "devpro) -- v=NauVD4z-cMA", + "devpro", "devskim", "dimen", "dimendef", @@ -598,10 +663,10 @@ "doctest", "doctests", "domainbuilder", - "dont", "dotenv", "dotenvlinter", "dotfill", + "dotnetweb", "dpkg", "drbothen", "dric", @@ -620,8 +685,6 @@ "editorconfig", "ehlo", "elpy", - "enableassertions", - "enablesystemassertions", "encodedcommand", "endcsname", "endgroup", @@ -647,13 +710,13 @@ "esrecurse", "estraverse", "esutils", - "etailed", "everytime", "evolutive", "execfile", "exiasr", "exitstatus", "expandafter", + "explicitely", "expressjs", "extglob", "extraheader", @@ -666,7 +729,6 @@ "fastapi", "favicon", "fetchable", - "ffenses", "fflib", "filecontents", "filegraph", @@ -692,11 +754,9 @@ "frenchspacing", "frontmatter", "fsevents", - "fterragrunt", "fullmatch", "fullpath", "fullwidth", - "garethr", "gcompat", "gemrc", "getslice", @@ -730,13 +790,13 @@ "goodcheck", "goodwithtech", "gosec", - "gotit", "govet", "gridftp", "grimmjo", "groovylintrc", "groupby", "gruntwork", + "grype", "gsed", "gtag", "hadolint", @@ -750,7 +810,6 @@ "headsep", "hfil", "hgblame", - "hiqr", "hkps", "hlink", "hobbys", @@ -760,19 +819,12 @@ "htmlhint", "htmlhintrc", "htmlout", - "hyhs", - "idiv", - "ighe", "ignorepattern", - "ilrs", "imagepath", - "imple", "importlib", "imurmurhash", - "iname", "includeonly", "includeorder", - "inimal", "initargs", "inlinevar", "inputfile", @@ -781,6 +833,8 @@ "instrumenta", "intepreted", "intertext", + "isarray", + "isbinaryfile", "isdir", "isexe", "isfile", @@ -807,15 +861,15 @@ "joereynolds", "jscoverage", "jscpd", + "jsonfile", "jsonify", "jsonlint", "jsonlintrc", + "jsonparse", "jsonpickle", "jsonschema", "jspm", "jupyfmt", - "jwiebalk", - "kdocs", "keygen", "keyserver", "keyservers", @@ -835,10 +889,8 @@ "kuhyenmk", "kustomize", "kwargs", - "kxdddddddoc", "lacheck", "langserver", - "leavevmode", "leveldb", "levn", "lexstatic", @@ -848,6 +900,7 @@ "libgcc", "libintl", "libname", + "libresolv", "libssl", "libstdc", "libunwind", @@ -859,6 +912,7 @@ "linelength", "linesep", "linkcheck", + "linterkey", "linterrc", "linterversion", "lintignore", @@ -871,14 +925,12 @@ "loaddtd", "localedef", "localrc", - "lodddddddxk", "logallrefupdates", "logiciels", "logilab", "loging", "loglevel", "looo", - "looool", "lstlisting", "lttng", "luacheck", @@ -918,17 +970,16 @@ "mkdocs", "mksh", "mktemp", - "mlinters", "moarvm", "moverperfect", "mprettier", "mrtazz", - "msgon", "msrest", "mstruebing", "msvs", "multiarch", "multiline", + "multimatch", "multiplicating", "multline", "musl", @@ -948,7 +999,6 @@ "natbib", "nbbytes", "ndiff", - "nemchik", "neomake", "newcommand", "newpage", @@ -963,6 +1013,7 @@ "noconfig", "nodefdtd", "nodejsscan", + "nodelib", "nodockerpull", "noediting", "noenc", @@ -974,10 +1025,8 @@ "nolintafter", "nolock", "nonfrenchspacing", - "noni", "noninteractive", "noonly", - "noout", "nopagebreak", "noparent", "noprofile", @@ -995,9 +1044,9 @@ "nowarning", "nowrap", "noxincludenode", + "npmcli", "npmignore", - "npmpackagejsonlintignore", - "npmpackagejsonlintrc", + "npmlog", "npmrc", "nsclean", "nsswitch", @@ -1010,8 +1059,6 @@ "oldxml", "onecolumn", "onstart", - "oohhsyyo", - "oool", "openapi", "openapirc", "opencontainers", @@ -1022,32 +1069,21 @@ "openshift", "optionator", "optparse", - "ormal", - "orst", - "oshhso", - "oshsoo", - "osoh", - "osssosysso", - "ossssso", "outfile", "overgeneral", "overridden", "overtrue", "owasp", "oxsecurity", - "oyys", - "oyyy", "packagename", "pagebreak", "pageref", "pandoc", "parallelization", - "paren", "parens", "parseable", "pascalgn", "patt", - "pbab", "pcresyntax", "perlcritic", "perlcriticrc", @@ -1074,11 +1110,13 @@ "pnpm", "poptabs", "posix", + "postcommands", "posteriori", "postgres", "postvalid", "prantlf", "precommand", + "precommands", "preemptible", "preid", "premption", @@ -1118,6 +1156,7 @@ "pylint", "pylint's", "pylintrc", + "pymdown", "pymdownx", "pypi", "pyproject", @@ -1128,9 +1167,7 @@ "pytest", "pytype", "pyyaml", - "qedhere", "qsub", - "qualit", "qualit\u00e9", "quickfixes", "quickstart", @@ -1143,18 +1180,15 @@ "rawhtml", "rbenv", "rcfile", - "rdiv", "rdoc", "reStructuredText", "readdirp", "readline", "readonly", - "realitiy", "reenable", "reformatter", "regexes", "regexpp", - "rego", "regsub", "reimann", "reindent", @@ -1163,7 +1197,6 @@ "remoting", "replicatedhq", "repos", - "repositoryformatversion", "reqparse", "reqs", "retagging", @@ -1192,23 +1225,24 @@ "rulesdir", "ruleset", "rulesets", - "rulesetsoverridetype", "runspace", "rustc", "rustup", + "ruzickap", "saas", "sarif", "sbatch", "sbom", "scalac", "scalafix", + "scandir", "scattergather", "sccache", "schemastore", "schematron", "scriptsize", "scshape", - "sdossyyys", + "seaneagan", "secretlint", "secretlintrc", "selectfont", @@ -1221,7 +1255,6 @@ "setslice", "setuptools", "sfdx", - "sffamily", "sgerrand", "shellcheck", "shellcheckrc", @@ -1229,7 +1262,6 @@ "shfmt", "shfmt's", "shiranr", - "shohoyyo", "shopt", "shortintertext", "showversion", @@ -1245,12 +1277,9 @@ "snakefile", "snakefmt", "snakejob", - "snakemake", "socio", "somefile", "sonarqube", - "soossssoso", - "sososhhhyyso", "sourcecommitid", "sourcefilepath", "sourceroot", @@ -1260,9 +1289,6 @@ "sqlfluff", "squizlabs", "sshs", - "ssoyh", - "ssyy", - "ssyyhhyshmhdyhhhssyyoo", "stackoverflow", "stacktraces", "stagestats", @@ -1290,8 +1316,6 @@ "subprocesses", "subworkflows", "successful", - "sugarss", - "suis", "suppressionfilter", "suppressionxpathfilter", "svnblame", @@ -1319,6 +1343,7 @@ "texdraw", "textbf", "textem", + "textextensions", "textheight", "textipa", "textit", @@ -1331,7 +1356,6 @@ "tflint", "tfpath", "tfvars", - "thenable", "thicklines", "thinlines", "thirdparty", @@ -1353,25 +1377,26 @@ "trimstart", "trivyignore", "trollface", + "trufflehog", + "trufflesecurity", "tsql", "tsqllint", "tsqllintrc", "ttfamily", "ttoken", + "tunetheweb", "twemoji", "twilio", "twocolumn", "twolfson", "typeof", "typeout", - "ubad", - "ubar", - "uiet", "unawaited", "unconvert", "undepending", "unfunction", "ungap", + "ungit", "unichr", "unparser", "unpicklable", @@ -1381,23 +1406,15 @@ "updaterm", "upgrader", "upshape", - "usedif", "usergroup", "utilstest", "utogenconf", - "utteranc", "uvicorn", "valestyles", "varfile", "vbdotnet", - "vcmc", - "veloppement", "venv", "venvs", - "verbatiminput", - "verbatimtab", - "verbatimtabinput", - "versionthe", "vfil", "virtualenv", "virtualised", @@ -1405,25 +1422,24 @@ "visualforce", "vitalitytv", "votre", - "votre) -- - (FR", "vrefwarning", "vsiakka", "vuln", + "waitretry", "warnon", - "wata", + "waterfoul", + "weakref", "webpreview", "weirdnesses", - "wemn", "wesh", - "wgood", "whitespaces", "windir", "wipeverb", "workdir", "workerpool", - "workspacec", "wrappy", "wscript", + "xadd", "xargs", "xdist", "xinclude", @@ -1431,24 +1447,15 @@ "xmlwriter", "xrange", "xtest", - "xtorc", "yamllint", "yann", "yannh", "yapf", "yappi", - "ymsosys", + "yargs", "yoheimuta", "yosay", - "ysoy", - "ysysss", "zaach", - "zkoppert", - "zricethezav", - "zyaml", - "\u03f0linters", - "\u04bbcoffeescript", - "\u0636clojure", - "\u077bcbad" + "zricethezav" ] -} +} \ No newline at end of file diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 40746af7805..401681b0594 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -9,9 +9,9 @@ ARG NODE_VERSION="16" RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi # [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. -COPY requirements.dev.txt /tmp/pip-tmp/ +COPY .config/python/dev/requirements.txt /tmp/pip-tmp/ RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.dev.txt \ - && rm -rf /tmp/pip-tmp && pip3 install --no-cache-dir mkdocs-material mkdocs-glightbox==0.3.2 + && rm -rf /tmp/pip-tmp && pip3 install --no-cache-dir mkdocs-material pymdown-extensions==9.11 mkdocs-glightbox==0.3.2 pymdown-extensions==9.11 RUN npm install markdown-table-formatter -g diff --git a/.dockerignore b/.dockerignore index 280ba5610a8..38838d13a2f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -13,4 +13,5 @@ pids *.pid *.seed *.pid.lock -*.log \ No newline at end of file +*.log +.venv diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7258800d997..8740f8c82a9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,7 @@ ###################################################################### # These owners will be the default owners for everything in the repo # ###################################################################### + +.github/workflows @nvuillam + * @nvuillam diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6b989b291be..64200444b30 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -3,49 +3,60 @@ :wave: Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. -## Submitting a pull request +## How to Contribute -[Pull Requests][pulls] are used for adding new playbooks, roles, and documents to the repository, or editing the existing ones. +### 1. Create an issue -### Pre-requisites +Report problems or suggest improvements by [creating an issue](https://github.com/oxsecurity/megalinter/issues). -- You need [**Python 3**](https://www.python.org/downloads/) (version 3.7 minimum) and [**Node.js** (14+)](https://nodejs.org/en/download/) to be installed on your computer. - - If you have issues running Python on Windows, you can uninstall it then reinstall it using [this video tutorial](https://www.youtube.com/watch?v=uDbDIhR76H4), then copy python.exe and name it python3.exe +### 2. Fork the project -- Run the following commands at the root of the repository to install required dev dependencies -```shell -python3 -m venv .venv -. .venv/bin/activate -echo ".venv/" >> .git/info/exclude -python3 -m pip install -U pip -python3 -m pip install -r requirements.dev.txt -``` +[Fork the repository](https://github.com/oxsecurity/megalinter) to your GitHub account. -_If it doesn't work, just run the following script_ +### 3. Make changes -```shell -pip install -r requirements.dev.txt -pip install mkdocs-material "mkdocs-glightbox==0.3.2" -npm install markdown-table-formatter -g -``` +Clone your fork locally and make the necessary changes: -Second level dev dependencies are installed by running `./build.sh` which is also a test if the installation worked - -```shell -./build.sh -2021-03-30 19:40:03,790 [INFO] Validating ansible.megalinter-descriptor.yml -2021-03-30 19:40:03,879 [INFO] Validating arm.megalinter-descriptor.yml -… -Formatting markdown tables… -Need to install the following packages: - markdown-table-formatter -Ok to proceed? (y) -… -INFO - Documentation built in 9.76 seconds -(done.) +```bash +git clone git@github.com:YOURNAMESPACE/megalinter.git ``` -_(if you have a permission denied issue on Windows, please check [this solution](https://stackoverflow.com/a/57168165/7113625))_ +### 4. Test your changes + +#### 4.1 Gitpod + +Use Gitpod for a cloud-based development environment: + +1. Sign up for Gitpod: +2. Fork the `megalinter` repository +3. Open your fork in Gitpod: `https://gitpod.io/#https://github.com/username/megalinter` +4. Create a new branch: `git checkout -b my-feature-branch` +5. Make your changes and commit: `git add .` and `git commit -m "chore: description of changes"` +6. Test all : `make tests` or `make tests-fast` for TDD mode +7. Test with megalinter: `make megalinter-tests` +8. Push your changes: `git push origin my-feature-branch` +9. Create a pull request on GitHub +10. Wait for a review + +Keep your Gitpod workspace synced with the main repository. + +#### 4.2 Desktop + +Install [make](https://www.gnu.org/software/make/), [Python3.11](https://www.python.org/), [venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/), [docker](https://docs.docker.com/engine/install/ubuntu/) and [nodejs](https://github.com/nodesource/distributions/tree/master). + +Run `make` for Makefile help. Initialize virtualenv and install dependencies with `make reinitialization` or `make bootstrap`. Test your changes with `make tests` or `make tests-fast`. + +You can lint with `make megalinter` (Incoming) + +### 5. Submit a pull request + +[Create a pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) and [refer to the issue number](https://help.github.com/en/github/writing-on-github/autolinked-references-and-urls) using #123, where 123 is the issue number. + +### 6. Wait + +Your pull request will be reviewed, and you'll receive feedback. Thanks for contributing! + +Consider sponsoring the maintainer via [GitHub](https://github.com/sponsors/nvuillam). ### With write access @@ -108,7 +119,7 @@ In order to be able to run locally a server that serves all the documentation an Command to execute (only one time): ```bash -pip install --upgrade "markdown==3.3.7" mike mkdocs-material "mkdocs-glightbox==0.3.2" mdx_truly_sane_lists jsonschema json-schema-for-humans giturlparse webpreview github-dependents-info +pip install --upgrade "markdown==3.3.7" mike mkdocs-material "pymdown-extensions==9.11" "mkdocs-glightbox==0.3.2" mdx_truly_sane_lists jsonschema json-schema-for-humans giturlparse webpreview github-dependents-info ``` Command to run every time you want to bring up the server: @@ -205,6 +216,5 @@ If you are the current maintainer of this action: - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) - [GitHub Help](https://help.github.com) -[pulls]: https://github.com/oxsecurity/megalinter/pulls [pr]: https://github.com/oxsecurity/megalinter/compare [fork]: https://github.com/oxsecurity/megalinter/fork diff --git a/.github/linters/.golangci.yml b/.github/linters/.golangci.yml index 5088d6310e4..01021999d82 100644 --- a/.github/linters/.golangci.yml +++ b/.github/linters/.golangci.yml @@ -1,40 +1,11 @@ ---- -######################### -######################### -## Golang Linter rules ## -######################### -######################### - -# configure golangci-lint -# see https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml -issues: - exclude-rules: - - path: _test\.go - linters: - - dupl - - gosec - - goconst linters: + disable-all: true enable: - - golint - - gosec - - unconvert - - gocyclo - - goconst - - goimports - - maligned + - gofmt - gocritic -linters-settings: - errcheck: - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - gocyclo: - # minimal code complexity to report, 30 by default - min-complexity: 15 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true + - gosimple + - govet + - ineffassign + - staticcheck + - typecheck + - unused diff --git a/.github/linters/.jscpd.json b/.github/linters/.jscpd.json index f88c111bd9d..9bd40858ed1 100644 --- a/.github/linters/.jscpd.json +++ b/.github/linters/.jscpd.json @@ -24,6 +24,8 @@ "**/megalinter/tests/test_megalinter/mega_linter*", "**/megalinter/tests/test_megalinter/plugins_test.py*", "**/megalinter/tests/test_megalinter/config_test.py", + "**/TrivySbomLinter.py", + "**/repository_trivy_sbom_test.py", "**/megalinter/utilstest.py", "**/*.test.js", "**/CHANGELOG.md", diff --git a/.github/linters/.mypy.ini b/.github/linters/.mypy.ini index d6e19014286..7be69f3c03f 100644 --- a/.github/linters/.mypy.ini +++ b/.github/linters/.mypy.ini @@ -1,5 +1,5 @@ # Global options: [mypy] -ignore_missing_imports = True -exclude = megalinter/server.py \ No newline at end of file +ignore_missing_imports = true +exclude = (server/server\.py|server/types\.py) diff --git a/.github/linters/lychee.toml b/.github/linters/lychee.toml new file mode 100644 index 00000000000..8c22e6725e9 --- /dev/null +++ b/.github/linters/lychee.toml @@ -0,0 +1,62 @@ +# Docs: https://lychee.cli.rs/#/usage/config +# Example config: https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml + +############################# Cache ############################### + +# Enable link caching. This can be helpful to avoid checking the same links on multiple runs. +cache = true + +# Discard all cached requests older than this duration. +max_cache_age = "1d" + +############################# Runtime ############################# + +# Maximum number of allowed redirects. +max_redirects = 6 + +# Maximum number of allowed retries before a link is declared dead. +max_retries = 2 + +# Maximum number of concurrent link checks. +# max_concurrency = 2 + +############################# Requests ############################ + +# User agent to send with each request. +user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43" + +# Minimum wait time in seconds between retries of failed requests. +retry_wait_time = 2 + +# Comma-separated list of accepted status codes for valid links. +accept = [200, 206, 429] + +# Only test links with the given schemes (e.g. https). +# Omit to check links with any scheme. +scheme = [ "https", "http" ] + +# Custom request headers +headers = ['Accept-Encoding: deflate, compress, gzip, br, zstd'] + +############################# Exclusions ########################## + +# Ignore case of paths when matching glob patterns. +glob_ignore_case = true + +# Exclude all private IPs from checking. +exclude_all_private = true + +# Exclude private IP address ranges from checking. +exclude_private = true + +# Exclude link-local IP address range from checking. +exclude_link_local = true + +# Exclude loopback IP address range and localhost from checking. +exclude_loopback = true + +# Exclude all mail addresses from checking. +exclude_mail = true + +# Exclude these filesystem paths from getting checked. +exclude_path = ["node_modules", "site", "docs", ".venv", "CHANGELOG.md", "megalinter/descriptors/schemas", ".automation/generated", ".automation/test"] diff --git a/.github/workflows/auto-update-linters.yml b/.github/workflows/auto-update-linters.yml index 0675f457013..ff84950f449 100644 --- a/.github/workflows/auto-update-linters.yml +++ b/.github/workflows/auto-update-linters.yml @@ -25,6 +25,14 @@ jobs: name: Auto-Update Linters # Set the agent to run on runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write + environment: + name: auto-update # 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 == 'oxsecurity/megalinter' # Set max build time for the job @@ -54,6 +62,13 @@ jobs: - name: Get current date run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_ENV} + # 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 + ################################### # Build image locally for testing # ################################### @@ -81,7 +96,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 GITHUB_TOKEN=${GITHUB_TOKEN} -e PAT="${{ secrets.PAT }}" -e GITHUB_OUTPUT="${GITHUB_OUTPUT}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:auto_update_${{ github.sha }} + run: docker run -e UPGRADE_LINTERS_VERSION=true -e GITHUB_SHA=${{ github.sha }} -e GITHUB_TOKEN=${GITHUB_TOKEN} -e GITHUB_OUTPUT="${GITHUB_OUTPUT}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:auto_update_${{ github.sha }} timeout-minutes: 60 # Format markdown tables @@ -105,7 +120,7 @@ jobs: if: steps.compute_versions.outputs.has_updated_versions == 1 uses: peter-evans/create-pull-request@v5 with: - token: ${{ secrets.PAT }} + token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} author: "Nicolas Vuillamy " commit-message: "[automation] Auto-update linters version, help and documentation" delete-branch: true diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index d48d11c8646..ca6e7d9ce14 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -20,11 +20,17 @@ on: jobs: automerge: runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write if: github.repository == 'oxsecurity/megalinter' steps: - name: automerge env: - GITHUB_TOKEN: "${{ secrets.PAT }}" + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" MERGE_COMMIT_MESSAGE: "pull-request-description" MERGE_FORKS: "false" if: env.GITHUB_TOKEN != null diff --git a/.github/workflows/build-command.yml b/.github/workflows/build-command.yml index 439649cf603..cf29fbf2fec 100644 --- a/.github/workflows/build-command.yml +++ b/.github/workflows/build-command.yml @@ -29,6 +29,12 @@ on: jobs: build-sh: runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write steps: - name: Create URL to the run output id: vars @@ -37,7 +43,7 @@ jobs: uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.repository }} comment-id: ${{ github.event.inputs.comment-id }} issue-number: ${{ github.event.inputs.issue-number }} @@ -60,22 +66,22 @@ jobs: # Checkout the pull request branch - uses: actions/checkout@v3 with: - token: ${{ secrets.PAT }} + token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.checkout-repository }} ref: ${{ github.event.inputs.checkout-ref }} - name: Setup Python uses: actions/setup-python@v4.5.0 with: # Version range or exact version of Python or PyPy to use, using SemVer's version range syntax. Reads from .python-version if unset. - python-version: 3.11.3 # optional + python-version-file: '.python-version' # Read python version from a file .python-version # Used to specify a package manager for caching in the default directory. Supported values: pip, pipenv, poetry. cache: pip # optional - - run: pip install -r requirements.dev.txt + - run: pip install -r .config/python/dev/requirements.txt - name: Create comment starting build.sh uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.repository }} comment-id: ${{ github.event.inputs.comment-id }} issue-number: ${{ github.event.inputs.issue-number }} @@ -93,7 +99,7 @@ jobs: uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.repository }} comment-id: ${{ github.event.inputs.comment-id }} issue-number: ${{ github.event.inputs.issue-number }} @@ -103,7 +109,7 @@ jobs: uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.repository }} comment-id: ${{ github.event.inputs.comment-id }} issue-number: ${{ github.event.inputs.issue-number }} @@ -114,7 +120,7 @@ jobs: uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.inputs.repository }} comment-id: ${{ github.event.inputs.comment-id }} issue-number: ${{ github.event.inputs.issue-number }} diff --git a/.github/workflows/build-deploy-docs.yml b/.github/workflows/build-deploy-docs.yml index a44604283ca..67d5c03a5ce 100644 --- a/.github/workflows/build-deploy-docs.yml +++ b/.github/workflows/build-deploy-docs.yml @@ -19,6 +19,8 @@ jobs: deploy: runs-on: ubuntu-latest + permissions: + contents: write if: github.repository == 'oxsecurity/megalinter' steps: - uses: actions/checkout@v3 @@ -27,7 +29,7 @@ jobs: - uses: actions/setup-python@v4.5.0 with: python-version: 3.10.4 - - run: pip install --upgrade markdown==3.3.7 mike mkdocs-material mkdocs-glightbox==0.3.2 mdx_truly_sane_lists json-schema-for-humans giturlparse webpreview + - run: pip install --upgrade markdown==3.3.7 mike mkdocs-material pymdown-extensions==9.11 mkdocs-glightbox==0.3.2 mdx_truly_sane_lists json-schema-for-humans giturlparse webpreview - run: cd .automation && bash build_schemas_doc.sh && cd .. # - run: mkdocs gh-deploy --force - run: | diff --git a/.github/workflows/deploy-ALPHA-flavors.yml b/.github/workflows/deploy-ALPHA-flavors.yml index a786b45776c..bb8cba75135 100644 --- a/.github/workflows/deploy-ALPHA-flavors.yml +++ b/.github/workflows/deploy-ALPHA-flavors.yml @@ -24,6 +24,7 @@ on: - "flavors/**" - "megalinter/**" - "mega-linter-runner/**" + - "server/**" - "**/linter-versions.json" - "TEMPLATES/**" - ".trivyignore" @@ -43,6 +44,8 @@ jobs: name: Deploy Docker Image - ALPHA - Flavors # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: + packages: write strategy: fail-fast: false max-parallel: 10 @@ -86,12 +89,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: @@ -117,16 +114,33 @@ jobs: secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | - oxsecurity/megalinter-${{ matrix.flavor }}:alpha ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:alpha + - name: Build Worker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-worker + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:alpha + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=alpha + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + ghcr.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:alpha + ############################################## # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@master with: - image-ref: 'docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:alpha' + image-ref: 'ghcr.io/oxsecurity/megalinter-worker-${{ 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 2a9f0ec718b..4d9823ab711 100644 --- a/.github/workflows/deploy-ALPHA.yml +++ b/.github/workflows/deploy-ALPHA.yml @@ -24,6 +24,7 @@ on: - "flavors/**" - "megalinter/**" - "mega-linter-runner/**" + - "server/**" - "**/linter-versions.json" - "TEMPLATES/**" - ".trivyignore" @@ -43,6 +44,8 @@ jobs: name: Deploy Docker Image - ALPHA # Set the agent to run on runs-on: ubuntu-latest + permissions: + packages: write # Only run this on the main repo if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') ################## @@ -58,16 +61,16 @@ jobs: ######################################################## # Publish updated version of mega-linter-runner on NPM # ######################################################## - - uses: actions/setup-node@v3.6.0 + - uses: actions/setup-node@v3.7.0 with: node-version: "18.x" registry-url: "https://registry.npmjs.org" - run: cd mega-linter-runner && yarn install --frozen-lockfile - run: cd mega-linter-runner && ALPHAID=$(date '+%Y%m%d%H%M') && npm version prerelease --preid="alpha$ALPHAID" shell: bash - - run: cd mega-linter-runner && npm publish --tag alpha || echo "mega-linter-runner alpha not published" - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # - run: cd mega-linter-runner && npm publish --tag alpha || echo "mega-linter-runner alpha not published" + # env: + # NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -75,12 +78,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: @@ -91,6 +88,24 @@ jobs: - name: Get current date run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_ENV} + - name: Build & Push Docker Image (Server) + uses: docker/build-push-action@v4 + with: + context: . + file: server/Dockerfile + platforms: linux/amd64 + build-args: | + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=alpha + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + ghcr.io/oxsecurity/megalinter-server:alpha + # ghcr.io/oxsecurity/megalinter-server:alpha-${{ github.sha }} + - name: Build & Push Docker Image uses: docker/build-push-action@v4 with: @@ -106,6 +121,24 @@ jobs: secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | - oxsecurity/megalinter:alpha ghcr.io/oxsecurity/megalinter:alpha + # ghcr.io/oxsecurity/megalinter:alpha-${{ github.sha }} + + - name: Build & Push Worker Docker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-worker + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=ghcr.io/oxsecurity/megalinter:alpha + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=alpha + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + ghcr.io/oxsecurity/megalinter-worker:alpha diff --git a/.github/workflows/deploy-BETA-flavors.yml b/.github/workflows/deploy-BETA-flavors.yml index b928c9a391a..4afbfd3dc27 100644 --- a/.github/workflows/deploy-BETA-flavors.yml +++ b/.github/workflows/deploy-BETA-flavors.yml @@ -44,8 +44,10 @@ jobs: name: Deploy Docker Image - BETA - Flavors # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: + packages: write environment: - name: beta-flavors + name: beta strategy: fail-fast: false max-parallel: 10 @@ -58,6 +60,7 @@ jobs: "cupcake", "documentation", "dotnet", + "dotnetweb", "go", "java", "javascript", @@ -130,13 +133,32 @@ jobs: 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 + - name: Build Worker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-worker + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:beta + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=beta + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + oxsecurity/megalinter-worker-${{ matrix.flavor }}:beta + ghcr.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:beta + ############################################## # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@master with: - image-ref: 'docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:beta' + image-ref: 'docker.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:beta' format: 'table' exit-code: '1' ignore-unfixed: true diff --git a/.github/workflows/deploy-BETA-linters.yml b/.github/workflows/deploy-BETA-linters.yml index abd99e54564..620963d2016 100644 --- a/.github/workflows/deploy-BETA-linters.yml +++ b/.github/workflows/deploy-BETA-linters.yml @@ -61,6 +61,10 @@ jobs: name: Deploy Docker Image - Beta - Linters # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: + packages: write + environment: + name: beta strategy: fail-fast: false max-parallel: 10 @@ -145,10 +149,14 @@ jobs: "repository_dustilock", "repository_git_diff", "repository_gitleaks", + "repository_grype", + "repository_kics", "repository_secretlint", "repository_semgrep", "repository_syft", "repository_trivy", + "repository_trivy_sbom", + "repository_trufflehog", "rst_rst_lint", "rst_rstcheck", "rst_rstfmt", @@ -163,6 +171,7 @@ jobs: "spell_cspell", "spell_proselint", "spell_vale", + "spell_lychee", "sql_sql_lint", "sql_sqlfluff", "sql_tsqllint", @@ -172,7 +181,6 @@ jobs: "terraform_terrascan", "terraform_terragrunt", "terraform_terraform_fmt", - "terraform_kics", "tsx_eslint", "typescript_es", "typescript_standard", @@ -250,7 +258,7 @@ jobs: 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_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -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 + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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 ############################################## diff --git a/.github/workflows/deploy-BETA.yml b/.github/workflows/deploy-BETA.yml index 3854095f578..12e1b4bdf2b 100644 --- a/.github/workflows/deploy-BETA.yml +++ b/.github/workflows/deploy-BETA.yml @@ -43,6 +43,8 @@ jobs: name: Deploy Docker Image - BETA # Set the agent to run on runs-on: ubuntu-latest + permissions: + packages: write # Only run this on the main repo if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') environment: @@ -60,7 +62,7 @@ jobs: ######################################################## # Publish updated version of mega-linter-runner on NPM # ######################################################## - - uses: actions/setup-node@v3.6.0 + - uses: actions/setup-node@v3.7.0 with: node-version: "16.x" registry-url: "https://registry.npmjs.org" @@ -111,6 +113,32 @@ jobs: oxsecurity/megalinter:beta ghcr.io/oxsecurity/megalinter:beta + # 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 + + - name: Build & Push Docker Worker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-worker + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=ghcr.io/oxsecurity/megalinter:beta + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=beta + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + oxsecurity/megalinter-worker:beta + ghcr.io/oxsecurity/megalinter-worker:beta + ############################### # Run tests for code coverage # ############################### @@ -119,16 +147,9 @@ 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_DETAIL=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 + docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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: 60 - # 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 # ############################################## diff --git a/.github/workflows/deploy-DEV-linters.yml b/.github/workflows/deploy-DEV-linters.yml index d35a9f20b2b..a174ad13ae3 100644 --- a/.github/workflows/deploy-DEV-linters.yml +++ b/.github/workflows/deploy-DEV-linters.yml @@ -53,6 +53,7 @@ jobs: needs: prepare # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: read-all strategy: fail-fast: false max-parallel: 10 @@ -137,10 +138,14 @@ jobs: "repository_dustilock", "repository_git_diff", "repository_gitleaks", + "repository_grype", + "repository_kics", "repository_secretlint", "repository_semgrep", "repository_syft", "repository_trivy", + "repository_trivy_sbom", + "repository_trufflehog", "rst_rst_lint", "rst_rstcheck", "rst_rstfmt", @@ -155,6 +160,7 @@ jobs: "spell_cspell", "spell_proselint", "spell_vale", + "spell_lychee", "sql_sql_lint", "sql_sqlfluff", "sql_tsqllint", @@ -164,7 +170,6 @@ jobs: "terraform_terrascan", "terraform_terragrunt", "terraform_terraform_fmt", - "terraform_kics", "tsx_eslint", "typescript_es", "typescript_standard", @@ -232,7 +237,9 @@ jobs: docker buildx build --platform linux/amd64 -f linters/${{ matrix.linter }}/Dockerfile --load --tag oxsecurity/megalinter-only-${{ matrix.linter }}:${{ needs.prepare.outputs.tag }} . - docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -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 }} + docker image ls + + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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 - name: Run Test Cases (linux/arm64) @@ -246,7 +253,9 @@ jobs: docker buildx build --platform linux/arm64 -f linters/${{ matrix.linter }}/Dockerfile --load --tag oxsecurity/megalinter-only-${{ matrix.linter }}:${{ needs.prepare.outputs.tag }}-arm64 . - docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -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 }}-arm64 + docker image ls + + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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 }}-arm64 timeout-minutes: 30 ############################################## diff --git a/.github/workflows/deploy-DEV.yml b/.github/workflows/deploy-DEV.yml index 3eb852408d6..b84d1786f11 100644 --- a/.github/workflows/deploy-DEV.yml +++ b/.github/workflows/deploy-DEV.yml @@ -52,6 +52,7 @@ jobs: name: Tests + Deploy Docker Image - DEV # Set the agent to run on runs-on: ubuntu-latest + permissions: read-all # 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) && !contains(github.event.head_commit.message, 'skip deploy') # Set max build time for the job @@ -98,16 +99,12 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - if: | - ( - (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || - (github.event_name == 'push' && github.repository == 'oxsecurity/megalinter') - ) - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + # 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 ################################### # Build image locally for testing # @@ -125,8 +122,8 @@ jobs: BUILD_REVISION=${{ github.sha }} BUILD_VERSION=${{ steps.image_tag.outputs.tag }} MEGA_LINTER_BASE_IMAGE="oxsecurity/megalinter:beta" - load: false - push: true + load: true + push: false secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | @@ -182,20 +179,13 @@ jobs: BUILD_DATE=${{ env.BUILD_DATE }} BUILD_REVISION=${{ github.sha }} BUILD_VERSION=${{ steps.image_tag.outputs.tag }} - load: false - push: true + load: true + push: false secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | oxsecurity/megalinter:${{ steps.image_tag.outputs.tag }} - # 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 # ##################################### @@ -216,8 +206,8 @@ jobs: TEST_KEYWORDS_TO_USE="" fi fi - - docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -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 }} + docker image ls + docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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: 90 ##################################### @@ -226,7 +216,7 @@ 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 oxsecurity/megalinter:${{ steps.image_tag.outputs.tag }} + 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 GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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 @@ -248,7 +238,7 @@ jobs: # Test mega-linter-runner with newly created image - name: Setup Node if: ${{ steps.docker_build.outcome }} == 'success' && !contains(github.event.head_commit.message, 'quick build') - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v3.7.0 with: node-version: "12" - name: Install NPM dependencies diff --git a/.github/workflows/deploy-RELEASE-flavors.yml b/.github/workflows/deploy-RELEASE-flavors.yml index a5f71d475f0..33330eb4fa1 100644 --- a/.github/workflows/deploy-RELEASE-flavors.yml +++ b/.github/workflows/deploy-RELEASE-flavors.yml @@ -34,8 +34,10 @@ jobs: name: Deploy Docker Image - RELEASE - Flavors # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: + packages: write environment: - name: latest-flavors + name: release strategy: fail-fast: false matrix: @@ -47,6 +49,7 @@ jobs: "cupcake", "documentation", "dotnet", + "dotnetweb", "go", "java", "javascript", @@ -103,13 +106,36 @@ jobs: secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | - docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:v6 + docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:v7 docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:${{ github.event.release.tag_name }} docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:latest - ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:v6 + ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:v7 ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:${{ github.event.release.tag_name }} ghcr.io/oxsecurity/megalinter-${{ matrix.flavor }}:latest + - name: Build Worker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-release + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=docker.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:beta + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=${{ github.event.release.tag_name }} + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + docker.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:v7 + docker.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:${{ github.event.release.tag_name }} + docker.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:latest + ghcr.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:v7 + ghcr.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:${{ github.event.release.tag_name }} + ghcr.io/oxsecurity/megalinter-worker-${{ matrix.flavor }}:latest + ############################################## # Check Docker image security with Trivy # ############################################## diff --git a/.github/workflows/deploy-RELEASE-linters.yml b/.github/workflows/deploy-RELEASE-linters.yml index 8b685419417..7fa8e8a5cea 100644 --- a/.github/workflows/deploy-RELEASE-linters.yml +++ b/.github/workflows/deploy-RELEASE-linters.yml @@ -37,6 +37,10 @@ jobs: name: Deploy Docker Image - Release - Linters # Set the agent to run on runs-on: ${{ matrix.os }} + permissions: + packages: write + environment: + name: release strategy: fail-fast: false max-parallel: 10 @@ -121,10 +125,14 @@ jobs: "repository_dustilock", "repository_git_diff", "repository_gitleaks", + "repository_grype", + "repository_kics", "repository_secretlint", "repository_semgrep", "repository_syft", "repository_trivy", + "repository_trivy_sbom", + "repository_trufflehog", "rst_rst_lint", "rst_rstcheck", "rst_rstfmt", @@ -139,6 +147,7 @@ jobs: "spell_cspell", "spell_proselint", "spell_vale", + "spell_lychee", "sql_sql_lint", "sql_sqlfluff", "sql_tsqllint", @@ -148,7 +157,6 @@ jobs: "terraform_terrascan", "terraform_terragrunt", "terraform_terraform_fmt", - "terraform_kics", "tsx_eslint", "typescript_es", "typescript_standard", @@ -204,10 +212,10 @@ jobs: secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | - docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:v6 + docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:v7 docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:${{ github.event.release.tag_name }} docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:latest - ghcr.io/oxsecurity/megalinter-only-${{ matrix.linter }}:v6 + ghcr.io/oxsecurity/megalinter-only-${{ matrix.linter }}:v7 ghcr.io/oxsecurity/megalinter-only-${{ matrix.linter }}:${{ github.event.release.tag_name }} ghcr.io/oxsecurity/megalinter-only-${{ matrix.linter }}:latest @@ -224,7 +232,7 @@ jobs: 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_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -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 }} + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${{ github.sha }} -e OUTPUT_DETAIL=detailed -e GITHUB_SHA=${{ github.sha }} -e GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -e GITHUB_BRANCH=${GITHUB_BRANCH} -e GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" -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 ############################################## diff --git a/.github/workflows/deploy-RELEASE.yml b/.github/workflows/deploy-RELEASE.yml index 6d175a9f7c2..634bf4b92e9 100644 --- a/.github/workflows/deploy-RELEASE.yml +++ b/.github/workflows/deploy-RELEASE.yml @@ -37,8 +37,10 @@ jobs: runs-on: ubuntu-latest # Only run on main repo if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + permissions: + packages: write environment: - name: latest + name: release ################## # Load all steps # ################## @@ -52,7 +54,7 @@ jobs: ######################################################## # Publish updated version of mega-linter-runner on NPM # ######################################################## - - uses: actions/setup-node@v3.6.0 + - uses: actions/setup-node@v3.7.0 with: node-version: "16.x" registry-url: "https://registry.npmjs.org" @@ -93,17 +95,44 @@ jobs: secrets: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} tags: | - docker.io/oxsecurity/megalinter:v6 + docker.io/oxsecurity/megalinter:v7 docker.io/oxsecurity/megalinter:${{ github.event.release.tag_name }} docker.io/oxsecurity/megalinter:latest - ghcr.io/oxsecurity/megalinter:v6 + ghcr.io/oxsecurity/megalinter:v7 ghcr.io/oxsecurity/megalinter:${{ github.event.release.tag_name }} ghcr.io/oxsecurity/megalinter:latest + - name: Build Worker Image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile-release + platforms: linux/amd64 + build-args: | + MEGALINTER_BASE_IMAGE=docker.io/oxsecurity/megalinter-worker:beta + BUILD_DATE=${{ env.BUILD_DATE }} + BUILD_REVISION=${{ github.sha }} + BUILD_VERSION=${{ github.event.release.tag_name }} + load: false + push: true + secrets: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + tags: | + docker.io/oxsecurity/megalinter-worker:v7 + docker.io/oxsecurity/megalinter-worker:${{ github.event.release.tag_name }} + docker.io/oxsecurity/megalinter-worker:latest + ghcr.io/oxsecurity/megalinter-worker:v7 + ghcr.io/oxsecurity/megalinter-worker:${{ github.event.release.tag_name }} + ghcr.io/oxsecurity/megalinter-worker:latest + deploy_doc: runs-on: ubuntu-latest needs: build if: github.repository == 'oxsecurity/megalinter' + permissions: + contents: write + environment: + name: release steps: - uses: actions/checkout@v3 with: @@ -126,7 +155,7 @@ jobs: - uses: actions/setup-python@v4.5.0 with: python-version: 3.x - - run: pip install --upgrade markdown==3.3.7 mike mkdocs-material mkdocs-glightbox==0.3.2 mdx_truly_sane_lists json-schema-for-humans giturlparse webpreview + - run: pip install --upgrade markdown==3.3.7 mike mkdocs-material pymdown-extensions==9.11 mkdocs-glightbox==0.3.2 mdx_truly_sane_lists json-schema-for-humans giturlparse webpreview - run: cd .automation && bash build_schemas_doc.sh && cd .. # - run: mkdocs gh-deploy --force - run: | @@ -146,6 +175,6 @@ jobs: - name: Mike deploy current version run: | mike delete latest - mike delete v6 || true - mike deploy v6 || true + mike delete v7 || true + mike deploy v7 || true mike deploy --push latest ${{ steps.version.outputs.cversion }} diff --git a/.github/workflows/gitpod.yml b/.github/workflows/gitpod.yml new file mode 100644 index 00000000000..59ef5459380 --- /dev/null +++ b/.github/workflows/gitpod.yml @@ -0,0 +1,36 @@ +--- +name: "Gitpod" + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Set TERM environment variable + run: echo "TERM=xterm" >> $GITHUB_ENV + + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version-file: '.python-version' # Read python version from a file .python-version + + - name: Install dependencies + run: make bootstrap + + - name: Run Gitpod tests + uses: nick-invision/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 10 + command: make gitpod-tests diff --git a/.github/workflows/help-command.yml b/.github/workflows/help-command.yml index 2b320460d23..ea6e9f50411 100644 --- a/.github/workflows/help-command.yml +++ b/.github/workflows/help-command.yml @@ -23,12 +23,13 @@ on: jobs: help: runs-on: ubuntu-latest + permissions: read-all steps: - name: Update comment uses: peter-evans/create-or-update-comment@v3 with: ## Use token if we want to use a PAT instead of GITHUB_TOKEN, GITHUB_TOKEN acts as github-actions[bot] - # token: ${{ secrets.PAT }} + # token: ${{ secrets.GITHUB_TOKEN }} ## These are if we want to use repository_dispatch (default) # repository: ${{ github.event.client_payload.github.payload.repository.full_name }} # comment-id: ${{ github.event.client_payload.github.payload.comment.id }} diff --git a/.github/workflows/mega-linter-for-runner.yml b/.github/workflows/mega-linter-for-runner.yml index 8cc4c4da6d0..49600e2fec6 100644 --- a/.github/workflows/mega-linter-for-runner.yml +++ b/.github/workflows/mega-linter-for-runner.yml @@ -24,6 +24,14 @@ jobs: build: name: MegaLinter runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write + environment: + name: dev steps: - name: Checkout Code uses: actions/checkout@v3 @@ -44,7 +52,6 @@ jobs: 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 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PAT: ${{ secrets.PAT }} # Upload MegaLinter artifacts - name: Archive production artifacts diff --git a/.github/workflows/mega-linter.yml b/.github/workflows/mega-linter.yml index 552e7c547c3..1555efd4ae2 100644 --- a/.github/workflows/mega-linter.yml +++ b/.github/workflows/mega-linter.yml @@ -24,6 +24,14 @@ jobs: build: name: MegaLinter runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write + environment: + name: dev steps: - name: Checkout Code uses: actions/checkout@v3 @@ -43,7 +51,6 @@ jobs: # 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 }} - PAT: ${{ secrets.PAT }} EMAIL_REPORTER_SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }} # Upload MegaLinter artifacts diff --git a/.github/workflows/slash-command-dispatch.yml b/.github/workflows/slash-command-dispatch.yml index 45a2ac14a45..c3535999349 100644 --- a/.github/workflows/slash-command-dispatch.yml +++ b/.github/workflows/slash-command-dispatch.yml @@ -5,6 +5,12 @@ on: jobs: slashCommandDispatch: runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write steps: - name: Dump the event payload context env: @@ -37,7 +43,7 @@ jobs: id: scd if: success() with: - token: ${{ secrets.PAT }} + token: ${{ secrets.GITHUB_TOKEN }} commands: | build help diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 32df27d9c84..711a24eeabb 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,8 +9,10 @@ on: schedule: # every day at 0:00 UTC - cron: "0 0 * * *" - issue_comment: - types: [created, deleted, edited] +permissions: + #contents: write # only for delete-branch option + issues: write + pull-requests: write ############### # Run the job # diff --git a/.github/workflows/test-mega-linter-runner.yml b/.github/workflows/test-mega-linter-runner.yml index afdbf9567c7..3e244ab0017 100644 --- a/.github/workflows/test-mega-linter-runner.yml +++ b/.github/workflows/test-mega-linter-runner.yml @@ -35,7 +35,7 @@ jobs: - name: Checkout Code uses: actions/checkout@v3 - name: Setup Node - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v3.7.0 with: node-version: "12" - name: Install dependencies diff --git a/.github/workflows/versioning.yml b/.github/workflows/versioning.yml index 1eaf45e2e93..6b1c8ea970b 100644 --- a/.github/workflows/versioning.yml +++ b/.github/workflows/versioning.yml @@ -28,6 +28,10 @@ on: jobs: actions-tagger: runs-on: windows-latest + environment: + name: release + permissions: + contents: write steps: ############################# # Check out the latest code # diff --git a/.gitignore b/.gitignore index 93a81489d87..dbe40cc3ee4 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,11 @@ obj/ run_local_linter.sh +# lychee cache +.lycheecache +**/dump.rdb + +server/server-files/ + +.venv +*megalinter_file_names_cspell.txt diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000000..defac2436e1 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,8 @@ +--- +image: + file: .config/gitpod/Dockerfile + +tasks: + - init: | + make bootstrap + source .venv/bin/activate diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 00000000000..99e3f30d799 --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,25 @@ +# These links are ignored by lychee link checker: https://github.com/lycheeverse/lychee +# The file allows you to list multiple regular expressions for exclusion (one pattern per line). +# The `.lycheeignore` file is only used for excluding URLs, not paths. Use the `exclude_path` key in the `lychee.toml` file. ref: https://github.com/lycheeverse/lycheeverse.github.io/blob/master/recipes/excluding-paths.md + +my-company.com +https://megalinter.io/ +https://megalinter.io/flavors/ +https://megalinter.io/configuration/ +https://www.linkedin.com/ +https://twitter.com +https://twitter.com/intent/tweet +https://fonts.gstatic.com +https://img.shields.io +http://mozilla.org/MPL/2.0/ +https://github.com/sider/goodcheck +https://api.github.com/repos/powershell/powershell/releases +https://storage.googleapis.com/dart-archive/channels/stable/release +https://stylelint.io/user-guide/integrations/other#analysis-platform-engines +https://raw.githubusercontent.com/some_org/some_repo/mega-linter-rules +https://raw.githubusercontent.com/cookiejar/megalinter-plugin-cookiejar/main/cookietemplate.mega-linter-descriptor.yml +https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/security.ico +https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/swift.ico +https://stylelint.io/user-guide/integrations/other#analysis-platform-engines +https://github.com/pmd/pmd/releases/download/pmd_releases +https://twitter.com/intent/tweet* diff --git a/.mega-linter.yml b/.mega-linter.yml index 408b7787279..7e4c00dadd0 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -16,23 +16,27 @@ DISABLE: DISABLE_LINTERS: - JSON_PRETTIER - REPOSITORY_GITLEAKS + - REPOSITORY_KICS - SPELL_PROSELINT + - SPELL_MISSPELL + - SPELL_VALE + - REPOSITORY_TRUFFLEHOG DISABLE_ERRORS_LINTERS: - PYTHON_BANDIT - PYTHON_PYRIGHT - REPOSITORY_DEVSKIM + - REPOSITORY_GRYPE - REPOSITORY_SEMGREP - SPELL_VALE PRINT_ALL_FILES: false -FILTER_REGEX_EXCLUDE: '(\.automation/test|\.automation/generated|\.github/workflows|docs/javascripts|docs/overrides|docs/json-schemas|flavors|clj-kondo|TEMPLATES)' +FILTER_REGEX_EXCLUDE: '(\.automation/test|\.automation/generated|\.venv|\.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)' YAML_PRETTIER_FILTER_REGEX_EXCLUDE: '(templates/\.mega-linter\.yml|mkdocs\.yml)' YAML_V8R_FILTER_REGEX_EXCLUDE: '(descriptors|templates/\.mega-linter\.yml|\.codecov\.yml)' BASH_FILTER_REGEX_EXCLUDE: "(lib)" -MARKDOWN_FILTER_REGEX_EXCLUDE: '(license\.md)' +MARKDOWN_FILTER_REGEX_EXCLUDE: '(license\.md|docs/licenses)' MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true -SPELL_MISSPELL_FILTER_REGEX_EXCLUDE: '(\.automation/generated|docs/descriptors|used-by-stats|docs/used-by-stats\.md)' SPELL_VALE_FILE_EXTENSIONS: - .md SPELL_FILTER_REGEX_EXCLUDE: (valestyles|\.github|docs/licenses) @@ -40,6 +44,8 @@ DOCKERFILE_HADOLINT_ARGUMENTS: "--ignore DL3003 --ignore DL3007 --ignore DL3013 REPOSITORY_TRIVY_ARGUMENTS: - "--skip-dirs" - ".automation/test" + - "--skip-dirs" + - ".venv" SHOW_ELAPSED_TIME: true FLAVOR_SUGGESTIONS: false EMAIL_REPORTER: false diff --git a/.python-version b/.python-version new file mode 100644 index 00000000000..0c7d5f5f5d7 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11.4 diff --git a/.trivyignore b/.trivyignore index 301fa2b1e0e..1a3c645c168 100644 --- a/.trivyignore +++ b/.trivyignore @@ -118,6 +118,7 @@ CVE-2022-25315 CVE-2022-25647 CVE-2022-25857 CVE-2022-25881 +CVE-2022-25883 CVE-2022-26945 CVE-2022-27191 CVE-2022-27664 @@ -158,10 +159,23 @@ CVE-2022-43680 CVE-2022-46175 CVE-2023-0286 CVE-2023-0842 +CVE-2023-2253 +CVE-2023-2650 +CVE-2023-26115 CVE-2023-28840 +CVE-2023-2976 CVE-2023-29017 CVE-2023-29199 +CVE-2023-29331 +CVE-2023-29337 +CVE-2023-29491 CVE-2023-30547 +CVE-2023-30551 +CVE-2023-32309 +CVE-2023-32314 +CVE-2023-33170 +CVE-2023-34104 +CVE-2023-36665 DS001 DS002 DS003 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9382f91d295..02ccdc9c01b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,209 +9,377 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-linter.yml file, or with `oxsecurity/megalinter:beta` docker image - New linters - - [#2115](https://github.com/oxsecurity/megalinter/pull/2115) Add cljstyle to Clojure linters - - [Vale](https://vale.sh/), a powerful enforcer of writing style + - Add [Lychee](https://github.com/lycheeverse/lychee) - links and email addresses checker, by @DariuszPorowski in [#2673](https://github.com/oxsecurity/megalinter/pull/2673) + - Add [grype](https://github.com/anchore/grype) security linter -- Medias - - Article: [Use the Workflows JSON schema in your IDE](https://cloud.google.com/workflows/docs/use-workflows-json-schema-with-ide), by [Google Cloud](https://cloud.google.com/) - - Video: [Ortelius Architecture Meeting](https://www.youtube.com/watch?v=oegOSmVegiQ&t=1510s), with a review of MegaLinter, by [Steve Taylor](https://github.com/sbtaylor15) from [Ortelius](https://ortelius.io/) - - Web site: [my-devops-lab.com](https://www.my-devops-lab.com/tools) +- New flavor **dotnetweb**: dotnet flavor linters + Javascript & Typescript linters -- Linter enhancements & fixes - - Gitleaks: add support to scan PR commits only on PRs when `VALIDATE_ALL_CODEBASE` is set to `false`, by @DariuszPorowski [#2504](https://github.com/oxsecurity/megalinter/pull/2504) - - Ensure ESLint actually runs in project mode rather than silently doing nothing, by @Kurt-von-Laven [#2455](https://github.com/oxsecurity/megalinter/pull/2455). - - Prevent jscpd to create output folder if the repo isn't writable. Fixes [#2108](https://github.com/oxsecurity/megalinter/issues/2108) - - Fix corrective .cspell.json file generated from cspell output - - Deprecate misspell, as it is not maintained since 2018 - - Jscpd: Do not output HTML reports if REPORT_OUTPUT_FOLDER is none - - kubeconform: Simplify installation and get latest version +- Media + - [8 Tools to Scan Node.js Applications for Security Vulnerability](https://geekflare.com/nodejs-security-scanner/), by [Chandan Kumar](https://www.linkedin.com/in/chandank){target=_blank} on [GeekFlare.com](https://geekflare.com/) + +- Fixes + - Handle reporter crashes without making all ML crash + - Devskim: Remove default --ignore-globs argument + - mypy: USe /tmp as cache folder by default with ENV MYPY_CACHE_DIR=/tmp in Dockerfile + - Fix `hadolint` to use its default configuration file properly. + - Remove linters not in flavor before calling reporters - Reporters - - Enhancements and fixes on Gitlab Comment Reporter - - New var GITLAB_COMMENT_REPORTER_OVERWRITE_COMMENT to allow to disable the overwrite of existing MegaLinter comment in case of new run - - In case of overwrite activated (by default), fetch all Merge Request comments, not the first 20. - - Display a different message in log when a Merge Request comment is created or updated. + - New Redis reporter (alpha) + +- Linter versions upgrades + - [checkov](https://www.checkov.io/) from 2.3.285 to **2.3.287** on 2023-06-12 + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.26.0 to **7.28.1** on 2023-06-12 + - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.17.1 to **0.18.4** on 2023-06-13 + - [djlint](https://djlint.com/) from 1.30.2 to **1.31.0** on 2023-06-13 + - [rubocop](https://rubocop.org/) from 1.52.0 to **1.52.1** on 2023-06-13 + - [actionlint](https://rhysd.github.io/actionlint/) from 1.6.24 to **1.6.25** on 2023-06-17 + - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.7 to **0.77.9** on 2023-06-17 + - [dotnet-format](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format) from 6.0.408 to **6.0.410** on 2023-06-17 + - [golangci-lint](https://golangci-lint.run/) from 1.53.2 to **1.53.3** on 2023-06-17 + - [eslint](https://eslint.org) from 8.42.0 to **8.43.0** on 2023-06-17 + - [eslint-plugin-jsonc](https://ota-meshi.github.io/eslint-plugin-jsonc/) from 2.8.0 to **2.9.0** on 2023-06-17 + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.5 to **2.3.6** on 2023-06-17 + - [phpstan](https://phpstan.org/) from 1.10.18 to **1.10.19** on 2023-06-17 + - [protolint](https://github.com/yoheimuta/protolint) from 0.44.0 to **0.45.0** on 2023-06-17 + - [pyright](https://github.com/Microsoft/pyright) from 1.1.313 to **1.1.314** on 2023-06-17 + - [checkov](https://www.checkov.io/) from 2.3.287 to **2.3.294** on 2023-06-17 + - [semgrep](https://semgrep.dev/) from 1.26.0 to **1.27.0** on 2023-06-17 + - [syft](https://github.com/anchore/syft) from 0.83.0 to **0.83.1** on 2023-06-17 + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.28.1 to **7.28.3** on 2023-06-17 + - [terraform-fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) from 1.4.6 to **1.5.0** on 2023-06-17 + - [terragrunt](https://terragrunt.gruntwork.io) from 0.46.3 to **0.47.0** on 2023-06-17 + - [shfmt](https://github.com/mvdan/sh) from 3.6.0 to **3.7.0** on 2023-06-21 + - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.9 to **0.77.10** on 2023-06-21 + - [stylelint](https://stylelint.io) from 15.7.0 to **15.8.0** on 2023-06-21 + - [markdownlint](https://github.com/DavidAnson/markdownlint) from 0.34.0 to **0.35.0** on 2023-06-21 + - [phpstan](https://phpstan.org/) from 1.10.19 to **1.10.20** on 2023-06-21 + - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.3.0 to **1.4.0** on 2023-06-21 + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.272 to **0.0.274** on 2023-06-21 + - [checkov](https://www.checkov.io/) from 2.3.294 to **2.3.296** on 2023-06-21 + - [devskim](https://github.com/microsoft/DevSkim) from 0.7.104 to **1.0.8** on 2023-06-21 + - [gitleaks](https://github.com/gitleaks/gitleaks) from 8.16.4 to **8.17.0** on 2023-06-21 + - [syft](https://github.com/anchore/syft) from 0.83.1 to **0.84.0** on 2023-06-21 + - [dotnet-format](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format) from 6.0.410 to **6.0.411** on 2023-06-23 + - [phpstan](https://phpstan.org/) from 1.10.20 to **1.10.21** on 2023-06-23 + - [pyright](https://github.com/Microsoft/pyright) from 1.1.314 to **1.1.315** on 2023-06-23 + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.274 to **0.0.275** on 2023-06-23 + - [checkov](https://www.checkov.io/) from 2.3.296 to **2.3.301** on 2023-06-23 + - [kics](https://www.kics.io) from 1.7.1 to **1.7.2** on 2023-06-23 + - [semgrep](https://semgrep.dev/) from 1.27.0 to **1.28.0** on 2023-06-23 + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.28.3 to **7.29.0** on 2023-06-23 + - [terraform-fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) from 1.5.0 to **1.5.1** on 2023-06-23 + - [stylelint](https://stylelint.io) from 15.8.0 to **15.9.0** on 2023-06-24 + - [rubocop](https://rubocop.org/) from 1.52.1 to **1.53.0** on 2023-06-24 + - [swiftlint](https://github.com/realm/SwiftLint) from 0.52.2 to **0.52.3** on 2023-06-25 + - [csharpier](https://csharpier.com/) from 0.24.2 to **0.25.0** on 2023-07-02 + - [djlint](https://djlint.com/) from 1.31.0 to **1.31.1** on 2023-07-02 + - [checkstyle](https://checkstyle.sourceforge.io) from 10.12.0 to **10.12.1** on 2023-07-02 + - [eslint](https://eslint.org) from 8.43.0 to **8.44.0** on 2023-07-02 + - [ktlint](https://ktlint.github.io) from 0.49.1 to **0.50.0** on 2023-07-02 + - [phpstan](https://phpstan.org/) from 1.10.21 to **1.10.22** on 2023-07-02 + - [psalm](https://psalm.dev) from Psalm.5.12.0@ to **Psalm.5.13.1@** on 2023-07-02 + - [powershell_formatter](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.4 to **7.3.5** on 2023-07-02 + - [powershell](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.4 to **7.3.5** on 2023-07-02 + - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.4.0 to **1.4.1** on 2023-07-02 + - [pyright](https://github.com/Microsoft/pyright) from 1.1.315 to **1.1.316** on 2023-07-02 + - [checkov](https://www.checkov.io/) from 2.3.301 to **2.3.309** on 2023-07-02 + - [devskim](https://github.com/microsoft/DevSkim) from 1.0.8 to **1.0.11** on 2023-07-02 + - [secretlint](https://github.com/secretlint/secretlint) from 6.2.3 to **6.2.4** on 2023-07-02 + - [semgrep](https://semgrep.dev/) from 1.28.0 to **1.30.0** on 2023-07-02 + - [syft](https://github.com/anchore/syft) from 0.84.0 to **0.84.1** on 2023-07-02 + - [trivy](https://aquasecurity.github.io/trivy/) from 0.42.1 to **0.43.0** on 2023-07-02 + - [rubocop](https://rubocop.org/) from 1.53.0 to **1.54.0** on 2023-07-02 + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.29.0 to **7.30.1** on 2023-07-02 + - [terraform-fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) from 1.5.1 to **1.5.2** on 2023-07-02 + - [terragrunt](https://terragrunt.gruntwork.io) from 0.47.0 to **0.48.0** on 2023-07-02 + - [stylelint](https://stylelint.io) from 15.9.0 to **15.10.0** on 2023-07-05 + - [npm-package-json-lint](https://npmpackagejsonlint.org/) from 6.4.0 to **7.0.0** on 2023-07-05 + - [phpstan](https://phpstan.org/) from 1.10.22 to **1.10.23** on 2023-07-05 + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.275 to **0.0.277** on 2023-07-05 + - [checkov](https://www.checkov.io/) from 2.3.309 to **2.3.311** on 2023-07-05 + - [kics](https://www.kics.io) from 1.7.2 to **1.7.3** on 2023-07-05 + - [secretlint](https://github.com/secretlint/secretlint) from 6.2.4 to **7.0.2** on 2023-07-05 + - [rubocop](https://rubocop.org/) from 1.54.0 to **1.54.1** on 2023-07-05 + - [vale](https://vale.sh/) from 2.27.0 to **2.28.0** on 2023-07-05 + - [sqlfluff](https://www.sqlfluff.com/) from 2.1.1 to **2.1.2** on 2023-07-05 + - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.16.2 to **6.17.2** on 2023-07-05 + - [prettier](https://prettier.io/) from 2.8.8 to **3.0.0** on 2023-07-06 + - [phpstan](https://phpstan.org/) from 1.10.23 to **1.10.24** on 2023-07-06 + - [checkov](https://www.checkov.io/) from 2.3.311 to **2.3.312** on 2023-07-06 + - [stylelint](https://stylelint.io) from 15.10.0 to **15.10.1** on 2023-07-07 + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.6 to **2.3.7** on 2023-07-07 + - [phpstan](https://phpstan.org/) from 1.10.24 to **1.10.25** on 2023-07-07 + - [checkov](https://www.checkov.io/) from 2.3.312 to **2.3.314** on 2023-07-07 + - [sfdx-scanner-apex](https://forcedotcom.github.io/sfdx-scanner/) from 3.13.0 to **3.14.0** on 2023-07-07 + - [sfdx-scanner-aura](https://forcedotcom.github.io/sfdx-scanner/) from 3.13.0 to **3.14.0** on 2023-07-07 + - [sfdx-scanner-lwc](https://forcedotcom.github.io/sfdx-scanner/) from 3.13.0 to **3.14.0** on 2023-07-07 + - [terragrunt](https://terragrunt.gruntwork.io) from 0.48.0 to **0.48.1** on 2023-07-07 + - [secretlint](https://github.com/secretlint/secretlint) from 7.0.2 to **7.0.3** on 2023-07-09 + - [semgrep](https://semgrep.dev/) from 1.30.0 to **1.31.2** on 2023-07-09 + - [trivy](https://aquasecurity.github.io/trivy/) from 0.43.0 to **0.43.1** on 2023-07-09 + - [swiftlint](https://github.com/realm/SwiftLint) from 0.52.3 to **0.52.4** on 2023-07-09 + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.7 to **2.3.6** on 2023-07-10 + - [checkov](https://www.checkov.io/) from 2.3.314 to **2.3.316** on 2023-07-10 + - [tflint](https://github.com/terraform-linters/tflint) from 0.46.1 to **0.47.0** on 2023-07-10 + - [black](https://black.readthedocs.io/en/stable/) from 23.3.0 to **23.7.0** on 2023-07-11 + - [checkov](https://www.checkov.io/) from 2.3.316 to **2.3.318** on 2023-07-11 + - [dotnet-format](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format) from 6.0.411 to **6.0.412** on 2023-07-11 + - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.10 to **0.78.1** on 2023-07-13 + - [pyright](https://github.com/Microsoft/pyright) from 1.1.316 to **1.1.317** on 2023-07-13 + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.277 to **0.0.278** on 2023-07-13 + - [checkov](https://www.checkov.io/) from 2.3.318 to **2.3.320** on 2023-07-13 + - [syft](https://github.com/anchore/syft) from 0.84.1 to **0.85.0** on 2023-07-13 + - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.18.4 to **0.19.5** on 2023-07-14 + - [clj-kondo](https://github.com/borkdude/clj-kondo) from 2023.05.26 to **2023.07.13** on 2023-07-14 + - [powershell_formatter](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.5 to **7.3.6** on 2023-07-14 + - [powershell](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.5 to **7.3.6** on 2023-07-14 + - [checkov](https://www.checkov.io/) from 2.3.320 to **2.3.324** on 2023-07-14 + - [grype](https://github.com/anchore/grype) from 0.63.1 to **0.64.0** on 2023-07-14 + - [semgrep](https://semgrep.dev/) from 1.31.2 to **1.32.0** on 2023-07-14 + - [rubocop](https://rubocop.org/) from 1.54.1 to **1.54.2** on 2023-07-14 + - [clippy](https://github.com/rust-lang/rust-clippy) from 0.1.70 to **0.1.71** on 2023-07-14 + - [terraform-fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) from 1.5.2 to **1.5.3** on 2023-07-14 + - [grype](https://github.com/anchore/grype) from 0.64.0 to **0.63.1** on 2023-07-14 + - [eslint](https://eslint.org) from 8.44.0 to **8.45.0** on 2023-07-14 + - [kubeconform](https://github.com/yannh/kubeconform) from 0.6.2 to **0.6.3** on 2023-07-17 + - [checkov](https://www.checkov.io/) from 2.3.324 to **2.3.326** on 2023-07-17 + - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 6.31.1 to **6.31.2** on 2023-07-17 + + +## [v7.1.0] - 2023-06-11 + +- Core + - Upgrade base image to **python:3.11.4-alpine3.17**, by @nvuillam in + +- Linter enhancements & fixes + - cljstyle: Remove default value for configuration file name, by @nvuillam in + - golangci-lint : Add autofix capability using **--fix** argument, by @seaneagan in + +- Linter versions upgrades + - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.5 to **0.77.7** + - [checkov](https://www.checkov.io/) from 2.3.267 to **2.3.285** + - [clippy](https://github.com/rust-lang/rust-clippy) from 0.1.69 to **0.1.70** + - [clj-kondo](https://github.com/borkdude/clj-kondo) from 2023.05.18 to **2023.05.26** + - [djlint](https://djlint.com/) from 1.30.0 to **1.30.2** + - [eslint](https://eslint.org) from 8.41.0 to **8.42.0** + - [gitleaks](https://github.com/gitleaks/gitleaks) from 8.16.3 to **8.16.4** + - [golangci-lint](https://golangci-lint.run/) from 1.52.2 to **1.53.2** + - [kubeconform](https://github.com/yannh/kubeconform) from 0.6.1 to **0.6.2** + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.4 to **2.3.5** + - [luacheck](https://luacheck.readthedocs.io) from 1.1.0 to **1.1.1** + - [markdownlint](https://github.com/DavidAnson/markdownlint) from 0.33.0 to **0.34.0** + - [phpstan](https://phpstan.org/) from 1.10.15 to **1.10.18** + - [pyright](https://github.com/Microsoft/pyright) from 1.1.311 to **1.1.313** + - [rubocop](https://rubocop.org/) from 1.51.0 to **1.52.0** + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.270 to **0.0.272** + - [scalafix](https://scalacenter.github.io/scalafix/) from 0.10.4 to **0.11.0** + - [semgrep](https://semgrep.dev/) from 1.24.0 to **1.26.0** + - [sfdx-scanner-apex](https://forcedotcom.github.io/sfdx-scanner/) from 3.12.0 to **3.13.0** + - [sfdx-scanner-aura](https://forcedotcom.github.io/sfdx-scanner/) from 3.12.0 to **3.13.0** + - [sfdx-scanner-lwc](https://forcedotcom.github.io/sfdx-scanner/) from 3.12.0 to **3.13.0** + - [stylelint](https://stylelint.io) from 15.6.2 to **15.7.0** + - [syft](https://github.com/anchore/syft) from 0.82.0 to **0.83.0** + - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.17 to **0.46.3** + - [trivy](https://aquasecurity.github.io/trivy/) from 0.41.0 to **0.42.1** + +## [v7.0.4] - 2023-05-31 + +- Core + - Allow to define `linterkey_UNSECURED_ENV_VARIABLES` for specific linters to make them visible when necessary (ex: GITHUB_TOKEN for TERRAFORM_TFLINT) + +- Documentation + - Add note to terraform_tflint about TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES by @ruzickap in + +- Linter versions upgrades + - [checkov](https://www.checkov.io/) from 2.3.261 to **2.3.267** + - [djlint](https://djlint.com/) from 1.29.0 to **1.30.0** + - [pyright](https://github.com/Microsoft/pyright) from 1.1.310 to **1.1.311** + - [semgrep](https://semgrep.dev/) from 1.23.0 to **1.24.0** + - [standard](https://standardjs.com/) from 17.0.0 to **17.1.0** + - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.16 to **0.45.17** + +## [v7.0.3] - 2023-05-29 + +- Linter enhancements & fixes + - New variable **TERRAFORM_TFLINT_SECURED_ENV** with default value `true`. Set to `false` to allow `tflint --init` to access your env vars. + +- Core + - Secure PRE_COMMANDS and POST_COMMANDS by default + - Can be disabled with **secured_env: false** in the command definition + - Manage v6 retrocompatibility with FILTER_REGEX_INCLUDE and FILTER_REGEX_EXCLUDE expression + +- Linter versions upgrades + - [checkstyle](https://checkstyle.sourceforge.io) from 10.11.0 to **10.12.0** + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.3 to **2.3.4** + - [checkov](https://www.checkov.io/) from 2.3.259 to **2.3.261** + +## [v7.0.2] - 2023-05-27 + +- Quick Fix mega-linter-runner --upgrade (Warning: bug with npm, not publish yet in mega-linter-runner) + - Dead link to configuration.md + - Regex issue with megalinter-reports + +## [v7.0.0] - 2023-05-27 + +To upgrade to MegaLinter v7, run `npx mega-linter-runner@latest --upgrade` , comment [here](https://github.com/oxsecurity/megalinter/issues/2692) if you have any issue :) + +- MAJOR Updates + - [SECURED_ENV_VARIABLES](https://megalinter.io/latest/config-variables-security/) & core scoped configuration by @nvuillam in + - New configuration variables **SECURED_ENV_VARIABLES** and SECURED_ENV_VARIABLES_DEFAULT to hide your environment sensitive variables to the linters called by MegaLinter + - Read [documentation](https://megalinter.io/latest/config-variables-security/) to enhance security using MegaLinter + - Use **relative file paths** to call linters by @nvuillam in + - This can be a breaking change for customizations, post an issue if you see a problem ! + +- New linters + - Add linter [cljstyle](https://github.com/greglook/cljstyle), Clojure formatter, by @practicalli-john in + - Add [kubescape](https://github.com/kubescape/kubescape), kubernetes linter, by @muandane in + - Add [Vale](https://vale.sh/), a powerful enforcer of writing style, by @wesley-dean-flexion in - Removed linters - KUBERNETES_KUBEVAL: Not maintained anymore (kubeconform recommended by the authors) - REPOSITORY_GOODCHECK: Not open-source anymore - - SPELL_MISSPELL: Not maintained anymore (last commit 2018) + - SPELL_MISSPELL: Not maintained anymore (last commit in 2018) - TERRAFORM_CHECKOV: Replaced by REPOSITORY_CHECKOV + - TERRAFORM_KICS: Replaced by REPOSITORY_KICS + +- Medias + - Article: [Use the Workflows JSON schema in your IDE](https://cloud.google.com/workflows/docs/use-workflows-json-schema-with-ide), by [Google Cloud](https://cloud.google.com/) + - Video: [Ortelius Architecture Meeting](https://www.youtube.com/watch?v=oegOSmVegiQ&t=1510s), with a review of MegaLinter, by [Steve Taylor](https://github.com/sbtaylor15) from [Ortelius](https://ortelius.io/) + - Web site: [my-devops-lab.com](https://www.my-devops-lab.com/tools) + +- Linter enhancements & fixes + - [cspell](https://megalinter.io/latest/descriptors/spell_cspell/) + - Fix corrective .cspell.json file generated from cspell output by @nvuillam in + - [eslint](https://megalinter.io/latest/descriptors/javascript_eslint/) + - Ensure ESLint actually runs in project mode (#1572) by @Kurt-von-Laven in + - [jscpd](https://megalinter.io/latest/descriptors/copypaste_jscpd/) + - Prevent jscpd to create output folder if the repo is not writable by @nvuillam in + - [Gitleaks](https://megalinter.io/latest/descriptors/repository_gitleaks/) + - Add support to scan PR commits only on PRs when `VALIDATE_ALL_CODEBASE` is set to `false`, by @DariuszPorowski [#2504](https://github.com/oxsecurity/megalinter/pull/2504) + - [KICS](https://megalinter.io/latest/descriptors/repository_kics/) + - Move KICS to REPOSITORY descriptor, so it can analyze all types of files, not terraform only, by @nvuillam in + - KICS can now output SARIF + - The new version can have performance issues: customize of disable REPOSITORY_KICS if necessary + - [KubeConform](https://megalinter.io/latest/descriptors/kubernetes_kubeconform/) + - Simplify kubeconform install & get version by @nvuillam in + - [PHPLint](https://megalinter.io/latest/descriptors/php_phplint/) + - Upgrade PHPLint to v9 by @bdovaz in + - [sqlfluff](https://megalinter.io/latest/descriptors/sql_sqlfluff/) + - Remove old options from SQLFluff config file by @tunetheweb in + - [v8r](https://megalinter.io/latest/descriptors/json_v8r/) + - Allow use of configuration files with v8r by @bdovaz in - Core - - Use relative file paths to call linters ([#1875](https://github.com/oxsecurity/megalinter/issues/1875)) - - Refactor internal configuration management to scope config to a request identifier - - New configuration variables **SECURED_ENV_VARIABLES** and SECURED_ENV_VARIABLES_DEFAULT to hide some env vars from environment used when calling linters (not recommended to override SECURED_ENV_VARIABLES_DEFAULT) + - Upgrade base Docker image to python:3.11.3-alpine3.17 by @nvuillam in + - Allow simultaneous regex filtering at descriptor and linter levels by @nvuillam & @seaneagan in + - Allow MEGALINTER_CONFIG to contain a full path to a MegaLinter config file by @nvuillam in + - Fix issue preventing plugins to work with flavors by @nvuillam in + - Fix crash in case of unreachable symlinks by @nvuillam in + - mega-linter-runner: Use --platform also for docker run by @nvuillam , @Kurt-Von-Laven & @cam-barts in - Replace deprecated distutils.copy_tree by shutil.copytree - - Add support for idea plugins autoinstall - - Upgrade base Docker image to python:3.11.3-alpine3.17 - - Fix issue preventing plugins to work with flavors - - Upgrade create-pull-request and create-or-update-comment GitHub Actions - - Increase auto-update-linters GitHub Action timeout - - Fix `/build` slash command to checkout the correct branch when called from PR, by @echoix in - - Fix crash in case of unreachable symlinks - - Fix local run of python test cases - - Fix mkdocs documentation generation by downgrading mkdocs-glightbox to 0.3.2 - - mega-linter-runner v7 upgrader + +- Reporters + - [SARIF_REPORTER](https://megalinter.io/latest/reporters/SarifReporter/) + - Add option to skip def_ws prefix in sarif reports by @janderssonse in + - update schema to pass official SARIF validator by @DariuszPorowski in + - [CONFIG_REPORTER](https://megalinter.io/latest/reporters/ConfigReporter/) + - Add support for idea plugins auto-install by @waterfoul in + - [CONSOLE_REPORTER](https://megalinter.io/latest/reporters/ConsoleReporter/) + - Updated cases in console/log output to use ⚠ `Warning Sign (U+26A0)` instead of ◬ `White Up-Pointing Triangle with Dot (U+25EC)`, by @Doommius + - [GITLAB_COMMENT_REPORTER](https://megalinter.io/latest/reporters/GitlabCommentReporter/) + - Enhancement & fixes for GitlabCommentReporter by @nvuillam in + - New var GITLAB_COMMENT_REPORTER_OVERWRITE_COMMENT to allow to disable the overwrite of existing MegaLinter comment in case of new run + - In case of overwrite activated (by default), fetch all Merge Request comments, not the first 20. + - Display a different message in log when a Merge Request comment is created or updated. + - [AZURE_COMMENT_REPORTER](https://megalinter.io/latest/reporters/AzureCommentReporter/) + - Downgrade Azure DevOps pipy package to avoid crash by @nvuillam in - Documentation - - Apply many updates after the use of [Vale](https://vale.sh/) on MegaLinter own sources and docs + - Improve documentation pages split by @nvuillam in + - Now Installation and Configuration menus have their own child menus + - Doc about how to use fine grained PAT by @nvuillam in + - Fixed incorrect link in Azure to Gitlab reporters pages. by @Doommius in + - Added bitbucket job template + Fix icon in console logs by @Doommius in + - Exclude licenses pages from online search results by @nvuillam in + - Improve HTML tables display by @nvuillam in - Remove ASCII characters from linters helps displayed in MegaLinter documentation -- Linter versions upgrades - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.76.1 to **0.76.2** on 2023-04-04 - - [checkov](https://www.checkov.io/) from 2.3.149 to **2.3.150** on 2023-04-04 - - [actionlint](https://rhysd.github.io/actionlint/) from 1.6.23 to **1.6.24** on 2023-04-05 - - [phpstan](https://phpstan.org/) from 1.10.10 to **1.10.11** on 2023-04-05 - - [checkov](https://www.checkov.io/) from 2.3.150 to **2.3.152** on 2023-04-05 - - [semgrep](https://semgrep.dev/) from 1.16.0 to **1.17.0** on 2023-04-05 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.0 to **0.45.1** on 2023-04-05 - - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.15.31 to **0.16.1** on 2023-04-06 - - [djlint](https://djlint.com/) from 1.19.16 to **1.19.17** on 2023-04-06 - - [puppet-lint](http://puppet-lint.com/) from 3.3.0 to **3.4.0** on 2023-04-06 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.301 to **1.1.302** on 2023-04-06 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.260 to **0.0.261** on 2023-04-06 - - [semgrep](https://semgrep.dev/) from 1.17.0 to **1.17.1** on 2023-04-06 - - [syft](https://github.com/anchore/syft) from 0.76.0 to **0.76.1** on 2023-04-06 - - [snakefmt](https://github.com/snakemake/snakefmt) from 0.8.3 to **0.8.4** on 2023-04-06 - - [sqlfluff](https://www.sqlfluff.com/) from 2.0.2 to **2.0.3** on 2023-04-06 - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.76.2 to **0.77.0** on 2023-04-10 - - [eslint](https://eslint.org) from 8.37.0 to **8.38.0** on 2023-04-10 - - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.1.1 to **1.2.0** on 2023-04-10 - - [checkov](https://www.checkov.io/) from 2.3.152 to **2.3.158** on 2023-04-10 - - [trivy](https://aquasecurity.github.io/trivy/) from 0.39.0 to **0.39.1** on 2023-04-10 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.1 to **0.45.2** on 2023-04-10 - - [pmd](https://pmd.github.io/) from 6.48.0 to **6.55.0** on 2023-04-11 - - [gitleaks](https://github.com/zricethezav/gitleaks) from 8.16.1 to **8.16.2** on 2023-04-11 - - [rubocop](https://rubocop.org/) from 1.49.0 to **1.50.0** on 2023-04-11 - - [tflint](https://github.com/terraform-linters/tflint) from 0.45.0 to **0.46.0** on 2023-04-11 - - [dotnet-format](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format) from 6.0.407 to **6.0.408** on 2023-04-11 - - [markdown-link-check](https://github.com/tcort/markdown-link-check) from 3.10.3 to **3.11.1** on 2023-04-11 - - [syft](https://github.com/anchore/syft) from 0.76.1 to **0.77.0** on 2023-04-11 - - [xmllint](http://xmlsoft.org/xmllint.html) from 21003 to **21004** on 2023-04-11 - - [checkov](https://www.checkov.io/) from 2.3.158 to **2.3.160** on 2023-04-11 - - [kics](https://www.kics.io) from 1.6.13 to **1.6.14** on 2023-04-11 - - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.16.1 to **0.16.2** on 2023-04-12 - - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.14.4 to **6.14.5** on 2023-04-12 - - [djlint](https://djlint.com/) from 1.19.17 to **1.22.0** on 2023-04-12 - - [phpstan](https://phpstan.org/) from 1.10.11 to **1.10.12** on 2023-04-12 - - [rubocop](https://rubocop.org/) from 1.50.0 to **1.50.1** on 2023-04-12 - - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.14.5 to **6.14.6** on 2023-04-15 - - [clj-kondo](https://github.com/borkdude/clj-kondo) from 2023.03.17 to **2023.04.14** on 2023-04-15 - - [djlint](https://djlint.com/) from 1.22.0 to **1.23.0** on 2023-04-15 - - [phpstan](https://phpstan.org/) from 1.10.12 to **1.10.13** on 2023-04-15 - - [powershell_formatter](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.3 to **7.3.4** on 2023-04-15 - - [powershell](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.3 to **7.3.4** on 2023-04-15 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.302 to **1.1.303** on 2023-04-15 - - [checkov](https://www.checkov.io/) from 2.3.160 to **2.3.165** on 2023-04-15 - - [semgrep](https://semgrep.dev/) from 1.17.1 to **1.18.0** on 2023-04-15 - - [sqlfluff](https://www.sqlfluff.com/) from 2.0.3 to **2.0.5** on 2023-04-15 - - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.4.4 to **1.4.5** on 2023-04-15 - - [terrascan](https://www.accurics.com/products/terrascan/) from 1.18.0 to **1.18.1** on 2023-04-15 - - [stylelint](https://stylelint.io) from 15.4.0 to **15.5.0** on 2023-04-16 - - [checkov](https://www.checkov.io/) from 2.3.165 to **2.3.167** on 2023-04-16 - - [checkov](https://www.checkov.io/) from 2.3.167 to **2.3.168** on 2023-04-16 - - [vale](https://vale.sh/) from 2.24.2 to **2.24.0** on 2023-04-16 - - [checkov](https://www.checkov.io/) from 2.3.168 to **2.3.171** on 2023-04-16 - - [trivy](https://aquasecurity.github.io/trivy/) from 0.39.1 to **0.40.0** on 2023-04-16 - - [vale](https://vale.sh/) from 2.24.0 to **2.24.2** on 2023-04-16 - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.0 to **0.77.2** on 2023-04-20 - - [djlint](https://djlint.com/) from 1.23.0 to **1.23.3** on 2023-04-20 - - [phpstan](https://phpstan.org/) from 1.10.13 to **1.10.14** on 2023-04-20 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.261 to **0.0.262** on 2023-04-20 - - [checkov](https://www.checkov.io/) from 2.3.171 to **2.3.187** on 2023-04-20 - - [syft](https://github.com/anchore/syft) from 0.77.0 to **0.78.0** on 2023-04-20 - - [rubocop](https://rubocop.org/) from 1.50.1 to **1.50.2** on 2023-04-20 - - [vale](https://vale.sh/) from 2.24.2 to **2.24.3** on 2023-04-20 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.2 to **0.45.3** on 2023-04-20 - - [checkov](https://www.checkov.io/) from 2.3.187 to **2.3.189** on 2023-04-20 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.3 to **0.45.4** on 2023-04-20 - - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.14.6 to **6.15.0** on 2023-04-22 - - [eslint](https://eslint.org) from 8.38.0 to **8.39.0** on 2023-04-22 - - [ktlint](https://ktlint.github.io) from 0.48.2 to **0.49.0** on 2023-04-22 - - [puppet-lint](http://puppet-lint.com/) from 3.4.0 to **4.0.0** on 2023-04-22 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.303 to **1.1.304** on 2023-04-22 - - [checkov](https://www.checkov.io/) from 2.3.189 to **2.3.192** on 2023-04-22 - - [semgrep](https://semgrep.dev/) from 1.18.0 to **1.19.0** on 2023-04-22 - - [syft](https://github.com/anchore/syft) from 0.78.0 to **0.79.0** on 2023-04-22 - - [clippy](https://github.com/rust-lang/rust-clippy) from 0.1.68 to **0.1.69** on 2023-04-22 - - [sqlfluff](https://www.sqlfluff.com/) from 2.0.5 to **2.0.7** on 2023-04-22 - - [yamllint](https://yamllint.readthedocs.io/) from 1.30.0 to **1.31.0** on 2023-04-22 - - [protolint](https://github.com/yoheimuta/protolint) from 0.43.1 to **0.43.2** on 2023-04-22 - - [gitleaks](https://github.com/zricethezav/gitleaks) from 8.16.2 to **8.16.3** on 2023-04-23 - - [stylelint](https://stylelint.io) from 15.5.0 to **15.6.0** on 2023-04-23 - - [prettier](https://prettier.io/) from 2.8.7 to **2.8.8** on 2023-04-23 - - [checkov](https://www.checkov.io/) from 2.3.192 to **2.3.194** on 2023-04-23 - - [checkov](https://www.checkov.io/) from 2.3.194 to **2.3.197** on 2023-04-24 - - [vale](https://vale.sh/) from 2.24.3 to **2.24.4** on 2023-04-24 - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.2 to **0.77.3** on 2023-04-25 - - [djlint](https://djlint.com/) from 1.23.3 to **1.24.0** on 2023-04-25 - - [pylint](https://pylint.pycqa.org) from 2.17.2 to **2.17.3** on 2023-04-25 - - [checkov](https://www.checkov.io/) from 2.3.197 to **2.3.199** on 2023-04-25 - - [tflint](https://github.com/terraform-linters/tflint) from 0.46.0 to **0.46.1** on 2023-04-25 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.262 to **0.0.263** on 2023-04-25 - - [djlint](https://djlint.com/) from 1.24.0 to **1.25.0** on 2023-04-26 - - [git_diff](https://git-scm.com) from 2.38.4 to **2.38.5** on 2023-04-26 - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.3 to **0.77.4** on 2023-04-29 - - [jscpd](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd) from 3.5.4 to **3.5.5** on 2023-04-29 - - [csharpier](https://csharpier.com/) from 0.23.0 to **0.24.1** on 2023-04-29 - - [checkstyle](https://checkstyle.sourceforge.io) from 10.9.3 to **10.10.0** on 2023-04-29 - - [jsonlint](https://github.com/prantlf/jsonlint) from 14.0.2 to **14.0.3** on 2023-04-29 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.304 to **1.1.305** on 2023-04-29 - - [checkov](https://www.checkov.io/) from 2.3.199 to **2.3.205** on 2023-04-29 - - [semgrep](https://semgrep.dev/) from 1.19.0 to **1.20.0** on 2023-04-29 - - [trivy](https://aquasecurity.github.io/trivy/) from 0.40.0 to **0.41.0** on 2023-04-29 - - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.25.0 to **7.25.2** on 2023-04-29 - - [vale](https://vale.sh/) from 2.24.4 to **2.25.2** on 2023-04-29 - - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.4.5 to **1.4.6** on 2023-04-29 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.4 to **0.45.5** on 2023-04-29 - - [checkov](https://www.checkov.io/) from 2.3.205 to **2.3.206** on 2023-04-29 - - [kics](https://www.kics.io) from 1.6.14 to **1.7.0** on 2023-04-29 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.5 to **0.45.6** on 2023-04-29 - - [markdown-link-check](https://github.com/tcort/markdown-link-check) from 3.11.1 to **3.11.2** on 2023-04-30 - - [markdownlint](https://github.com/DavidAnson/markdownlint) from 0.33.0 to **0.34.0** on 2023-04-30 - - [checkov](https://www.checkov.io/) from 2.3.206 to **2.3.212** on 2023-04-30 - - [syft](https://github.com/anchore/syft) from 0.76.1 to **0.79.0** on 2023-04-30 - - [jscpd](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd) from 3.5.5 to **3.5.8** on 2023-05-02 - - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.15.0 to **6.16.0** on 2023-05-12 - - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.16.2 to **0.17.1** on 2023-05-12 - - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.77.4 to **0.77.5** on 2023-05-12 - - [jscpd](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd) from 3.5.8 to **3.5.9** on 2023-05-12 - - [csharpier](https://csharpier.com/) from 0.24.1 to **0.24.2** on 2023-05-12 - - [stylelint](https://stylelint.io) from 15.6.0 to **15.6.1** on 2023-05-12 - - [djlint](https://djlint.com/) from 1.25.0 to **1.27.2** on 2023-05-12 - - [checkstyle](https://checkstyle.sourceforge.io) from 10.10.0 to **10.11.0** on 2023-05-12 - - [eslint](https://eslint.org) from 8.39.0 to **8.40.0** on 2023-05-12 - - [eslint-plugin-jsonc](https://ota-meshi.github.io/eslint-plugin-jsonc/) from 2.7.0 to **2.8.0** on 2023-05-12 - - [v8r](https://github.com/chris48s/v8r) from 1.0.0 to **2.0.0** on 2023-05-12 - - [phpstan](https://phpstan.org/) from 1.10.14 to **1.10.15** on 2023-05-12 - - [psalm](https://psalm.dev) from Psalm.5.9.0@ to **Psalm.5.11.0@** on 2023-05-12 - - [protolint](https://github.com/yoheimuta/protolint) from 0.43.2 to **0.44.0** on 2023-05-12 - - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.2.0 to **1.3.0** on 2023-05-12 - - [pylint](https://pylint.pycqa.org) from 2.17.3 to **2.17.4** on 2023-05-12 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.305 to **1.1.307** on 2023-05-12 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.263 to **0.0.265** on 2023-05-12 - - [checkov](https://www.checkov.io/) from 2.3.212 to **2.3.238** on 2023-05-12 - - [semgrep](https://semgrep.dev/) from 1.20.0 to **1.21.0** on 2023-05-12 - - [syft](https://github.com/anchore/syft) from 0.79.0 to **0.80.0** on 2023-05-12 - - [sfdx-scanner-apex](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** on 2023-05-12 - - [sfdx-scanner-aura](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** on 2023-05-12 - - [sfdx-scanner-lwc](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** on 2023-05-12 - - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.25.2 to **7.25.3** on 2023-05-12 - - [sqlfluff](https://www.sqlfluff.com/) from 2.0.7 to **2.1.0** on 2023-05-12 - - [swiftlint](https://github.com/realm/SwiftLint) from 0.51.0 to **0.52.1** on 2023-05-12 - - [kics](https://www.kics.io) from 1.7.0 to **1.7.1** on 2023-05-12 - - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.6 to **0.45.11** on 2023-05-12 - - [ktlint](https://ktlint.github.io) from 0.49.0 to **0.49.1** on 2023-05-12 - - [pyright](https://github.com/Microsoft/pyright) from 1.1.307 to **1.1.308** on 2023-05-12 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.265 to **0.0.266** on 2023-05-12 - - [checkov](https://www.checkov.io/) from 2.3.238 to **2.3.239** on 2023-05-12 - - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.25.3 to **7.25.4** on 2023-05-12 - - [ruff](https://github.com/charliermarsh/ruff) from 0.0.266 to **0.0.267** on 2023-05-12 - - [vale](https://vale.sh/) from 2.25.2 to **2.26.0** on 2023-05-13 - - [swiftlint](https://github.com/realm/SwiftLint) from 0.52.1 to **0.52.2** on 2023-05-13 - - [rubocop](https://rubocop.org/) from 1.50.2 to **1.51.0** on 2023-05-13 - +- Internal CI + - Upgrade GitHub Actions to change automated comments and increase timeout by @nvuillam in + - Use Github Permissions instead of PAT by @nvuillam in + - Update GitHub Actions workflows environments by @nvuillam in + - Automate External Plugins table generation using **.automation/plugins.yml** file by @nvuillam in + - Fix MegaLinter build issue by @nvuillam in + - Fix for trivy-action (new naming for input) by @DariuszPorowski in + - Fix `/build` slash command to checkout the correct PR branch by @echoix in + - Fix local run of python test cases by @nvuillam in + - Fix mkdocs documentation generation by downgrading mkdocs-glightbox to 0.3.2 by @nvuillam in + - Do not push to docker from dev PRs by @nvuillam in + - Update stale workflow: remove trigger on comments and explicit permissions by @echoix in + - Decouple updating docker pull stats from building docs by @echoix in + - Review MegaLinter's own cspell word list for outdated exclusions by @echoix in + - Run stale workflow only on schedule, by @echoix in + - Add explicit permissions to stale workflow, by @echoix in + +- Linter versions upgrades + - [actionlint](https://rhysd.github.io/actionlint/) from 1.6.23 to **1.6.24** + - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.14.4 to **6.16.2** + - [bicep_linter](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter) from 0.15.31 to **0.17.1** + - [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) from 0.76.1 to **0.77.5** + - [checkov](https://www.checkov.io/) from 2.3.149 to **2.3.259** + - [checkstyle](https://checkstyle.sourceforge.io) from 10.9.3 to **10.11.0** + - [clippy](https://github.com/rust-lang/rust-clippy) from 0.1.68 to **0.1.69** + - [clj-kondo](https://github.com/borkdude/clj-kondo) from 2023.03.17 to **2023.05.18** + - [csharpier](https://csharpier.com/) from 0.23.0 to **0.24.2** + - [djlint](https://djlint.com/) from 1.19.16 to **1.29.0** + - [dotnet-format](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format) from 6.0.407 to **6.0.408** + - [eslint-plugin-jsonc](https://ota-meshi.github.io/eslint-plugin-jsonc/) from 2.7.0 to **2.8.0** + - [eslint](https://eslint.org) from 8.37.0 to **8.41.0** + - [git_diff](https://git-scm.com) from 2.38.4 to **2.38.5** + - [gitleaks](https://github.com/zricethezav/gitleaks) from 8.16.1 to **8.16.3** + - [jscpd](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd) from 3.5.4 to **3.5.9** + - [jsonlint](https://github.com/prantlf/jsonlint) from 14.0.2 to **14.0.3** + - [kics](https://www.kics.io) from 1.6.13 to **1.7.1** + - [ktlint](https://ktlint.github.io) from 0.48.2 to **0.49.1** + - [kubeconform](https://github.com/yannh/kubeconform) from 0.5.0 to **0.6.1** + - [kubescape](https://github.com/kubescape/kubescape) from 2.3.1 to **2.3.3** + - [markdown-link-check](https://github.com/tcort/markdown-link-check) from 3.10.3 to **3.11.2** + - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.1.1 to **1.3.0** + - [phplint](https://github.com/overtrue/phplint) from 5.5 to **9.0.4** + - [phpstan](https://phpstan.org/) from 1.10.10 to **1.10.15** + - [pmd](https://pmd.github.io/) from 6.48.0 to **6.55.0** + - [powershell](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.3 to **7.3.4** + - [powershell_formatter](https://github.com/PowerShell/PSScriptAnalyzer) from 7.3.3 to **7.3.4** + - [prettier](https://prettier.io/) from 2.8.7 to **2.8.8** + - [protolint](https://github.com/yoheimuta/protolint) from 0.43.1 to **0.44.0** + - [psalm](https://psalm.dev) from Psalm.5.9.0@ to **Psalm.5.12.0@** + - [puppet-lint](http://puppet-lint.com/) from 3.3.0 to **4.0.0** + - [pylint](https://pylint.pycqa.org) from 2.17.2 to **2.17.4** + - [pyright](https://github.com/Microsoft/pyright) from 1.1.301 to **1.1.310** + - [revive](https://revive.run/) from 1.3.1 to **1.3.2** + - [rubocop](https://rubocop.org/) from 1.49.0 to **1.51.0** + - [ruff](https://github.com/charliermarsh/ruff) from 0.0.260 to **0.0.270** + - [semgrep](https://semgrep.dev/) from 1.16.0 to **1.23.0** + - [sfdx-scanner-apex](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** + - [sfdx-scanner-aura](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** + - [sfdx-scanner-lwc](https://forcedotcom.github.io/sfdx-scanner/) from 3.11.0 to **3.12.0** + - [snakefmt](https://github.com/snakemake/snakefmt) from 0.8.3 to **0.8.4** + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 7.25.0 to **7.26.0** + - [spectral](https://meta.stoplight.io/docs/spectral/README.md) from 6.6.0 to **6.8.0** + - [sqlfluff](https://www.sqlfluff.com/) from 2.0.2 to **2.1.1** + - [stylelint](https://stylelint.io) from 15.4.0 to **15.6.2** + - [swiftlint](https://github.com/realm/SwiftLint) from 0.51.0 to **0.52.2** + - [syft](https://github.com/anchore/syft) from 0.76.0 to **0.82.0** + - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.4.4 to **1.4.6** + - [terragrunt](https://terragrunt.gruntwork.io) from 0.45.0 to **0.45.11** + - [terrascan](https://www.accurics.com/products/terrascan/) from 1.18.0 to **1.18.1** + - [tflint](https://github.com/terraform-linters/tflint) from 0.45.0 to **0.46.1** + - [trivy](https://aquasecurity.github.io/trivy/) from 0.39.0 to **0.41.0** + - [v8r](https://github.com/chris48s/v8r) from 1.0.0 to **2.0.0** + - [vale](https://vale.sh/) from 2.24.0 to **2.27.0** + - [xmllint](http://xmlsoft.org/xmllint.html) from 21003 to **21004** + - [yamllint](https://yamllint.readthedocs.io/) from 1.30.0 to **1.32.0** ## [v6.22.2] - 2023-04-03 @@ -222,8 +390,8 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - Linter versions upgrades - [ansible-lint](https://ansible-lint.readthedocs.io/) from 6.14.3 to **6.14.4** - [checkov](https://www.checkov.io/) from 2.3.145 to **2.3.149** - - [pylint](https://pylint.pycqa.org) from 2.17.1 to **2.17.2** on 2023-04-03 - - [rubocop](https://rubocop.org/) from 1.48.1 to **1.49.0** on 2023-04-03 + - [pylint](https://pylint.pycqa.org) from 2.17.1 to **2.17.2** + - [rubocop](https://rubocop.org/) from 1.48.1 to **1.49.0** ## [v6.22.1] - 2023-04-02 @@ -375,7 +543,7 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - [csharpier](https://csharpier.com/) from 0.22.1 to **0.23.0** - [jsonlint](https://github.com/prantlf/jsonlint) from 13.0.1 to **14.0.1** - [mypy](https://mypy.readthedocs.io/en/stable/) from 1.0.1 to **1.1.1** - - [phpstan](https://phpstan.org/) from 1.10.3 to **1.10.5** on 2023-03-07 + - [phpstan](https://phpstan.org/) from 1.10.3 to **1.10.5** - [protolint](https://github.com/yoheimuta/protolint) from 0.43.0 to **0.43.1** - [puppet-lint](http://puppet-lint.com/) from 3.2.0 to **3.3.0** - [pylint](https://pylint.pycqa.org) from 2.16.3 to **2.16.4** @@ -582,7 +750,7 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - [phpstan](https://phpstan.org/) from 1.9.4 to **1.9.7** - [rubocop](https://rubocop.org/) from 1.41.1 to **1.42.0** - [secretlint](https://github.com/secretlint/secretlint) from 5.3.0 to **6.0.2** - - [semgrep](https://semgrep.dev/) from 1.2.1 to **1.3.0** on 2023-01-06 + - [semgrep](https://semgrep.dev/) from 1.2.1 to **1.3.0** - [sfdx-scanner](https://forcedotcom.github.io/sfdx-scanner/) from 3.7.1 to **3.8.0** - [stylelint](https://stylelint.io) from 14.16.0 to **14.16.1** - [syft](https://github.com/anchore/syft) from 0.64.0 to **0.65.0** diff --git a/Dockerfile b/Dockerfile index a117d116899..56c0b816722 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,14 +34,16 @@ FROM yoheimuta/protolint:latest as protolint FROM golang:alpine as dustilock RUN GOBIN=/usr/bin go install github.com/checkmarx/dustilock@v1.2.0 -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM checkmarx/kics:alpine as kics +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM lycheeverse/lychee:latest-alpine as lychee +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint FROM tenable/terrascan:1.18.1 as terrascan FROM alpine/terragrunt:latest as terragrunt # Next FROM line commented because already managed by another linter # FROM alpine/terragrunt:latest as terragrunt -FROM checkmarx/kics:alpine as kics #FROM__END ################## @@ -50,7 +52,7 @@ FROM checkmarx/kics:alpine as kics # https://stackoverflow.com/a/73711302/699056 FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN # https://stackoverflow.com/a/73711302/699056 @@ -89,7 +91,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -123,7 +125,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ py3-pyflakes \ nodejs \ @@ -132,6 +133,7 @@ RUN apk add --update --no-cache \ go \ helm \ gcompat \ + libc6-compat \ openssl \ readline-dev \ g++ \ @@ -254,7 +256,8 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ tekton-lint \ prettyjson \ @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser && \ + @typescript-eslint/parser \ + ts-standard && \ echo "Cleaning npm cache…" \ && npm cache clean --force || true \ && echo "Changing owner of node_modules files…" \ @@ -335,13 +338,15 @@ COPY --link --from=phpstan /composer/vendor/phpstan/phpstan/phpstan.phar /usr/bi COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=dustilock /usr/bin/dustilock /usr/bin/dustilock COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=kics /app/bin/kics /usr/bin/ +COPY --from=kics /app/bin/assets /opt/kics/assets/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ COPY --link --from=terrascan /go/bin/terrascan /usr/bin/ COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ COPY --link --from=terragrunt /bin/terraform /usr/bin/ -COPY --link --from=kics /app/bin/kics /usr/bin/ -COPY --from=kics /app/bin/assets /opt/kics/assets/ #COPY__END ############################################################################################# @@ -385,7 +390,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -436,7 +441,7 @@ ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" # Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ # 1QIDAQAB\ # -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ -# wget --quiet \ +# wget --quiet --tries=10 --waitretry=10 \ # "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ # "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ # "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -480,7 +485,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # POWERSHELL installation RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ @@ -624,7 +628,8 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # chktex installation # Managed with COPY --link --from=chktex /usr/bin/chktex /usr/bin/ @@ -664,11 +669,11 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI # phplint installation -RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute \ +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g + # powershell installation - && pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' \ +RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' # powershell_formatter installation # Next line commented because already managed by another linter @@ -677,8 +682,11 @@ RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ +# mypy installation +ENV MYPY_CACHE_DIR=/tmp + # lintr installation - && mkdir -p /home/r-library \ +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')" \ @@ -700,7 +708,7 @@ ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$ # && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.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 --version 0.7.104 \ +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI \ # dustilock installation # Managed with COPY --link --from=dustilock /usr/bin/dustilock /usr/bin/dustilock @@ -708,12 +716,28 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + +# kics installation +# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ + && mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ + # syft installation - && curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin \ +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin \ # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # sfdx-scanner-apex installation && sfdx plugins:install @salesforce/sfdx-scanner \ && npm cache clean --force || true \ @@ -737,6 +761,9 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + # 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 \ @@ -744,7 +771,7 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest # Next line commented because already managed by another linter # ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" - && dotnet tool install --global TSQLLint \ + && dotnet tool install --global TSQLLint # tflint installation # Managed with COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ @@ -758,12 +785,6 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # terraform-fmt installation # Managed with COPY --link --from=terragrunt /bin/terraform /usr/bin/ -# kics installation -# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ - && mkdir -p /opt/kics/assets -ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries -# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ - #OTHER__END ################################ @@ -781,6 +802,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/Dockerfile-worker b/Dockerfile-worker new file mode 100644 index 00000000000..b13a50b4b55 --- /dev/null +++ b/Dockerfile-worker @@ -0,0 +1,49 @@ +################################################ +################################################ +###### Dockerfile to release MegaLinter ####### +################################################ +################################################ + +################## +# Get base image # +################## +ARG MEGALINTER_BASE_IMAGE +FROM $MEGALINTER_BASE_IMAGE + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for displaying the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +# Install python libs required for MegaLinter to be used as worker +RUN pip install -r /server/requirements.txt + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL 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.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint and secure your code base with MegaLinter (Worker version)" diff --git a/Makefile b/Makefile new file mode 100644 index 00000000000..13a7a3dee21 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +.PHONY: all test SHELL + +python_launcher := python$(shell cut -d '.' -f 1,2 .python-version) + +-include $(addsuffix /*.mak, $(shell find .config/make -type d)) + +## —— Tests ——————————————————————————————————————————————————————————————————————— +.PHONY: tests +tests: ## Tests all + $(MAKE) gitpod-tests + $(MAKE) megalinter-tests + +.PHONY: tests-fast +tests-fast: ## Tests quickly for TDD mode + $(MAKE) megalinter-tests + +## —— Virtualenv ———————————————————————————————————————————————————————————————————————————————— +.PHONY: bootstrap +bootstrap: ## Bootstrap environment for development + $(MAKE) python-bootstrap + $(MAKE) python-bootstrap-dev + $(MAKE) nodejs-bootstrap + +.PHONY: reinitialization +reinitialization: ## Return to an initial state of Bootstrap + $(MAKE) clean + $(MAKE) bootstrap + +.PHONY: clean +clean: ## Cleaning environment + $(MAKE) python-venv-purge + $(MAKE) nodejs-clean + $(MAKE) megalinter-clean diff --git a/README.md b/README.md index a08b74f4273..cbdf037abc4 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,13 @@ ![GitHub release](https://img.shields.io/github/v/release/oxsecurity/megalinter?sort=semver) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.5M-blue)](https://megalinter.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.8M-blue)](https://megalinter.io/flavors/) [![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) [![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?cacheSeconds=3600)](https://github.com/oxsecurity/megalinter/stargazers/) [![MegaLinter](https://github.com/oxsecurity/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://github.com/oxsecurity/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain) [![codecov](https://codecov.io/gh/oxsecurity/megalinter/branch/main/graph/badge.svg)](https://codecov.io/gh/oxsecurity/megalinter) -[![](https://img.shields.io/static/v1?label=Used%20by&message=2328&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by&message=2595&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) [![Secured with Trivy](https://img.shields.io/badge/Trivy-secured-green?logo=docker)](https://github.com/aquasecurity/trivy) [![GitHub contributors](https://img.shields.io/github/contributors/oxsecurity/megalinter.svg)](https://github.com/oxsecurity/megalinter/graphs/contributors/) [![GitHub Sponsors](https://img.shields.io/github/sponsors/nvuillam)](https://github.com/sponsors/nvuillam) @@ -34,9 +34,11 @@ 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/?ref=megalinter). -Supporting [**55** languages](#languages), [**24** 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 [**55** languages](#languages), [**24** 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**. -[**Upgrade to MegaLinter v7 !**] +[**Switch to MegaLinter v7 !**](https://github.com/oxsecurity/megalinter/issues/2692) + +[![Upgrade to v7 Video](https://img.youtube.com/vi/6NSBzq01S9g/0.jpg)](https://www.youtube.com/watch?v=6NSBzq01S9g) @@ -73,7 +75,7 @@ _Github PR reporter_ ## Table of Contents -- [MegaLinter](#megalinter-by-) +- [MegaLinter, by](#megalinter-by-) - [Table of Contents](#table-of-contents) - [Why MegaLinter](#why-megalinter) - [Quick Start](#quick-start) @@ -84,11 +86,11 @@ _Github PR reporter_ - [Other](#other) - [Installation](#installation) - [Assisted installation](#assisted-installation) - - [Upgrade to MegaLinter v6](#upgrade-to-megalinter-v6) - - [Manual installation](#manual-installation) + - [Which version to use ?](#which-version-to-use-) - [GitHub Action](#github-action) - [GitLab CI](#gitlab-ci) - [Azure Pipelines](#azure-pipelines) + - [Bitbucket Pipelines](#bitbucket-pipelines) - [Jenkins](#jenkins) - [Concourse](#concourse) - [Pipeline step](#pipeline-step) @@ -98,14 +100,21 @@ _Github PR reporter_ - [Docker container](#docker-container) - [Run MegaLinter locally](#run-megalinter-locally) - [Configuration](#configuration) + - [.mega-linter.yml file](#mega-linteryml-file) - [Common variables](#common-variables) - [Activation and deactivation](#activation-and-deactivation) - [Filter linted files](#filter-linted-files) - [Apply fixes](#apply-fixes) + - [Apply fixes issues](#apply-fixes-issues) + - [Notes](#notes) - [Linter specific variables](#linter-specific-variables) - [Pre-commands](#pre-commands) - [Post-commands](#post-commands) - [Environment variables security](#environment-variables-security) + - [Secured env variables](#secured-env-variables) + - [Secured configuration examples](#secured-configuration-examples) + - [Default secured variables](#default-secured-variables) + - [Unhide variables for linters](#unhide-variables-for-linters) - [CLI lint mode](#cli-lint-mode) - [Reporters](#reporters) - [Flavors](#flavors) @@ -113,10 +122,10 @@ _Github PR reporter_ - [Markdown](#markdown) - [reStructuredText](#restructuredtext) - [Plugins](#plugins) - - [Use plugins](#use-plugins) + - [External Plugins Catalog](#external-plugins-catalog) + - [Use external plugins](#use-external-plugins) - [Example](#example) - - [Plugins Catalog](#plugins-catalog) - - [Create plugins](#create-plugins) + - [Create your own plugin](#create-your-own-plugin) - [Limitations](#limitations) - [They talk about MegaLinter](#they-talk-about-megalinter) - [English articles](#english-articles) @@ -132,6 +141,7 @@ _Github PR reporter_ - [Super-Linter team](#super-linter-team) - [License](#license) - [MegaLinter vs Super-Linter](#megalinter-vs-super-linter) + - [Security](#security) - [Performances](#performances) - [More languages and formats linted](#more-languages-and-formats-linted) - [Automatically apply formatting and fixes](#automatically-apply-formatting-and-fixes) @@ -144,7 +154,6 @@ _Github PR reporter_ - [Plugins management](#plugins-management) - [Simplify architecture and evolutive maintenance](#simplify-architecture-and-evolutive-maintenance) - [Improve robustness \& stability](#improve-robustness--stability) - - [V4 versus V5](#v4-versus-v5) ## Why MegaLinter @@ -161,9 +170,9 @@ 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're using - [**MegaLinter documentation**](https://megalinter.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) -- **Formatting and fixes** can be automatically [**applied on the git branch**](#apply-fixes) or [**provided in reports**](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md) +- **Formatting and fixes** can be automatically [**applied on the git branch**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md) or [**provided in reports**](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md) - 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) and be [**run locally**](https://megalinter.io/mega-linter-runner/): **no need to authorize an external application**, and **your code base never leaves your tooling ecosystem** +- MegaLinter can run on [**any CI tool**](https://github.com/oxsecurity/megalinter/tree/main/docs/install-assisted.md) and be [**run locally**](https://megalinter.io/mega-linter-runner/): **no need to authorize an external application**, and **your code base never leaves your tooling ecosystem** @@ -216,7 +225,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md)
[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | | | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**csharpier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md)
[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md) | [**dartanalyzer**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md)
[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![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) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**revive**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md)
[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md) | [**npm-groovy-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md)
[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**checkstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md)
[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -254,10 +263,10 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**sql-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md)
[_SQL_SQL_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**sqlfluff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md)
[_SQL_SQLFLUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**tsqllint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md)
[_SQL_TSQLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md) | [![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) | [**swiftlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SWIFT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift.md) | [**swiftlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [![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) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md)
[_TSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![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) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md)
[_TYPESCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![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) | [**standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md)
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**ts-standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**Visual Basic .NET** (VBDOTNET)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md)
[_VBDOTNET_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | @@ -292,47 +301,51 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ### Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [![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) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | -| | [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | -| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [![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) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | [![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) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | -| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [![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) | [**tflint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [![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) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terrascan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terragrunt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [![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**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terraform-fmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**kics**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md)
[_TERRAFORM_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [![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) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [![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) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | [![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) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [![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) | [**tflint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [![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) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terrascan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terragrunt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [![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**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terraform-fmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md) | [**jscpd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [![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) | [**checkov**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**devskim**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**dustilock**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**git_diff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**gitleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**secretlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**semgrep**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**syft**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [![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) | [**cspell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md)
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**proselint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**vale**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md)
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md) | [**jscpd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [![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) | [**checkov**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**devskim**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**dustilock**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**git_diff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**gitleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**grype**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md)
[_REPOSITORY_GRYPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**kics**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md)
[_REPOSITORY_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**secretlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**semgrep**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**syft**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy-sbom**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trufflehog**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**cspell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md)
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**proselint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**vale**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md)
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**lychee**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md)
[_SPELL_LYCHEE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | @@ -346,28 +359,47 @@ description: How to install MegaLinter on Github Actions, Gitlab CI, Azure Pipel --> ## Installation + + ### Assisted installation Just run `npx mega-linter-runner --install` at the root of your repository and answer questions, it will generate ready to use configuration files for MegaLinter :) ![Runner Install](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/mega-linter-runner-generator.gif?raw=true) -### Upgrade to MegaLinter v6 - -- Run `npx mega-linter-runner --upgrade` to automatically upgrade your configuration from v4 or v5 to v6 :) - -### Manual installation + + + +### Which version to use ? -The following instructions examples are using latest MegaLinter stable version (**v6** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) +The following instructions examples are using latest MegaLinter stable version (**v7** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) -- Docker image: `oxsecurity/megalinter:v6` -- GitHub Action: `oxsecurity/megalinter@v6` +- Docker image: `oxsecurity/megalinter:v7` +- GitHub Action: `oxsecurity/megalinter@v7` You can also use **beta** version (corresponding to the content of main branch) - Docker image: `oxsecurity/megalinter:beta` - GitHub Action: `oxsecurity/megalinter@beta` + + + ### GitHub Action 1. Create a new file in your repository called `.github/workflows/mega-linter.yml` @@ -414,6 +446,12 @@ jobs: build: name: MegaLinter runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write steps: # Git Checkout - name: Checkout Code @@ -427,7 +465,7 @@ jobs: id: ml # You can override MegaLinter flavor used to have faster performances # More info at https://megalinter.io/flavors/ - uses: oxsecurity/megalinter@v6 + uses: oxsecurity/megalinter@v7 env: # All available variables are described in documentation # https://megalinter.io/configuration/ @@ -478,6 +516,14 @@ jobs: + + + ### GitLab CI Create or update `.gitlab-ci.yml` file at the root of your repository @@ -490,7 +536,7 @@ mega-linter: stage: test # You can override MegaLinter flavor used to have faster performances # More info at https://megalinter.io/flavors/ - image: oxsecurity/megalinter:v6 + image: oxsecurity/megalinter:v7 script: [ "true" ] # if script: ["true"] doesn't work, you may try -> script: [ "/bin/bash /entrypoint.sh" ] variables: # All available variables are described in documentation @@ -510,6 +556,14 @@ Create a Gitlab access token and define it in a variable **GITLAB_ACCESS_TOKEN_M ![Screenshot](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/TextReporter_gitlab_1.jpg?raw=true>) + + + ### Azure Pipelines Use the following Azure Pipelines [YAML template](https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema) @@ -526,7 +580,7 @@ Add the following job in your `azure-pipelines.yaml` file - checkout: self # Pull MegaLinter docker image - - script: docker pull oxsecurity/megalinter:v6 + - script: docker pull oxsecurity/megalinter:v7 displayName: Pull MegaLinter # Run MegaLinter @@ -535,7 +589,7 @@ Add the following job in your `azure-pipelines.yaml` file --env-file <(env | grep -e SYSTEM_ -e BUILD_ -e TF_ -e AGENT_) \ -e SYSTEM_ACCESSTOKEN=$(System.AccessToken) \ -e GIT_AUTHORIZATION_BEARER=$(System.AccessToken) \ - oxsecurity/megalinter:v6 + oxsecurity/megalinter:v7 displayName: Run MegaLinter # Upload MegaLinter reports @@ -549,6 +603,42 @@ Add the following job in your `azure-pipelines.yaml` file To benefit from Pull Request comments, please follow [configuration instructions](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/AzureCommentReporter.md) + + + +### Bitbucket Pipelines + +1. Create a `bitbucket-pipelines.yml` file on the root directory of your repository + +2. Copy and paste the following template or add the step to your existing pipeline. + +```yaml +image: atlassian/default-image:3 +pipelines: + default: + - parallel: + - step: + name: Run MegaLinter + image: oxsecurity/megalinter:v7 + script: + - export DEFAULT_WORKSPACE=$BITBUCKET_CLONE_DIR && bash /entrypoint.sh + artifacts: + - megalinter-reports/** +``` + + + + ### Jenkins Add the following stage in your Jenkinsfile @@ -560,7 +650,7 @@ You may activate [File.io reporter](https://megalinter.io/reporters/FileIoReport stage('MegaLinter') { agent { docker { - image 'oxsecurity/megalinter:v6' + image 'oxsecurity/megalinter:v7' args "-u root -e VALIDATE_ALL_CODEBASE=true -v ${WORKSPACE}:/tmp/lint --entrypoint=''" reuseNode true } @@ -576,6 +666,14 @@ stage('MegaLinter') { } ``` + + + ### Concourse #### Pipeline step @@ -597,7 +695,7 @@ Note: make sure you have `job.plan.get` step which gets `repo` containing your r type: docker-image source: repository: oxsecurity/megalinter - tag: v6 + tag: v7 inputs: - name: repo run: @@ -632,7 +730,7 @@ image_resource: type: docker-image source: repository: oxsecurity/megalinter - tag: v6 + tag: v7 inputs: - name: repo @@ -676,6 +774,14 @@ resources: # VALIDATE_ALL_CODEBASE: true ``` + + + ### Drone CI **Warning: Drone CI support is experimental and is undergoing heavy modifications (see issue [#2047](https://github.com/oxsecurity/megalinter/issues/2047)).** @@ -695,7 +801,7 @@ workspace: steps: - name: megalinter - image: oxsecurity/megalinter:v6 + image: oxsecurity/megalinter:v7 environment: DEFAULT_WORKSPACE: /tmp/lint ``` @@ -717,7 +823,7 @@ workspace: steps: - name: megalinter - image: oxsecurity/megalinter:v6 + image: oxsecurity/megalinter:v7 environment: DEFAULT_WORKSPACE: /tmp/lint @@ -728,26 +834,42 @@ trigger: The workflow above should only trigger on push, not on any other situation. For more information about how to configure Drone CI trigger rules, [click here](https://docs.drone.io/pipeline/triggers/). + + + ### Docker container You can also run megalinter with its Docker container, just execute this command: -`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v6` +`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v7` **No extra arguments are needed,** however, megalinter will lint all of the files inside the `/tmp/lint` folder, so it may be needed to configure your tool of choice to use the `/tmp/lint` folder as workspace. This can also be changed: _Example:_ -`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/example/folder:rw oxsecurity/megalinter:v6` +`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/example/folder:rw oxsecurity/megalinter:v7` + + + ### Run MegaLinter locally [![Version](https://img.shields.io/npm/v/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) [![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) [![Downloads/total](https://img.shields.io/npm/dt/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) -You can use [mega-linter-runner](https://megalinter.io/mega-linter-runner/) to locally run MegaLinter with the same configuration defined in [.mega-linter.yml](#configuration) file +You can use [mega-linter-runner](https://megalinter.io/mega-linter-runner/) to locally run MegaLinter with the same configuration defined in [.mega-linter.yml](https://github.com/oxsecurity/megalinter/tree/main/docs/config-file.md) file See [mega-linter-runner installation instructions](https://megalinter.io/mega-linter-runner/#installation) @@ -759,6 +881,7 @@ npx mega-linter-runner --flavor salesforce -e "'ENABLE=DOCKERFILE,MARKDOWN,YAML' Note: You can also use such command line in your custom CI/CD pipelines + @@ -770,6 +893,15 @@ description: List of all configuration variables that can be used to customize t --> ## Configuration + + +### .mega-linter.yml file + MegaLinter configuration variables are defined in a **.mega-linter.yml** file at the root of the repository or with **environment variables**. You can see an example config file in this repo: [**.mega-linter.yml**](https://github.com/oxsecurity/megalinter/blob/main/.mega-linter.yml) @@ -778,57 +910,76 @@ Configuration is assisted with autocompletion and validation in most commonly us - VSCode: You need a VSCode extension like [Red Hat YAML](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) - IDEA family: Auto-completion natively supported +You can also define variables as environment variables. +- In case a variable exists in both ENV and `.mega-linter.yml` file, priority is given to ENV variable. + ![Assisted configuration](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/assisted-configuration.gif) + + + ### Common variables -| **ENV VAR** | **Default Value** | **Notes** | -|----------------------------------------------------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. they're excluded at any nested level. | -| [**APPLY_FIXES**](#apply-fixes) | `none` | Activates formatting and autofix [(more info)](#apply-fixes) | -| **CLEAR_REPORT_FOLDER** | `false` | Flag to clear files from report folder (usually megalinter-reports) before starting the linting process | -| **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're 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. Later files take precedence. | -| **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 autofixed 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` | -| **GIT_AUTHORIZATION_BEARER** | | If set, calls git with **`Authorization: Bearer`+value** | -| **GITHUB_WORKSPACE** | | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` isn't 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`. Use `none` to not generate this file. | -| **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 | -| **MEGALINTER_FILES_TO_LINT** | \[\] | Comma-separated list of files to analyze. Using this variable will bypass other file listing methods | -| **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}/megalinter-reports` | Directory for generating report files. Set to `none` to not generate reports | -| [**SECURED_ENV_VARIABLES**](#environment-variables-security) | \[\] | Additional list of secured environment variables to hide when calling linters. | -| [**SECURED_ENV_VARIABLES_DEFAULT**](#environment-variables-security) | MegaLinter & CI platforms sensitive variables | List of secured environment variables to hide when calling linters. [Default list](#environment-variables-security). This is not recommended to override this variable, use SECURED_ENV_VARIABLES | -| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | -| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | -| **SKIP_CLI_LINT_MODES** | \[\] | Comma-separated list of cli_lint_modes. To use if you want to skip linters with some CLI lint modes (ex: `file,project`). Available values: `file`,`cli_lint_mode`,`project`. | -| **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're excluded at any nested level. | +| [**APPLY_FIXES**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md) | `none` | Activates formatting and autofix [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md) | +| **CLEAR_REPORT_FOLDER** | `false` | Flag to clear files from report folder (usually megalinter-reports) before starting the linting process | +| **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**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of disabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | +| [**DISABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of disabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | +| [**DISABLE_ERRORS_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled but not blocking linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | +| [**ENABLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | +| [**ENABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | +| **EXCLUDED_DIRECTORIES** | \[…many values…\] | List of excluded directory basenames. they're 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. Later files take precedence. | +| **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 autofixed sources, even if there are no errors | +| [**FILTER_REGEX_EXCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `none` | Regular expression defining which files will be excluded from linting [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .ex: `.*src/test.*`) | +| [**FILTER_REGEX_INCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `all` | Regular expression defining which files will be processed by linters [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .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` | +| **GIT_AUTHORIZATION_BEARER** | | If set, calls git with **`Authorization: Bearer`+value** | +| **GITHUB_WORKSPACE** | | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` isn't 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`. Use `none` to not generate this file. | +| **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 | +| **MEGALINTER_FILES_TO_LINT** | \[\] | Comma-separated list of files to analyze. Using this variable will bypass other file listing methods | +| **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**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-postcommands.md) | \[\] | Custom bash commands to run after linters | +| [**PRE_COMMANDS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-precommands.md) | \[\] | 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}/megalinter-reports` | Directory for generating report files. Set to `none` to not generate reports | +| [**SECURED_ENV_VARIABLES**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | \[\] | Additional list of secured environment variables to hide when calling linters. | +| [**SECURED_ENV_VARIABLES_DEFAULT**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | MegaLinter & CI platforms sensitive variables | List of secured environment variables to hide when calling linters. [Default list](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md). This is not recommended to override this variable, use SECURED_ENV_VARIABLES | +| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | +| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | +| **SKIP_CLI_LINT_MODES** | \[\] | Comma-separated list of cli_lint_modes. To use if you want to skip linters with some CLI lint modes (ex: `file,project`). Available values: `file`,`cli_lint_mode`,`project`. | +| **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 MegaLinter have all linters enabled by default, but allows to enable only some, or disable only some @@ -863,6 +1014,14 @@ DISABLE_LINTERS: - PHP_PSALM ``` + + + ### Filter linted files If you need to lint only a folder or exclude some files from linting, you can use optional environment parameters `FILTER_REGEX_INCLUDE` and `FILTER_REGEX_EXCLUDE` @@ -874,8 +1033,16 @@ Examples: - Don't lint files inside test and example folders: `FILTER_REGEX_EXCLUDE: (test/|examples/)` - Don't lint javascript files inside test folder: `FILTER_REGEX_EXCLUDE: (test/.*\.js)` -Warning: not applicable with linters using CLI lint mode `project` ([see details](#cli-lint-mode)) +Warning: not applicable with linters using CLI lint mode `project` ([see details](https://github.com/oxsecurity/megalinter/tree/main/docs/config-cli-lint-mode.md)) + + + ### Apply fixes Mega-linter is able to apply fixes provided by linters. To use this capability, you need 3 **env variables** defined at top level @@ -887,25 +1054,51 @@ 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](https://github.com/oxsecurity/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: +#### Apply fixes issues + +You may see **github permission errors**, or workflows not run on the new commit. + +To solve these issues, you can apply one of the following solutions. + +- Method 1: The most secured + - [Create Fine Grained Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token), scoped only on your repository and then copy the PAT value + - [Define environment secret variable](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-an-environment) named **PAT** on your repository, and paste the PAT value + - Update your Github Actions Workflow to add the environment name + +- Method 2: Easier, but any contributor with write access can see your Personal Access Token + - [Create Classic Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token#creating-a-token), then copy the PAT value + - [Define secret variable](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named **PAT** on your repository, and paste the PAT value + +#### Notes - You can use [**Updated sources reporter**](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md) if you don't 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` ```shell megalinter-reports/ ``` -- You may see **github permission errors**, or workflows not run on the new commit. To solve these issues: - - [Create Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token#creating-a-token), then copy the PAT value - - [Define secret variable](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named **PAT** on your repository, and paste the PAT value - + + + ### Linter specific variables See variables related to a single linter behavior in [linters documentations](#supported-linters) + + + ### Pre-commands MegaLinter can run custom commands before running linters (for example, installing an plugin required by one of the linters you use) @@ -918,10 +1111,19 @@ PRE_COMMANDS: cwd: "root" # Will be run at the root of MegaLinter docker image - command: echo "pre-test command has been called" cwd: "workspace" # Will be run at the root of the workspace (usually your repository root) + continue_if_failed: False # Will stop the process if command is failed (return code > 0) - command: pip install flake8-cognitive-complexity venv: flake8 # Will be run within flake8 python virtualenv. There is one virtualenv per python-based linter, with the same name ``` + + + ### Post-commands MegaLinter can run custom commands after running linters (for example, running additional tests) @@ -932,10 +1134,21 @@ Example in `.mega-linter.yml` config file POST_COMMANDS: - command: npm run test cwd: "workspace" # Will be run at the root of the workspace (usually your repository root) + continue_if_failed: False # Will stop the process if command is failed (return code > 0) ``` + + + ### Environment variables security +#### Secured env variables + MegaLinter runs on a docker image and calls the linters via command line to gather their results. If you run it from your **CI/CD pipelines**, the docker image may have **access to your environment variables, that can contain secrets** defined in CI/CD variables. @@ -946,6 +1159,35 @@ Thanks to this feature, you only need to [**trust MegaLinter and its internal py You can add secured variables to the default list using configuration property **SECURED_ENV_VARIABLES** in .mega-linter.yml or in an environment variable (priority is given to ENV variables above `.mega-linter.yml` property). +Values can be: + +- String (ex: `MY_SECRET_VAR`) +- Regular Expression (ex: `(MY.*VAR)`) + +Environment variables are secured for each command line called (linters, plugins, sarif formatter...) except for [PRE_COMMANDS](https://github.com/oxsecurity/megalinter/tree/main/docs/config-precommands.md) , ONLY if you define `secured_env: false` in the command. + +#### Secured configuration examples + +- Example of adding extra secured variables `.mega-linter.yml`: + +```yaml +SECURED_ENV_VARIABLES: + - MY_SECRET_TOKEN + - ANOTHER_VAR_CONTAINING_SENSITIVE_DATA + - OX_API_KEY + - (MY.*VAR) # Regex format +``` + +- Example of adding extra secured variables in CI variables, so they can not be overridden in .mega-linter.yml: + +```shell +SECURED_ENV_VARIABLES=MY_SECRET_TOKEN,ANOTHER_VAR_CONTAINING_SENSITIVE_DATA,OX_API_KEY +``` + +#### Default secured variables + +If you override SECURED_ENV_VARIABLES_DEFAULT, it replaces the default list, so it's better to only define SECURED_ENV_VARIABLES to add them to the default list ! + SECURED_ENV_VARIABLES_DEFAULT contains: - GITHUB_TOKEN @@ -956,6 +1198,7 @@ SECURED_ENV_VARIABLES_DEFAULT contains: - GITLAB_ACCESS_TOKEN_MEGALINTER - GITLAB_CUSTOM_CERTIFICATE - WEBHOOK_REPORTER_BEARER_TOKEN +- NODE_TOKEN - NPM_TOKEN - DOCKER_USERNAME - DOCKER_PASSWORD @@ -963,27 +1206,29 @@ SECURED_ENV_VARIABLES_DEFAULT contains: - GCR_USERNAME - GCR_PASSWORD - SMTP_PASSWORD +- CI_SFDX_HARDIS_GITLAB_TOKEN +- (SFDX_CLIENT_ID_.*) +- (SFDX_CLIENT_KEY_.*) -Example of adding extra secured variables `.mega-linter.yml`: +#### Unhide variables for linters -```yaml -SECURED_ENV_VARIABLES: - - MY_SECRET_TOKEN - - ANOTHER_VAR_CONTAINING_SENSITIVE_DATA - - OX_API_KEY -``` +You can configure exceptions for a specific linter by defining **(linter-key)_UNSECURED_ENV_VARIABLES**. -Example of adding extra secured variables in CI variables, so they can not be overridden in .mega-linter.yml: +Variable names in this list won't be hidden to the linter commands. -```shell -SECURED_ENV_VARIABLES=MY_SECRET_TOKEN,ANOTHER_VAR_CONTAINING_SENSITIVE_DATA,OX_API_KEY +```yaml +TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES: + - GITHUB_TOKEN # Can contain string only, not regex ``` -Notes: - -- If you override SECURED_ENV_VARIABLES_DEFAULT, it replaces the default list, so it's better to only define SECURED_ENV_VARIABLES to add them to the default list ! -- Environment variables are secured for each command line called (linters, plugins, sarif formatter...) except for [PRE_COMMANDS](#pre-commands) , as you might need secured values within their code. - + + + ### CLI lint mode Each linter has a lint mode by default, visible in its MegaLinter documentation ([example](https://megalinter.io/latest/descriptors/repository_trivy/#how-the-linting-is-performed)): @@ -1003,6 +1248,7 @@ Special considerations: - As list of files isn't sent to the linter command, linters using `project` lint mode don't take in account some variables like FILTER_REGEX_INCLUDE and FILTER_REGEX_EXCLUDE. For those linters, you must check their documentation to define ignore configuration as it's awaited by the linter (for example with a `.secretlintignore` file for secretlint) + @@ -1052,22 +1298,23 @@ _The following table doesn't display docker pulls from [MegaLinter v4 & v5 image | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ci_light.md) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/cupcake.md) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/documentation.md) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnet.md) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/go.md) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/java.md) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/javascript.md) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/php.md) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/python.md) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ruby.md) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/rust.md) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/salesforce.md) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/security.md) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/swift.md) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/terraform.md) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ci_light.md) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/cupcake.md) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/documentation.md) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnet.md) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnetweb.md) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/go.md) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/java.md) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/javascript.md) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/php.md) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/python.md) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ruby.md) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/rust.md) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/salesforce.md) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/security.md) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/swift.md) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/terraform.md) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | If you need a new flavor, [post an issue](https://github.com/oxsecurity/megalinter/issues) :wink: @@ -1131,11 +1378,27 @@ description: Build and use your own plugins for MegaLinter, like jupyfmt, nitpic --> ## Plugins -For security reasons, we try to embed in MegaLinter only linters that are widely adopted by open-source community. +For performances and security reasons, we can not embed all linters of the world within MegaLinter. + +But our core architecture allows to build and publish MegaLinter Plugins ! + +### External Plugins Catalog -But any linter can be callable within MegaLinter thanks to the plugin mechanism ! + +| Name | Description | Author | Raw URL | +|:--------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [**jupyfmt**](https://github.com/kpj/jupyfmt#mega-linter-integration) | The uncompromising Jupyter notebook formatter | [Kim Philipp Jablonski](https://github.com/kpj) | [Descriptor](https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml) | +| [**linkcheck**](https://github.com/shiranr/linkcheck) | Plugin to check and validate markdown links exist and working | [Shiran Rubin](https://github.com/shiranr) | [Descriptor](https://raw.githubusercontent.com/shiranr/linkcheck/main/mega-linter-plugin-linkcheck/linkcheck.megalinter-descriptor.yml) | +| [**nitpick**](https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin) | Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects | [W. Augusto Andreoli](https://github.com/andreoliwa) | [Descriptor](https://raw.githubusercontent.com/andreoliwa/nitpick/master/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml) | +| [**mustache**](https://github.com/one-acre-fund/mega-linter-plugin-logstash) | Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) | [Yann Jouanique](https://github.com/Yann-J) | [Descriptor](https://raw.githubusercontent.com/one-acre-fund/mega-linter-plugin-logstash/main/mega-linter-plugin-logstash/logstash.megalinter-descriptor.yml) | +| [**salt-lint**](https://github.com/ssc-services/mega-linter-plugin-salt) | Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. | [Joachim Grimm](https://github.com/grimmjo) | [Descriptor](https://raw.githubusercontent.com/ssc-services/mega-linter-plugin-salt/main/mega-linter-plugin-salt/salt.megalinter-descriptor.yml) | + -### Use plugins +> Note: Using an external plugin means you trust its author + +Submit a Pull Request if you want your plugin to appear here :) + +### Use external plugins Add plugin URLs in `PLUGINS` property of `.mega-linter.yml`. URLs must either begin with "https://" or take the form of "file://\", where \ points to a valid plugin descriptor file. @@ -1145,22 +1408,11 @@ Add plugin URLs in `PLUGINS` property of `.mega-linter.yml`. URLs must either be ```yaml PLUGINS: - - https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml - - https://raw.githubusercontent.com/cookiejar/mega-linter-plugin-cookietemple/main/cookietemple.megalinter-descriptor.yml + - https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml - file://.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml ``` -### Plugins Catalog - -- [jupyfmt](https://github.com/kpj/jupyfmt): The uncompromising Jupyter notebook formatter ([usage](https://github.com/kpj/jupyfmt#mega-linter-integration)) -- [linkcheck](https://github.com/shiranr/linkcheck): Plugin to check and validate markdown links exist and working. -- [nitpick](https://github.com/andreoliwa/nitpick): Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects. ([usage](https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin)) -- [mustache](https://github.com/one-acre-fund/mega-linter-plugin-logstash): Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) -- [salt-lint](https://github.com/ssc-services/mega-linter-plugin-salt): Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. - -Submit a PR if you want your plugin to appear here :) - -### Create plugins +### Create your own plugin You can implement your own descriptors and load them as plugins during MegaLinter runtime @@ -1205,6 +1457,7 @@ description: List of all known articles, blog posts and videos that talk about M | [Writing documentation as a champ in engineering teams](https://rabobank.jobs/en/techblog/coding-architecture/gijs-reijn-writing-documentation-as-a-champ-in-engineering-teams/){target=_blank} | [Gijs Reijn](https://github.com/gijsreyn){target=_blank} | | [Level up your Unity Packages with CI/CD](https://medium.com/@RunningMattress/level-up-your-unity-packages-with-ci-cd-9498d2791211){target=_blank} | [RunningMattress](https://medium.com/@RunningMattress){target=_blank} | | [Use the Workflows JSON schema in your IDE](https://cloud.google.com/workflows/docs/use-workflows-json-schema-with-ide) | [Google Cloud](https://cloud.google.com/) | +| [8 Tools to Scan Node.js Applications for Security Vulnerability](https://geekflare.com/nodejs-security-scanner/) | [Chandan Kumar](https://www.linkedin.com/in/chandank){target=_blank} on [GeekFlare.com](https://geekflare.com/) | ### French articles @@ -1237,7 +1490,7 @@ description: List of all known articles, blog posts and videos that talk about M - [schemastore.org](https://www.schemastore.org/json/){target=_blank} - [r2devops.io](https://r2devops.io/jobs/static_tests/mega_linter/){target=_blank} - [abhith.net](https://www.abhith.net/recommended/){target=_blank} -- [iac-analyzers.dev/](https://iac-analyzers.dev/){target=_blank} + - [my-devops-lab.com](https://www.my-devops-lab.com/tools){target=_blank} ### Linters @@ -1267,7 +1520,6 @@ description: List of all known articles, blog posts and videos that talk about M - [rubocop](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} - [scalafix](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} - [secretlint](https://github.com/secretlint/secretlint#mega-linter){target=_blank} -- [stylelint](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} @@ -1333,7 +1585,7 @@ To help, you can also: - [:star: star the repository](https://github.com/oxsecurity/megalinter/stargazers) - [:beer: offer a beer !](https://github.com/sponsors/nvuillam) - [report problems and request new features](https://github.com/oxsecurity/megalinter/issues) -- [share on twitter](http://twitter.com/intent/tweet/?text=MegaLinter:%2070%20linters%20aggregator%20easy%20to%20use%20for%20all%20your%20projects&url=http://megalinter.io/&via=nvuillam){target=_blank} +- [share on twitter](https://twitter.com/intent/tweet/?text=MegaLinter:%2070%20linters%20aggregator%20easy%20to%20use%20for%20all%20your%20projects&url=http://megalinter.io/&via=nvuillam){target=_blank} @@ -1345,6 +1597,15 @@ description: List of all contributors, websites and linters that help MegaLinter --> ## Special thanks +### Maintainers + +MegaLinter wouldn't be what it is without its great team of maintainers ! + +- [Kurt Von Laven](https://github.com/Kurt-von-Laven) +- [Borja Dominguez](https://github.com/bdovaz) +- [Edouard Choiniere](https://github.com/echoix) +- [Nicolas Vuillamy](https://github.com/nvuillam) (Creator) + ### Contributors @@ -1357,9 +1618,9 @@ MegaLinter obviously would not exist without its linters and libraries, so many ### Super-Linter team -MegaLinter has been built on the ashes of a [rejected Pull Request](https://github.com/github/super-linter/pull/791){target=_blank} on [GitHub Super-Linter](https://github.com/github/super-linter){target=_blank}. +MegaLinter has been built on the ashes of a [rejected Pull Request](https://github.com/super-linter/super-linter/pull/791){target=_blank} on [GitHub Super-Linter](https://github.com/super-linter/super-linter){target=_blank}. -Even if I disagree with their decision to remain in bash, the core team has always been nice and supporting [during the time I was a Super-Linter contributor](https://github.com/github/super-linter/pulls?q=is%3Apr+is%3Aclosed+author%3Anvuillam+review%3Aapproved){target=_blank} :) +Even if I disagree with their decision to remain in bash, the core team has always been nice and supporting [during the time I was a Super-Linter contributor](https://github.com/super-linter/super-linter/pulls?q=is%3Apr+is%3Aclosed+author%3Anvuillam+review%3Aapproved){target=_blank} :) @@ -1379,6 +1640,12 @@ description: Detailed differences between MegaLinter and SuperLinter (performanc The hard-fork of Super-Linter to be rewritten in Python isn't just a language switch: use of python flexibility and libraries allowed to define lots of additional functions described below +### Security + +MegaLinter [hides many environment variables](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) when calling the linters. + +That way you need to trust only MegaLinter core code with your secrets, not the 100+ embedded linters ! + ### Performances - [MegaLinter Flavors](#flavors) allow to use **smaller docker images**, so the pull time is reduced @@ -1391,7 +1658,7 @@ The hard-fork of Super-Linter to be rewritten in Python isn't just a language sw ### Automatically apply formatting and fixes -MegaLinter can [**automatically apply fixes performed by linters**](#apply-fixes), and **push them to the same branch**, or **create a Pull Request** that you can validate +MegaLinter can [**automatically apply fixes performed by linters**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md), and **push them to the same branch**, or **create a Pull Request** that you can validate This is pretty handy, especially for linter errors related to formatting (in that case, you don't have any manual update to perform) @@ -1513,24 +1780,3 @@ For linters less commonly used, MegaLinters offers a plugins architecture so any - Validate descriptor YML files with json schema during build - Automated job to upgrade linters to their latest stable version - -## V4 versus V5 - -- Tool to upgrade user repos configuration files using `npx mega-linter-runner --upgrade` (will upgrade references to _nvuillam/mega-linter_ into _oxsecurity/megalinter_) - -- Migration from github individual repo **nvuillam/mega-linter** to github organization repo **oxsecurity/megalinter** - -- Migration from docker hub space **nvuillam** to space **megalinter** - - Docker images are now **oxsecurity/megalinter** or **oxsecurity/megalinter-FLAVOR** - -- Documentation is now hosted at - -- Version management: Now mega-linter docker images, github action and mega-linter-runner versions are aligned - - **latest** for latest official release - - **beta** for current content of main branch - - **alpha** for current content of alpha branch - - docker image, github action and mega-linter-runner can still be called with exact version number - -- Being more inclusive: rename `master` branch into `main` - -- **IGNORE_GITIGNORED_FILES** parameter default to `true` diff --git a/SECURITY.md b/SECURITY.md index da081bc6460..d5a4a214aeb 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,12 +2,12 @@ ## Supported Versions -Only the latest version (v6) is supported with security updates. +Only the latest version (v7) is supported with security updates. it's recommended to use Docker image and Github action tagged versions: -- v6 -- latest (latest patch of 6.x.x) +- v7 +- latest (latest patch of 7.x.x) You can also use fixed version of 6.x.x, but make sure to have tools like dependabot or renovate to help you to upgrade when new releases are available diff --git a/TEMPLATES/.golangci.yml b/TEMPLATES/.golangci.yml index 5088d6310e4..4e6e87fe846 100644 --- a/TEMPLATES/.golangci.yml +++ b/TEMPLATES/.golangci.yml @@ -1,40 +1,11 @@ ---- -######################### -######################### -## Golang Linter rules ## -######################### -######################### - -# configure golangci-lint -# see https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml -issues: - exclude-rules: - - path: _test\.go - linters: - - dupl - - gosec - - goconst linters: + disable-all: true enable: - - golint - - gosec - - unconvert - - gocyclo - - goconst - - goimports - - maligned + - gofmt - gocritic -linters-settings: - errcheck: - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - gocyclo: - # minimal code complexity to report, 30 by default - min-complexity: 15 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true + - gosimple + - govet + - ineffassign + - staticcheck + - typecheck + - unused \ No newline at end of file diff --git a/TEMPLATES/.grype.yaml b/TEMPLATES/.grype.yaml new file mode 100644 index 00000000000..b5d9fe63277 --- /dev/null +++ b/TEMPLATES/.grype.yaml @@ -0,0 +1,145 @@ +# enable/disable checking for application updates on startup +# same as GRYPE_CHECK_FOR_APP_UPDATE env var +# check-for-app-update: true + +# allows users to specify which image source should be used to generate the sbom +# valid values are: registry, docker, podman +# same as GRYPE_DEFAULT_IMAGE_PULL_SOURCE env var +# default-image-pull-source: "" + +# same as --name; set the name of the target being analyzed +# name: "" + +# upon scanning, if a severity is found at or above the given severity then the return code will be 1 +# default is unset which will skip this validation (options: negligible, low, medium, high, critical) +# same as --fail-on ; GRYPE_FAIL_ON_SEVERITY env var +fail-on-severity: "high" + +# the output format of the vulnerability report (options: table, json, cyclonedx) +# same as -o ; GRYPE_OUTPUT env var +# output: "table" + +# suppress all output (except for the vulnerability list) +# same as -q ; GRYPE_QUIET env var +# quiet: false + +# write output report to a file (default is to write to stdout) +# same as --file; GRYPE_FILE env var +# file: "" + +# a list of globs to exclude from scanning, for example: +# exclude: +# - '/etc/**' +# - './out/**/*.json' +# same as --exclude ; GRYPE_EXCLUDE env var +# exclude: [] + +# os and/or architecture to use when referencing container images (e.g. "windows/armv6" or "arm64") +# same as --platform; GRYPE_PLATFORM env var +# platform: "" + +# If using SBOM input, automatically generate CPEs when packages have none +# add-cpes-if-none: false + +# Explicitly specify a linux distribution to use as : like alpine:3.10 +# distro: + +# external-sources: +# enable: false +# maven: +# search-upstream-by-sha1: true +# base-url: https://search.maven.org/solrsearch/select + +# db: + # check for database updates on execution + # same as GRYPE_DB_AUTO_UPDATE env var + # auto-update: true + + # location to write the vulnerability database cache + # same as GRYPE_DB_CACHE_DIR env var + # cache-dir: "$XDG_CACHE_HOME/grype/db" + + # URL of the vulnerability database + # same as GRYPE_DB_UPDATE_URL env var + # update-url: "https://toolbox-data.anchore.io/grype/databases/listing.json" + + # it ensures db build is no older than the max-allowed-built-age + # set to false to disable check + # validate-age: true + + # Max allowed age for vulnerability database, + # age being the time since it was built + # Default max age is 120h (or five days) + # max-allowed-built-age: "120h" + +# search: + # the search space to look for packages (options: all-layers, squashed) + # same as -s ; GRYPE_SEARCH_SCOPE env var + # scope: "squashed" + + # search within archives that do contain a file index to search against (zip) + # note: for now this only applies to the java package cataloger + # same as GRYPE_PACKAGE_SEARCH_INDEXED_ARCHIVES env var + # indexed-archives: true + + # search within archives that do not contain a file index to search against (tar, tar.gz, tar.bz2, etc) + # note: enabling this may result in a performance impact since all discovered compressed tars will be decompressed + # note: for now this only applies to the java package cataloger + # same as GRYPE_PACKAGE_SEARCH_UNINDEXED_ARCHIVES env var + # unindexed-archives: false + +# options when pulling directly from a registry via the "registry:" scheme +# registry: + # skip TLS verification when communicating with the registry + # same as GRYPE_REGISTRY_INSECURE_SKIP_TLS_VERIFY env var + # insecure-skip-tls-verify: false + # use http instead of https when connecting to the registry + # same as GRYPE_REGISTRY_INSECURE_USE_HTTP env var + # insecure-use-http: false + + # credentials for specific registries + # auth: + # - # the URL to the registry (e.g. "docker.io", "localhost:5000", etc.) + # same as GRYPE_REGISTRY_AUTH_AUTHORITY env var + # authority: "" + # same as GRYPE_REGISTRY_AUTH_USERNAME env var + # username: "" + # same as GRYPE_REGISTRY_AUTH_PASSWORD env var + # password: "" + # note: token and username/password are mutually exclusive + # same as GRYPE_REGISTRY_AUTH_TOKEN env var + # token: "" + # - ... # note, more credentials can be provided via config file only + +# log: + # use structured logging + # same as GRYPE_LOG_STRUCTURED env var + # structured: false + + # the log level; note: detailed logging suppress the ETUI + # same as GRYPE_LOG_LEVEL env var + # Uses logrus logging levels: https://github.com/sirupsen/logrus#level-logging + # level: "error" + + # location to write the log file (default is not to have a log file) + # same as GRYPE_LOG_FILE env var + # file: "" + +# match: + # sets the matchers below to use cpes when trying to find + # vulnerability matches. The stock matcher is the default + # when no primary matcher can be identified + # java: + # using-cpes: true + # python: + # using-cpes: true + # javascript: + # using-cpes: true + # ruby: + # using-cpes: true + # dotnet: + # using-cpes: true + # golang: + # using-cpes: true + # stock: + # using-cpes: true \ No newline at end of file diff --git a/TEMPLATES/.hadolint.yml b/TEMPLATES/.hadolint.yaml similarity index 100% rename from TEMPLATES/.hadolint.yml rename to TEMPLATES/.hadolint.yaml diff --git a/TEMPLATES/.tflint.hcl b/TEMPLATES/.tflint.hcl index dcd9f9ac3e8..413907016be 100644 --- a/TEMPLATES/.tflint.hcl +++ b/TEMPLATES/.tflint.hcl @@ -6,7 +6,7 @@ config { plugin "aws" { enabled = true - version = "0.17.0" + version = "0.23.1" source = "github.com/terraform-linters/tflint-ruleset-aws" deep_check = false } diff --git a/TEMPLATES/mega-linter.yml b/TEMPLATES/mega-linter.yml index f71c38f3d0d..3f5f69a921b 100644 --- a/TEMPLATES/mega-linter.yml +++ b/TEMPLATES/mega-linter.yml @@ -23,6 +23,12 @@ jobs: build: name: MegaLinter runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write steps: # Git Checkout - name: Checkout Code @@ -36,7 +42,7 @@ jobs: id: ml # You can override MegaLinter flavor used to have faster performances # More info at https://megalinter.io/flavors/ - uses: oxsecurity/megalinter@v6 + uses: oxsecurity/megalinter@v7 env: # All available variables are described in documentation # https://megalinter.io/configuration/ diff --git a/action.yml b/action.yml index 55faf834c6c..cb064d142f0 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://oxsecurity/megalinter:v6.22.2" + image: "docker://oxsecurity/megalinter:v7.1.0" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/docs/all_linters.md b/docs/all_linters.md index 048f8448fe1..9438ca44a2c 100644 --- a/docs/all_linters.md +++ b/docs/all_linters.md @@ -3,108 +3,113 @@ # References -| Linter | Supported Platforms | Version | License | Popularity | Descriptors | Ref | URL | -|:--------------------------------------------------------------------------------------------------------|:------------------------------:|:-------------:|:-------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| -| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | linux/amd64
linux/arm64 | 1.6.24 | [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} | linux/amd64
linux/arm64 | 6.16.0 | [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} | linux/amd64
linux/arm64 | N/A | [MIT](licenses/arm-ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk){target=_blank} | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Repository](https://github.com/Azure/arm-ttk){target=_blank} | -| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | linux/amd64
linux/arm64 | 1.7.5 | [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} | linux/amd64
linux/arm64 | 5.2.15 | | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | -| [**bicep_linter**](https://github.com/Azure/bicep){target=_blank} | linux/amd64
linux/arm64 | 0.17.1 | [MIT](licenses/bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep){target=_blank} | [BICEP](descriptors/bicep_bicep_linter.md) | :white_circle: | [Repository](https://github.com/Azure/bicep){target=_blank} | -| [**black**](https://github.com/psf/black){target=_blank} | linux/amd64
linux/arm64 | 23.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} | linux/amd64
linux/arm64 | 0.77.5 | [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} | -| [**checkmake**](https://github.com/mrtazz/checkmake){target=_blank} | linux/amd64 | 0.2.0 | [MIT](licenses/checkmake.md) | [![GitHub stars](https://img.shields.io/github/stars/mrtazz/checkmake?cacheSeconds=3600)](https://github.com/mrtazz/checkmake){target=_blank} | [MAKEFILE](descriptors/makefile_checkmake.md) | :white_circle: | [Repository](https://github.com/mrtazz/checkmake){target=_blank} | -| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | linux/amd64
linux/arm64 | 2.3.239 | [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} | [REPOSITORY](descriptors/repository_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | -| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | linux/amd64
linux/arm64 | 10.11.0 | [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} | linux/amd64 | 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} | linux/amd64
linux/arm64 | 0.1.69 | [Other](licenses/clippy.md) | [![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} | linux/amd64
windows/amd64 | 2023.04.14 | [EPL-1.0](licenses/clj-kondo.md) | [![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} | -| [**cljstyle**](https://github.com/greglook/cljstyle){target=_blank} | | 0.15.0 | | [![GitHub stars](https://img.shields.io/github/stars/greglook/cljstyle?cacheSeconds=3600)](https://github.com/greglook/cljstyle){target=_blank} | [CLOJURE](descriptors/clojure_cljstyle.md) | :heart: | [MegaLinter reference](https://github.com/greglook/cljstyle/blob/main/doc/integrations.md){target=_blank} | -| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | linux/amd64
linux/arm64 | 5.2.11 | [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} | linux/amd64
linux/arm64 | 1.6.1 | [Other](licenses/cpplint.md) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint){target=_blank} | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Repository](https://github.com/cpplint/cpplint){target=_blank} | -| [**csharpier**](https://github.com/belav/csharpier){target=_blank} | linux/amd64
linux/arm64 | 0.24.2 | [MIT](licenses/csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier){target=_blank} | [CSHARP](descriptors/csharp_csharpier.md) | :white_circle: | [Repository](https://github.com/belav/csharpier){target=_blank} | -| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | linux/amd64
linux/arm64 | 6.31.1 | [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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 0.7.104 | [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} | -| [**djlint**](https://github.com/Riverside-Healthcare/djlint){target=_blank} | linux/amd64
linux/arm64 | 1.27.2 | [GPL-3.0](licenses/djlint.md) | [![GitHub stars](https://img.shields.io/github/stars/Riverside-Healthcare/djlint?cacheSeconds=3600)](https://github.com/Riverside-Healthcare/djlint){target=_blank} | [HTML](descriptors/html_djlint.md) | :heart: | [MegaLinter reference](https://djlint.com/docs/integrations/#megalinter){target=_blank} | -| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | linux/amd64
linux/arm64 | 3.3.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} | linux/amd64
linux/arm64 | 6.0.408 | [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} | linux/amd64
linux/arm64 | 1.2.0 | [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} | linux/amd64
linux/arm64 | 2.7.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} | linux/amd64
linux/arm64 | 8.40.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} | linux/amd64
linux/arm64 | 2.8.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} | linux/amd64
linux/arm64 | 6.0.0 | [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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 2.38.5 | [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/gitleaks/gitleaks){target=_blank} | linux/amd64
linux/arm64 | 8.16.3 | [MIT](licenses/gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks){target=_blank} | [REPOSITORY](descriptors/repository_gitleaks.md) | :white_circle: | [Repository](https://github.com/gitleaks/gitleaks){target=_blank} | -| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | linux/amd64
linux/arm64 | 1.52.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} | -| [**graphql-schema-linter**](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 2.12.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} | -| [**helm**](https://github.com/helm/helm){target=_blank} | linux/amd64
linux/arm64 | 3.10.2 | [Apache-2.0](licenses/helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm){target=_blank} | [KUBERNETES](descriptors/kubernetes_helm.md) | :white_circle: | [Repository](https://github.com/helm/helm){target=_blank} | -| [**htmlhint**](https://github.com/htmlhint/HTMLHint){target=_blank} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 5.12.0 | [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} | linux/amd64
linux/arm64 | 3.5.9 | [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/prantlf/jsonlint){target=_blank} | linux/amd64
linux/arm64 | 14.0.3 | [MIT](licenses/jsonlint.md) | [![GitHub stars](https://img.shields.io/github/stars/prantlf/jsonlint?cacheSeconds=3600)](https://github.com/prantlf/jsonlint){target=_blank} | [JSON](descriptors/json_jsonlint.md) | :white_circle: | [Repository](https://github.com/prantlf/jsonlint){target=_blank} | -| [**kics**](https://github.com/checkmarx/kics){target=_blank} | linux/amd64
linux/arm64 | 1.7.1 | [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} | linux/amd64
linux/arm64 | 0.49.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} | linux/amd64
linux/arm64 | 0.5.0 | [Apache-2.0](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} | -| [**kubescape**](https://github.com/kubescape/kubescape){target=_blank} | linux/amd64
linux/arm64 | N/A | [Apache-2.0](licenses/kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape){target=_blank} | [KUBERNETES](descriptors/kubernetes_kubescape.md) | :white_circle: | [Repository](https://github.com/kubescape/kubescape){target=_blank} | -| [**lintr**](https://github.com/r-lib/lintr){target=_blank} | linux/amd64
linux/arm64 | N/A | [Other](licenses/lintr.md) | [![GitHub stars](https://img.shields.io/github/stars/r-lib/lintr?cacheSeconds=3600)](https://github.com/r-lib/lintr){target=_blank} | [R](descriptors/r_lintr.md) | :heart: | [MegaLinter reference](https://cran.r-project.org/web/packages/lintr/vignettes/continuous-integration.html){target=_blank} | -| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | linux/amd64
linux/arm64 | 1.1.0 | [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} | linux/amd64
linux/arm64 | 3.11.2 | [ISC](licenses/markdown-link-check.md) | [![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} | linux/amd64
linux/arm64 | 1.4.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} | linux/amd64
linux/arm64 | 0.34.0 | [MIT](licenses/markdownlint.md) | [![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} | -| [**mypy**](https://github.com/python/mypy){target=_blank} | linux/amd64
linux/arm64 | 1.3.0 | [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} | linux/amd64
linux/arm64 | 11.1.1 | [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} | -| [**npm-package-json-lint**](https://github.com/tclindner/npm-package-json-lint){target=_blank} | linux/amd64
linux/arm64 | 6.4.0 | [MIT](licenses/npm-package-json-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/tclindner/npm-package-json-lint?cacheSeconds=3600)](https://github.com/tclindner/npm-package-json-lint){target=_blank} | [JSON](descriptors/json_npm_package_json_lint.md) | :heart: | [MegaLinter reference](https://npmpackagejsonlint.org/docs/integrations#megalinter){target=_blank} | -| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | linux/amd64
linux/arm64 | 1.150 | [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} | linux/amd64
linux/arm64 | 3.7.2 | [BSD-3-Clause](licenses/phpcs.md) | [![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} | linux/amd64
linux/arm64 | 5.5 | [MIT](licenses/phplint.md) | [![GitHub stars](https://img.shields.io/github/stars/overtrue/phplint?cacheSeconds=3600)](https://github.com/overtrue/phplint){target=_blank} | [PHP](descriptors/php_phplint.md) | :white_circle: | [Repository](https://github.com/overtrue/phplint){target=_blank} | -| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | linux/amd64
linux/arm64 | 1.10.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} | -| [**pmd**](https://github.com/pmd/pmd){target=_blank} | linux/amd64
linux/arm64 | 6.55.0 | [Apache-2.0](licenses/pmd.md) | [![GitHub stars](https://img.shields.io/github/stars/pmd/pmd?cacheSeconds=3600)](https://github.com/pmd/pmd){target=_blank} | [JAVA](descriptors/java_pmd.md) | :heart: | [MegaLinter reference](https://pmd.sourceforge.io/pmd-6.55.0/pmd_userdocs_tools_ci.html){target=_blank} | -| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | linux/amd64
linux/arm64 | 7.3.4 | [MIT](licenses/powershell.md) | [![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} | -| [**powershell_formatter**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | linux/amd64
linux/arm64 | 7.3.4 | [MIT](licenses/powershell_formatter.md) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | [POWERSHELL](descriptors/powershell_powershell_formatter.md) | :white_circle: | [Repository](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | -| [**prettier**](https://github.com/prettier/prettier){target=_blank} | linux/amd64
linux/arm64 | 2.8.8 | [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} | -| [**proselint**](https://github.com/amperser/proselint){target=_blank} | linux/amd64
linux/arm64 | 0.13.0 | [BSD-3-Clause](licenses/proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint){target=_blank} | [SPELL](descriptors/spell_proselint.md) | :white_circle: | [Repository](https://github.com/amperser/proselint){target=_blank} | -| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | linux/amd64
linux/arm64 | 0.44.0 | | [![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} | linux/amd64
linux/arm64 | Psalm.5.11.0@ | [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/puppetlabs/puppet-lint){target=_blank} | linux/amd64
linux/arm64 | 4.0.0 | [MIT](licenses/puppet-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint){target=_blank} | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/puppetlabs/puppet-lint){target=_blank} | -| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | linux/amd64
linux/arm64 | 2.17.4 | [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} | -| [**pyright**](https://github.com/microsoft/pyright){target=_blank} | linux/amd64
linux/arm64 | 1.1.308 | | [![GitHub stars](https://img.shields.io/github/stars/microsoft/pyright?cacheSeconds=3600)](https://github.com/microsoft/pyright){target=_blank} | [PYTHON](descriptors/python_pyright.md) | :white_circle: | [Repository](https://github.com/microsoft/pyright){target=_blank} | -| [**raku**](https://github.com/rakudo/rakudo){target=_blank} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 1.3.1 | [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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 6.1.2 | | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck){target=_blank} | [RST](descriptors/rst_rstcheck.md) | :heart: | [MegaLinter reference](https://rstcheck.readthedocs.io/en/latest/usage/integration/#use-with-mega-linter){target=_blank} | -| [**rstfmt**](https://github.com/dzhu/rstfmt){target=_blank} | linux/amd64
linux/arm64 | 0.0.13 | | | [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} | linux/amd64
linux/arm64 | 1.51.0 | [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} | -| [**ruff**](https://github.com/charliermarsh/ruff){target=_blank} | | 0.0.267 | [MIT](licenses/ruff.md) | [![GitHub stars](https://img.shields.io/github/stars/charliermarsh/ruff?cacheSeconds=3600)](https://github.com/charliermarsh/ruff){target=_blank} | [PYTHON](descriptors/python_ruff.md) | :white_circle: | [Repository](https://github.com/charliermarsh/ruff){target=_blank} | -| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | linux/amd64
linux/arm64 | 0.10.4 | [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} | linux/amd64
linux/arm64 | 0.60.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} | linux/amd64
linux/arm64 | 6.2.3 | [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} | linux/amd64
linux/arm64 | 1.21.0 | | [![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} | linux/amd64
linux/arm64 | 3.12.0 | [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} | linux/amd64
linux/arm64 | 3.12.0 | [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} | linux/amd64
linux/arm64 | 3.12.0 | [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} | linux/amd64
linux/arm64 | 0.9.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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 0.8.4 | | [![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} | linux/amd64
linux/arm64 | 7.25.4 | [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} | linux/amd64
linux/arm64 | 6.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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 2.1.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} | linux/amd64
linux/arm64 | 17.0.0 | [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} | linux/amd64
linux/arm64 | 15.6.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} | linux/amd64
linux/arm64 | 0.52.2 | [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} | linux/amd64
linux/arm64 | 0.80.0 | | [![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} | linux/amd64
linux/arm64 | 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} | linux/amd64
linux/arm64 | 1.4.6 | [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} | linux/amd64
linux/arm64 | 0.45.11 | [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} | linux/amd64
linux/arm64 | 1.18.1 | [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} | linux/amd64
linux/arm64 | 0.46.1 | | [![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} | linux/amd64
linux/arm64 | 0.41.0 | [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} | linux/amd64
linux/arm64 | 1.15.3.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} | linux/amd64
linux/arm64 | 2.0.0 | | [![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} | -| [**vale**](https://github.com/errata-ai/vale){target=_blank} | | 2.26.0 | | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale){target=_blank} | [SPELL](descriptors/spell_vale.md) | :white_circle: | [Repository](https://github.com/errata-ai/vale){target=_blank} | -| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | linux/amd64
linux/arm64 | 21004 | | | [XML](descriptors/xml_xmllint.md) | :white_circle: | [Web Site](http://xmlsoft.org/xmllint.html){target=_blank} | -| [**yamllint**](https://github.com/adrienverge/yamllint){target=_blank} | linux/amd64
linux/arm64 | 1.31.0 | [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} | +| Linter | Version | License | Popularity | Descriptors | Ref | URL | +|:--------------------------------------------------------------------------------------------------------|:-------------:|:-------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| +| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | 1.6.25 | [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.17.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 | [MIT](licenses/arm-ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk){target=_blank} | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Repository](https://github.com/Azure/arm-ttk){target=_blank} | +| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | 1.7.5 | [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.2.15 | | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | +| [**bicep_linter**](https://github.com/Azure/bicep){target=_blank} | 0.19.5 | [MIT](licenses/bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep){target=_blank} | [BICEP](descriptors/bicep_bicep_linter.md) | :white_circle: | [Repository](https://github.com/Azure/bicep){target=_blank} | +| [**black**](https://github.com/psf/black){target=_blank} | 23.7.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.78.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} | +| [**checkmake**](https://github.com/mrtazz/checkmake){target=_blank} | 0.2.0 | [MIT](licenses/checkmake.md) | [![GitHub stars](https://img.shields.io/github/stars/mrtazz/checkmake?cacheSeconds=3600)](https://github.com/mrtazz/checkmake){target=_blank} | [MAKEFILE](descriptors/makefile_checkmake.md) | :white_circle: | [Repository](https://github.com/mrtazz/checkmake){target=_blank} | +| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | 2.3.326 | [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} | [REPOSITORY](descriptors/repository_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | +| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | 10.12.1 | [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.71 | [Other](licenses/clippy.md) | [![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} | 2023.07.13 | [EPL-1.0](licenses/clj-kondo.md) | [![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} | +| [**cljstyle**](https://github.com/greglook/cljstyle){target=_blank} | 0.15.0 | [EPL-1.0](licenses/cljstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/greglook/cljstyle?cacheSeconds=3600)](https://github.com/greglook/cljstyle){target=_blank} | [CLOJURE](descriptors/clojure_cljstyle.md) | :heart: | [MegaLinter reference](https://github.com/greglook/cljstyle/blob/main/doc/integrations.md){target=_blank} | +| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | 5.2.11 | [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.1 | [Other](licenses/cpplint.md) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint){target=_blank} | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Repository](https://github.com/cpplint/cpplint){target=_blank} | +| [**csharpier**](https://github.com/belav/csharpier){target=_blank} | 0.25.0 | [MIT](licenses/csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier){target=_blank} | [CSHARP](descriptors/csharp_csharpier.md) | :white_circle: | [Repository](https://github.com/belav/csharpier){target=_blank} | +| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | 6.31.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} | 1.0.11 | [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} | +| [**djlint**](https://github.com/Riverside-Healthcare/djlint){target=_blank} | 1.31.1 | [GPL-3.0](licenses/djlint.md) | [![GitHub stars](https://img.shields.io/github/stars/Riverside-Healthcare/djlint?cacheSeconds=3600)](https://github.com/Riverside-Healthcare/djlint){target=_blank} | [HTML](descriptors/html_djlint.md) | :heart: | [MegaLinter reference](https://djlint.com/docs/integrations/#megalinter){target=_blank} | +| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | 3.3.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} | 6.0.412 | [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} | 1.2.0 | [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.7.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.45.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.9.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} | 6.0.0 | [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.38.5 | [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/gitleaks/gitleaks){target=_blank} | 8.17.0 | [MIT](licenses/gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks){target=_blank} | [REPOSITORY](descriptors/repository_gitleaks.md) | :white_circle: | [Repository](https://github.com/gitleaks/gitleaks){target=_blank} | +| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | 1.53.3 | [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} | +| [**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} | +| [**grype**](https://github.com/anchore/grype){target=_blank} | 0.63.1 | [Apache-2.0](licenses/grype.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype){target=_blank} | [REPOSITORY](descriptors/repository_grype.md) | :white_circle: | [Repository](https://github.com/anchore/grype){target=_blank} | +| [**hadolint**](https://github.com/hadolint/hadolint){target=_blank} | 2.12.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} | +| [**helm**](https://github.com/helm/helm){target=_blank} | 3.10.2 | [Apache-2.0](licenses/helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm){target=_blank} | [KUBERNETES](descriptors/kubernetes_helm.md) | :white_circle: | [Repository](https://github.com/helm/helm){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.12.0 | [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.5.9 | [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/prantlf/jsonlint){target=_blank} | 14.0.3 | [MIT](licenses/jsonlint.md) | [![GitHub stars](https://img.shields.io/github/stars/prantlf/jsonlint?cacheSeconds=3600)](https://github.com/prantlf/jsonlint){target=_blank} | [JSON](descriptors/json_jsonlint.md) | :white_circle: | [Repository](https://github.com/prantlf/jsonlint){target=_blank} | +| [**kics**](https://github.com/checkmarx/kics){target=_blank} | 1.7.3 | [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} | [REPOSITORY](descriptors/repository_kics.md) | :heart: | [MegaLinter reference](https://docs.kics.io/latest/integrations/){target=_blank} | +| [**ktlint**](https://github.com/pinterest/ktlint){target=_blank} | 0.50.0 | [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.6.3 | [Apache-2.0](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} | +| [**kubescape**](https://github.com/kubescape/kubescape){target=_blank} | 2.3.6 | [Apache-2.0](licenses/kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape){target=_blank} | [KUBERNETES](descriptors/kubernetes_kubescape.md) | :white_circle: | [Repository](https://github.com/kubescape/kubescape){target=_blank} | +| [**lintr**](https://github.com/r-lib/lintr){target=_blank} | N/A | [Other](licenses/lintr.md) | [![GitHub stars](https://img.shields.io/github/stars/r-lib/lintr?cacheSeconds=3600)](https://github.com/r-lib/lintr){target=_blank} | [R](descriptors/r_lintr.md) | :heart: | [MegaLinter reference](https://cran.r-project.org/web/packages/lintr/vignettes/continuous-integration.html){target=_blank} | +| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | 1.1.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} | +| [**lychee**](https://github.com/lycheeverse/lychee){target=_blank} | 0.13.0 | [Apache-2.0](licenses/lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee){target=_blank} | [SPELL](descriptors/spell_lychee.md) | :white_circle: | [Repository](https://github.com/lycheeverse/lychee){target=_blank} | +| [**markdown-link-check**](https://github.com/tcort/markdown-link-check){target=_blank} | 3.11.2 | [ISC](licenses/markdown-link-check.md) | [![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.4.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.35.0 | [MIT](licenses/markdownlint.md) | [![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} | +| [**mypy**](https://github.com/python/mypy){target=_blank} | 1.4.1 | [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} | 11.1.1 | [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} | +| [**npm-package-json-lint**](https://github.com/tclindner/npm-package-json-lint){target=_blank} | 7.0.0 | [MIT](licenses/npm-package-json-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/tclindner/npm-package-json-lint?cacheSeconds=3600)](https://github.com/tclindner/npm-package-json-lint){target=_blank} | [JSON](descriptors/json_npm_package_json_lint.md) | :heart: | [MegaLinter reference](https://npmpackagejsonlint.org/docs/integrations#megalinter){target=_blank} | +| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | 1.150 | [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.2 | [BSD-3-Clause](licenses/phpcs.md) | [![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} | 9.0.4 | [MIT](licenses/phplint.md) | [![GitHub stars](https://img.shields.io/github/stars/overtrue/phplint?cacheSeconds=3600)](https://github.com/overtrue/phplint){target=_blank} | [PHP](descriptors/php_phplint.md) | :white_circle: | [Repository](https://github.com/overtrue/phplint){target=_blank} | +| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | 1.10.25 | [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} | +| [**pmd**](https://github.com/pmd/pmd){target=_blank} | 6.55.0 | [Apache-2.0](licenses/pmd.md) | [![GitHub stars](https://img.shields.io/github/stars/pmd/pmd?cacheSeconds=3600)](https://github.com/pmd/pmd){target=_blank} | [JAVA](descriptors/java_pmd.md) | :heart: | [MegaLinter reference](https://pmd.sourceforge.io/pmd-6.55.0/pmd_userdocs_tools_ci.html){target=_blank} | +| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.3.6 | [MIT](licenses/powershell.md) | [![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} | +| [**powershell_formatter**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.3.6 | [MIT](licenses/powershell_formatter.md) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | [POWERSHELL](descriptors/powershell_powershell_formatter.md) | :white_circle: | [Repository](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | +| [**prettier**](https://github.com/prettier/prettier){target=_blank} | 3.0.0 | [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} | +| [**proselint**](https://github.com/amperser/proselint){target=_blank} | 0.13.0 | [BSD-3-Clause](licenses/proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint){target=_blank} | [SPELL](descriptors/spell_proselint.md) | :white_circle: | [Repository](https://github.com/amperser/proselint){target=_blank} | +| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | 0.45.0 | [MIT](licenses/protolint.md) | [![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.13.1@ | [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/puppetlabs/puppet-lint){target=_blank} | 4.0.0 | [MIT](licenses/puppet-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint){target=_blank} | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/puppetlabs/puppet-lint){target=_blank} | +| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | 2.17.4 | [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} | +| [**pyright**](https://github.com/microsoft/pyright){target=_blank} | 1.1.317 | [Other](licenses/pyright.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/pyright?cacheSeconds=3600)](https://github.com/microsoft/pyright){target=_blank} | [PYTHON](descriptors/python_pyright.md) | :white_circle: | [Repository](https://github.com/microsoft/pyright){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} | 1.3.2 | [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 | [Unlicense](licenses/rst-lint.md) | [![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.1.2 | [MIT](licenses/rstcheck.md) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck){target=_blank} | [RST](descriptors/rst_rstcheck.md) | :heart: | [MegaLinter reference](https://rstcheck.readthedocs.io/en/latest/usage/integration/#use-with-mega-linter){target=_blank} | +| [**rstfmt**](https://github.com/dzhu/rstfmt){target=_blank} | 0.0.13 | | | [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.54.2 | [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} | +| [**ruff**](https://github.com/charliermarsh/ruff){target=_blank} | 0.0.278 | [MIT](licenses/ruff.md) | [![GitHub stars](https://img.shields.io/github/stars/charliermarsh/ruff?cacheSeconds=3600)](https://github.com/charliermarsh/ruff){target=_blank} | [PYTHON](descriptors/python_ruff.md) | :white_circle: | [Repository](https://github.com/charliermarsh/ruff){target=_blank} | +| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | 0.11.0 | [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.60.0 | [MIT](licenses/scss-lint.md) | [![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} | 7.0.3 | [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} | 1.32.0 | [LGPL-2.1](licenses/semgrep.md) | [![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} | 3.14.0 | [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} | 3.14.0 | [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} | 3.14.0 | [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.9.0 | [GPL-3.0](licenses/shellcheck.md) | [![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.7.0 | [BSD-3-Clause](licenses/shfmt.md) | [![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.8.4 | [MIT](licenses/snakefmt.md) | [![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.30.1 | [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} | 6.8.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 | [MIT](licenses/sql-lint.md) | [![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} | 2.1.2 | [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} | 17.1.0 | [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) | :white_circle: | [Repository](https://github.com/standard/standard){target=_blank} | +| [**stylelint**](https://github.com/stylelint/stylelint){target=_blank} | 15.10.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) | :white_circle: | [Repository](https://github.com/stylelint/stylelint){target=_blank} | +| [**swiftlint**](https://github.com/realm/SwiftLint){target=_blank} | 0.52.4 | [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} | 0.85.0 | [Apache-2.0](licenses/syft.md) | [![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.5.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.48.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/tenable/terrascan){target=_blank} | 1.18.1 | [Apache-2.0](licenses/terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan){target=_blank} | [TERRAFORM](descriptors/terraform_terrascan.md) | :white_circle: | [Repository](https://github.com/tenable/terrascan){target=_blank} | +| [**tflint**](https://github.com/terraform-linters/tflint){target=_blank} | 0.47.0 | [MPL-2.0](licenses/tflint.md) | [![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} | 0.43.1 | [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} | +| [**trivy-sbom**](https://github.com/aquasecurity/trivy){target=_blank} | 0.43.1 | | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy){target=_blank} | [REPOSITORY](descriptors/repository_trivy_sbom.md) | :white_circle: | [Repository](https://github.com/aquasecurity/trivy){target=_blank} | +| [**trufflehog**](https://github.com/trufflesecurity/trufflehog){target=_blank} | 3.44.0 | | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog){target=_blank} | [REPOSITORY](descriptors/repository_trufflehog.md) | :white_circle: | [Repository](https://github.com/trufflesecurity/trufflehog){target=_blank} | +| [**ts-standard**](https://github.com/standard/ts-standard){target=_blank} | 12.0.2 | | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard){target=_blank} | [TYPESCRIPT](descriptors/typescript_ts_standard.md) | :white_circle: | [Repository](https://github.com/standard/ts-standard){target=_blank} | +| [**tsqllint**](https://github.com/tsqllint/tsqllint){target=_blank} | 1.15.3.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} | 2.0.0 | [MIT](licenses/v8r.md) | [![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} | +| [**vale**](https://github.com/errata-ai/vale){target=_blank} | 2.28.0 | [MIT](licenses/vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale){target=_blank} | [SPELL](descriptors/spell_vale.md) | :white_circle: | [Repository](https://github.com/errata-ai/vale){target=_blank} | +| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | 21004 | | | [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.32.0 | [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/articles.md b/docs/articles.md index 668317da082..a04269debd2 100644 --- a/docs/articles.md +++ b/docs/articles.md @@ -29,6 +29,7 @@ description: List of all known articles, blog posts and videos that talk about M | [Writing documentation as a champ in engineering teams](https://rabobank.jobs/en/techblog/coding-architecture/gijs-reijn-writing-documentation-as-a-champ-in-engineering-teams/){target=_blank} | [Gijs Reijn](https://github.com/gijsreyn){target=_blank} | | [Level up your Unity Packages with CI/CD](https://medium.com/@RunningMattress/level-up-your-unity-packages-with-ci-cd-9498d2791211){target=_blank} | [RunningMattress](https://medium.com/@RunningMattress){target=_blank} | | [Use the Workflows JSON schema in your IDE](https://cloud.google.com/workflows/docs/use-workflows-json-schema-with-ide) | [Google Cloud](https://cloud.google.com/) | +| [8 Tools to Scan Node.js Applications for Security Vulnerability](https://geekflare.com/nodejs-security-scanner/) | [Chandan Kumar](https://www.linkedin.com/in/chandank){target=_blank} on [GeekFlare.com](https://geekflare.com/) | ## French articles @@ -61,7 +62,7 @@ description: List of all known articles, blog posts and videos that talk about M - [schemastore.org](https://www.schemastore.org/json/){target=_blank} - [r2devops.io](https://r2devops.io/jobs/static_tests/mega_linter/){target=_blank} - [abhith.net](https://www.abhith.net/recommended/){target=_blank} -- [iac-analyzers.dev/](https://iac-analyzers.dev/){target=_blank} + - [my-devops-lab.com](https://www.my-devops-lab.com/tools){target=_blank} ## Linters @@ -91,7 +92,6 @@ description: List of all known articles, blog posts and videos that talk about M - [rubocop](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} - [scalafix](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} - [secretlint](https://github.com/secretlint/secretlint#mega-linter){target=_blank} -- [stylelint](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} diff --git a/docs/assets/icons/dotnetweb.ico b/docs/assets/icons/dotnetweb.ico new file mode 100644 index 00000000000..bfe873eb228 Binary files /dev/null and b/docs/assets/icons/dotnetweb.ico differ diff --git a/docs/assets/icons/swift.ico b/docs/assets/icons/swift.ico new file mode 100644 index 00000000000..7605a339718 Binary files /dev/null and b/docs/assets/icons/swift.ico differ diff --git a/docs/assets/icons/swift.png b/docs/assets/icons/swift.png new file mode 100644 index 00000000000..544f617aa4d Binary files /dev/null and b/docs/assets/icons/swift.png differ diff --git a/docs/config-activation.md b/docs/config-activation.md new file mode 100644 index 00000000000..40de947aee6 --- /dev/null +++ b/docs/config-activation.md @@ -0,0 +1,44 @@ +--- +title: Configure activation and deactivation of linters within MegaLinter +description: You can enable, disable, make not blocking, allow a minimum number of errors... +--- + + + + +# Activation and deactivation + +MegaLinter have all linters enabled by default, but allows to enable only some, or disable only some + +- If `ENABLE` isn't set, all descriptors are activated by default. If set, all linters of listed descriptors will be activated by default +- 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 listed 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. DevSkim 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) + +```yaml +DISABLE: PHP +``` + +- Run all linters except PHP_PHPSTAN and PHP_PSALM linters + +```yaml +DISABLE_LINTERS: + - PHP_PHPSTAN + - PHP_PSALM +``` + + + diff --git a/docs/config-apply-fixes.md b/docs/config-apply-fixes.md new file mode 100644 index 00000000000..dbbb4cf0d66 --- /dev/null +++ b/docs/config-apply-fixes.md @@ -0,0 +1,46 @@ +--- +title: Configure auto-fixing of issues by MegaLinter +description: Use MegaLinter to auto apply corrections on your repository files +--- + + + + +# Apply fixes + +Mega-linter is able to apply fixes provided by linters. To use this capability, you need 3 **env variables** defined at top level + +- **APPLY_FIXES**: `all` to apply fixes of all linters, or a list of linter keys (ex: `JAVASCRIPT_ES`,`MARKDOWN_MARKDOWNLINT`) + +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_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. + +## Apply fixes issues + +You may see **github permission errors**, or workflows not run on the new commit. + +To solve these issues, you can apply one of the following solutions. + +- Method 1: The most secured + - [Create Fine Grained Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token), scoped only on your repository and then copy the PAT value + - [Define environment secret variable](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-an-environment) named **PAT** on your repository, and paste the PAT value + - Update your Github Actions Workflow to add the environment name + +- Method 2: Easier, but any contributor with write access can see your Personal Access Token + - [Create Classic Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token#creating-a-token), then copy the PAT value + - [Define secret variable](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named **PAT** on your repository, and paste the PAT value + +## Notes + +- You can use [**Updated sources reporter**](reporters/UpdatedSourcesReporter.md) if you don't 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` + +```shell +megalinter-reports/ +``` + + + diff --git a/docs/config-cli-lint-mode.md b/docs/config-cli-lint-mode.md new file mode 100644 index 00000000000..c41238aa483 --- /dev/null +++ b/docs/config-cli-lint-mode.md @@ -0,0 +1,29 @@ +--- +title: Override the way linters are called by MegaLinter +description: Cli lint mode can be list_of_files, project or files +--- + + + + +# CLI lint mode + +Each linter has a lint mode by default, visible in its MegaLinter documentation ([example](https://megalinter.io/latest/descriptors/repository_trivy/#how-the-linting-is-performed)): + +- `list_of_files`: All files are sent in single call to the linter +- `project`: The linter is called from the root of the project, without specifying any file name +- `file`: The linter is called once by file (so the performances may not be very good) + +You can override the CLI_LINT_MODE by using configuration variable for each linter (see [linters documentation](https://megalinter.io/supported-linters/)) + +- Linters with `file` default lint mode can not be overridden to `list_of_files` +- Linters with `project` default lint mode can not be overridden to `list_of_files` or `file` + +Allowing `file` or `list_of_files` to be overridden to `project` is mostly for workarounds, for example with linters that have a problem to find their config file when the current folder isn't the repo root. + +Special considerations: + +- As list of files isn't sent to the linter command, linters using `project` lint mode don't take in account some variables like FILTER_REGEX_INCLUDE and FILTER_REGEX_EXCLUDE. For those linters, you must check their documentation to define ignore configuration as it's awaited by the linter (for example with a `.secretlintignore` file for secretlint) + + + diff --git a/docs/config-file.md b/docs/config-file.md new file mode 100644 index 00000000000..748ec280706 --- /dev/null +++ b/docs/config-file.md @@ -0,0 +1,25 @@ +--- +title: MegaLinter configuration file +description: Use config file with auto-completion to customize MegaLinter behaviour +--- + + + + +# .mega-linter.yml file + +MegaLinter configuration variables are defined in a **.mega-linter.yml** file at the root of the repository or with **environment variables**. +You can see an example config file in this repo: [**.mega-linter.yml**](https://github.com/oxsecurity/megalinter/blob/main/.mega-linter.yml) + +Configuration is assisted with autocompletion and validation in most commonly used IDEs, thanks to [JSON schema](https://megalinter.io/json-schemas/configuration.html) stored on [schemastore.org](https://www.schemastore.org/) + +- VSCode: You need a VSCode extension like [Red Hat YAML](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) +- IDEA family: Auto-completion natively supported + +You can also define variables as environment variables. +- In case a variable exists in both ENV and `.mega-linter.yml` file, priority is given to ENV variable. + +![Assisted configuration](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/assisted-configuration.gif) + + + diff --git a/docs/config-filtering.md b/docs/config-filtering.md new file mode 100644 index 00000000000..80d48a1df1b --- /dev/null +++ b/docs/config-filtering.md @@ -0,0 +1,23 @@ +--- +title: Configure filtering of files analyzed by MegaLinter +description: Exclude files from linting +--- + + + + +# Filter linted files + +If you need to lint only a folder or exclude some files from linting, you can use optional environment parameters `FILTER_REGEX_INCLUDE` and `FILTER_REGEX_EXCLUDE` +You can apply filters to a single linter by defining variable `_FILTER_REGEX_INCLUDE` and `_FILTER_REGEX_EXCLUDE` + +Examples: + +- Lint only src folder: `FILTER_REGEX_INCLUDE: (src/)` +- Don't lint files inside test and example folders: `FILTER_REGEX_EXCLUDE: (test/|examples/)` +- Don't lint javascript files inside test folder: `FILTER_REGEX_EXCLUDE: (test/.*\.js)` + +Warning: not applicable with linters using CLI lint mode `project` ([see details](config-cli-lint-mode.md)) + + + diff --git a/docs/config-linters.md b/docs/config-linters.md new file mode 100644 index 00000000000..8066c31b9b2 --- /dev/null +++ b/docs/config-linters.md @@ -0,0 +1,14 @@ +--- +title: Linter scoped variables +description: Every linters has its own variables that can be customized +--- + + + + +# Linter specific variables + +See variables related to a single linter behavior in [linters documentations](supported-linters.md) + + + diff --git a/docs/config-postcommands.md b/docs/config-postcommands.md new file mode 100644 index 00000000000..64f04953331 --- /dev/null +++ b/docs/config-postcommands.md @@ -0,0 +1,23 @@ +--- +title: Configure custom commands to run after linters +description: Customize your MegaLinter run by running commands after linters are run +--- + + + + +# Post-commands + +MegaLinter can run custom commands after running linters (for example, running additional tests) + +Example in `.mega-linter.yml` config file + +```yaml +POST_COMMANDS: + - command: npm run test + cwd: "workspace" # Will be run at the root of the workspace (usually your repository root) + continue_if_failed: False # Will stop the process if command is failed (return code > 0) +``` + + + diff --git a/docs/config-precommands.md b/docs/config-precommands.md new file mode 100644 index 00000000000..71013a57245 --- /dev/null +++ b/docs/config-precommands.md @@ -0,0 +1,27 @@ +--- +title: Configure custom commands to run before linters +description: Customize your MegaLinter run by installing linters extensions with npm, pip, or even raw bash before linters are run +--- + + + + +# Pre-commands + +MegaLinter can run custom commands before running linters (for example, installing an plugin required by one of the linters you use) + +Example in `.mega-linter.yml` config file + +```yaml +PRE_COMMANDS: + - command: npm install eslint-plugin-whatever + cwd: "root" # Will be run at the root of MegaLinter docker image + - command: echo "pre-test command has been called" + cwd: "workspace" # Will be run at the root of the workspace (usually your repository root) + continue_if_failed: False # Will stop the process if command is failed (return code > 0) + - command: pip install flake8-cognitive-complexity + venv: flake8 # Will be run within flake8 python virtualenv. There is one virtualenv per python-based linter, with the same name +``` + + + diff --git a/docs/config-variables-security.md b/docs/config-variables-security.md new file mode 100644 index 00000000000..c663ed0a5bf --- /dev/null +++ b/docs/config-variables-security.md @@ -0,0 +1,86 @@ +--- +title: Configure environment variables security with MegaLinter +description: Hide from linter executables the environment variables that can contain secrets +--- + + + + +# Environment variables security + +## Secured env variables + +MegaLinter runs on a docker image and calls the linters via command line to gather their results. + +If you run it from your **CI/CD pipelines**, the docker image may have **access to your environment variables, that can contain secrets** defined in CI/CD variables. + +As it can be complicated to **trust** the authors of all the open-source linters, **MegaLinter removes variables from the environment used to call linters**. + +Thanks to this feature, you only need to [**trust MegaLinter and its internal python dependencies**](https://github.com/oxsecurity/megalinter/blob/main/megalinter/setup.py), but there is **no need to trust all the linters that are used** ! + +You can add secured variables to the default list using configuration property **SECURED_ENV_VARIABLES** in .mega-linter.yml or in an environment variable (priority is given to ENV variables above `.mega-linter.yml` property). + +Values can be: + +- String (ex: `MY_SECRET_VAR`) +- Regular Expression (ex: `(MY.*VAR)`) + +Environment variables are secured for each command line called (linters, plugins, sarif formatter...) except for [PRE_COMMANDS](config-precommands.md) , ONLY if you define `secured_env: false` in the command. + +## Secured configuration examples + +- Example of adding extra secured variables `.mega-linter.yml`: + +```yaml +SECURED_ENV_VARIABLES: + - MY_SECRET_TOKEN + - ANOTHER_VAR_CONTAINING_SENSITIVE_DATA + - OX_API_KEY + - (MY.*VAR) # Regex format +``` + +- Example of adding extra secured variables in CI variables, so they can not be overridden in .mega-linter.yml: + +```shell +SECURED_ENV_VARIABLES=MY_SECRET_TOKEN,ANOTHER_VAR_CONTAINING_SENSITIVE_DATA,OX_API_KEY +``` + +## Default secured variables + +If you override SECURED_ENV_VARIABLES_DEFAULT, it replaces the default list, so it's better to only define SECURED_ENV_VARIABLES to add them to the default list ! + +SECURED_ENV_VARIABLES_DEFAULT contains: + +- GITHUB_TOKEN +- PAT +- SYSTEM_ACCESSTOKEN +- GIT_AUTHORIZATION_BEARER +- CI_JOB_TOKEN +- GITLAB_ACCESS_TOKEN_MEGALINTER +- GITLAB_CUSTOM_CERTIFICATE +- WEBHOOK_REPORTER_BEARER_TOKEN +- NODE_TOKEN +- NPM_TOKEN +- DOCKER_USERNAME +- DOCKER_PASSWORD +- CODECOV_TOKEN +- GCR_USERNAME +- GCR_PASSWORD +- SMTP_PASSWORD +- CI_SFDX_HARDIS_GITLAB_TOKEN +- (SFDX_CLIENT_ID_.*) +- (SFDX_CLIENT_KEY_.*) + +## Unhide variables for linters + +You can configure exceptions for a specific linter by defining **(linter-key)_UNSECURED_ENV_VARIABLES**. + +Variable names in this list won't be hidden to the linter commands. + +```yaml +TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES: + - GITHUB_TOKEN # Can contain string only, not regex +``` + + + diff --git a/docs/config-variables.md b/docs/config-variables.md new file mode 100644 index 00000000000..ce676772754 --- /dev/null +++ b/docs/config-variables.md @@ -0,0 +1,59 @@ +--- +title: All Megalinter configuration common variables +description: List of common variables that you can use to customize MegaLinter behaviour +--- + + + + +# Common variables + +| **ENV VAR** | **Default Value** | **Notes** | +|-------------------------------------------------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. they're excluded at any nested level. | +| [**APPLY_FIXES**](config-apply-fixes.md) | `none` | Activates formatting and autofix [(more info)](config-apply-fixes.md) | +| **CLEAR_REPORT_FOLDER** | `false` | Flag to clear files from report folder (usually megalinter-reports) before starting the linting process | +| **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**](config-activation.md) | | List of disabled descriptors keys [(more info)](config-activation.md) | +| [**DISABLE_LINTERS**](config-activation.md) | | List of disabled linters keys [(more info)](config-activation.md) | +| [**DISABLE_ERRORS_LINTERS**](config-activation.md) | | List of enabled but not blocking linters keys [(more info)](config-activation.md) | +| [**ENABLE**](config-activation.md) | | List of enabled descriptors keys [(more info)](config-activation.md) | +| [**ENABLE_LINTERS**](config-activation.md) | | List of enabled linters keys [(more info)](config-activation.md) | +| **EXCLUDED_DIRECTORIES** | \[…many values…\] | List of excluded directory basenames. they're 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. Later files take precedence. | +| **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 autofixed sources, even if there are no errors | +| [**FILTER_REGEX_EXCLUDE**](config-filtering.md) | `none` | Regular expression defining which files will be excluded from linting [(more info)](config-filtering.md) .ex: `.*src/test.*`) | +| [**FILTER_REGEX_INCLUDE**](config-filtering.md) | `all` | Regular expression defining which files will be processed by linters [(more info)](config-filtering.md) .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` | +| **GIT_AUTHORIZATION_BEARER** | | If set, calls git with **`Authorization: Bearer`+value** | +| **GITHUB_WORKSPACE** | | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` isn't 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`. Use `none` to not generate this file. | +| **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 | +| **MEGALINTER_FILES_TO_LINT** | \[\] | Comma-separated list of files to analyze. Using this variable will bypass other file listing methods | +| **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**](config-postcommands.md) | \[\] | Custom bash commands to run after linters | +| [**PRE_COMMANDS**](config-precommands.md) | \[\] | 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}/megalinter-reports` | Directory for generating report files. Set to `none` to not generate reports | +| [**SECURED_ENV_VARIABLES**](config-variables-security.md) | \[\] | Additional list of secured environment variables to hide when calling linters. | +| [**SECURED_ENV_VARIABLES_DEFAULT**](config-variables-security.md) | MegaLinter & CI platforms sensitive variables | List of secured environment variables to hide when calling linters. [Default list](config-variables-security.md). This is not recommended to override this variable, use SECURED_ENV_VARIABLES | +| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | +| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | +| **SKIP_CLI_LINT_MODES** | \[\] | Comma-separated list of cli_lint_modes. To use if you want to skip linters with some CLI lint modes (ex: `file,project`). Available values: `file`,`cli_lint_mode`,`project`. | +| **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. | + + + diff --git a/docs/configuration.md b/docs/configuration.md index 0c5fc374904..6b0935d567f 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -125,21 +125,31 @@ 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_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: +### Apply fixes issues + +You may see **github permission errors**, or workflows not run on the new commit. + +To solve these issues, you can apply one of the following solutions. + +- Method 1: The most secured + - [Create Fine Grained Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token), scoped only on your repository and then copy the PAT value + - [Define environment secret variable](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-an-environment) named **PAT** on your repository, and paste the PAT value + - Update your Github Actions Workflow to add the environment name + +- Method 2: Easier, but any contributor with write access can see your Personal Access Token + - [Create Classic Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token#creating-a-token), then copy the PAT value + - [Define secret variable](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named **PAT** on your repository, and paste the PAT value + +### Notes - You can use [**Updated sources reporter**](reporters/UpdatedSourcesReporter.md) if you don't 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` ```shell megalinter-reports/ ``` -- You may see **github permission errors**, or workflows not run on the new commit. To solve these issues: - - [Create Personal Access Token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token#creating-a-token), then copy the PAT value - - [Define secret variable](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) named **PAT** on your repository, and paste the PAT value - ## Linter specific variables See variables related to a single linter behavior in [linters documentations](supported-linters.md) diff --git a/docs/descriptors/action_actionlint.md b/docs/descriptors/action_actionlint.md index 824b50c6c77..48ef38dbbef 100644 --- a/docs/descriptors/action_actionlint.md +++ b/docs/descriptors/action_actionlint.md @@ -11,7 +11,7 @@ Static checker for GitHub Actions workflow files ## actionlint documentation -- Version in MegaLinter: **1.6.24** +- Version in MegaLinter: **1.6.25** - Visit [Official Web Site](https://rhysd.github.io/actionlint/){target=_blank} - See [How to configure actionlint rules](https://github.com/rhysd/actionlint/blob/main/docs/config.md){target=_blank} @@ -32,6 +32,7 @@ Static checker for GitHub Actions workflow files | ACTION_ACTIONLINT_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 | | ACTION_ACTIONLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | ACTION_ACTIONLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| ACTION_ACTIONLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling ACTION_ACTIONLINT and its pre/post commands | None | | ACTION_ACTIONLINT_CONFIG_FILE | actionlint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `actionlint.yml` | | ACTION_ACTIONLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | ACTION_ACTIONLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -43,22 +44,23 @@ Static checker for GitHub Actions workflow files This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -|
| [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/ansible_ansible_lint.md b/docs/descriptors/ansible_ansible_lint.md index a778d0aecd4..d94c99d6ff2 100644 --- a/docs/descriptors/ansible_ansible_lint.md +++ b/docs/descriptors/ansible_ansible_lint.md @@ -9,7 +9,7 @@ description: How to use ansible-lint (configure, ignore files, ignore errors, he ## ansible-lint documentation -- Version in MegaLinter: **6.16.0** +- Version in MegaLinter: **6.17.2** - Visit [Official Web Site](https://ansible-lint.readthedocs.io/){target=_blank} - See [How to configure ansible-lint rules](https://ansible-lint.readthedocs.io/configuring/#configuration-file){target=_blank} - See [How to disable ansible-lint rules in files](https://ansible-lint.readthedocs.io/usage/#muting-warnings-to-avoid-false-positives){target=_blank} @@ -29,6 +29,7 @@ description: How to use ansible-lint (configure, ignore files, ignore errors, he | ANSIBLE_ANSIBLE_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 | | ANSIBLE_ANSIBLE_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | ANSIBLE_ANSIBLE_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| ANSIBLE_ANSIBLE_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling ANSIBLE_ANSIBLE_LINT and its pre/post commands | None | | ANSIBLE_ANSIBLE_LINT_CONFIG_FILE | ansible-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.ansible-lint` | | ANSIBLE_ANSIBLE_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | ANSIBLE_ANSIBLE_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -40,23 +41,24 @@ description: How to use ansible-lint (configure, ignore files, ignore errors, he This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -163,7 +165,7 @@ options: -w WARN_LIST, --warn-list WARN_LIST only warn about these rules, unless overridden in config file. Current version default value is: - experimental, jinja[spacing] + experimental, jinja[spacing], fqcn[deep] --enable-list ENABLE_LIST activate optional rules by their tag name --nocolor disable colored output, same as NO_COLOR=1 @@ -173,7 +175,8 @@ options: repeatable. -c CONFIG_FILE, --config-file CONFIG_FILE Specify configuration file to use. By default it will - look for '.ansible-lint' or '.config/ansible-lint.yml' + look for '.ansible-lint', '.config/ansible-lint.yml', + or '.config/ansible-lint.yaml' -i IGNORE_FILE, --ignore-file IGNORE_FILE Specify ignore file to use. By default it will look for '.ansible-lint-ignore' or '.config/ansible-lint- diff --git a/docs/descriptors/arm_arm_ttk.md b/docs/descriptors/arm_arm_ttk.md index b9af694b6cb..c687c16fb7f 100644 --- a/docs/descriptors/arm_arm_ttk.md +++ b/docs/descriptors/arm_arm_ttk.md @@ -30,6 +30,7 @@ description: How to use arm-ttk (configure, ignore files, ignore errors, help & | ARM_ARM_TTK_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 | | ARM_ARM_TTK_PRE_COMMANDS | List of bash commands to run before the linter | None | | ARM_ARM_TTK_POST_COMMANDS | List of bash commands to run after the linter | None | +| ARM_ARM_TTK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling ARM_ARM_TTK and its pre/post commands | None | | ARM_ARM_TTK_CONFIG_FILE | arm-ttk configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.arm-ttk.psd1` | | ARM_ARM_TTK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | ARM_ARM_TTK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -48,10 +49,11 @@ Use arm-ttk in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes @@ -109,20 +111,15 @@ Check the spelling of the name, or if a path was included, verify that the path - Dockerfile commands : ```dockerfile # Parent descriptor install -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ diff --git a/docs/descriptors/bash_bash_exec.md b/docs/descriptors/bash_bash_exec.md index 302c9941d45..f503a160698 100644 --- a/docs/descriptors/bash_bash_exec.md +++ b/docs/descriptors/bash_bash_exec.md @@ -31,6 +31,7 @@ Note: You can run `git add --chmod=+x myfile.sh` to make a file executable on Wi | BASH_EXEC_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 | | BASH_EXEC_PRE_COMMANDS | List of bash commands to run before the linter | None | | BASH_EXEC_POST_COMMANDS | List of bash commands to run after the linter | None | +| BASH_EXEC_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling BASH_EXEC and its pre/post commands | None | | BASH_EXEC_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | BASH_EXEC_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | BASH_EXEC_CLI_EXECUTABLE | Override CLI executable | `['bash-exec']` | @@ -39,23 +40,24 @@ 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.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/bash_shellcheck.md b/docs/descriptors/bash_shellcheck.md index 24705efc700..a7cfc90b969 100644 --- a/docs/descriptors/bash_shellcheck.md +++ b/docs/descriptors/bash_shellcheck.md @@ -31,6 +31,7 @@ description: How to use shellcheck (configure, ignore files, ignore errors, help | BASH_SHELLCHECK_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 | | BASH_SHELLCHECK_PRE_COMMANDS | List of bash commands to run before the linter | None | | BASH_SHELLCHECK_POST_COMMANDS | List of bash commands to run after the linter | None | +| BASH_SHELLCHECK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling BASH_SHELLCHECK and its pre/post commands | None | | BASH_SHELLCHECK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | BASH_SHELLCHECK_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | BASH_SHELLCHECK_CLI_EXECUTABLE | Override CLI executable | `['shellcheck']` | @@ -56,22 +57,23 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/bash_shfmt.md b/docs/descriptors/bash_shfmt.md index 2901be1f528..c5cf4aa8b06 100644 --- a/docs/descriptors/bash_shfmt.md +++ b/docs/descriptors/bash_shfmt.md @@ -9,7 +9,7 @@ description: How to use shfmt (configure, ignore files, ignore errors, help & ve ## shfmt documentation -- Version in MegaLinter: **3.6.0** +- Version in MegaLinter: **3.7.0** - Visit [Official Web Site](https://github.com/mvdan/sh#readme){target=_blank} [![sh - GitHub](https://gh-card.dev/repos/mvdan/sh.svg?fullname=)](https://github.com/mvdan/sh){target=_blank} @@ -31,6 +31,7 @@ description: How to use shfmt (configure, ignore files, ignore errors, help & ve | BASH_SHFMT_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 | | BASH_SHFMT_PRE_COMMANDS | List of bash commands to run before the linter | None | | BASH_SHFMT_POST_COMMANDS | List of bash commands to run after the linter | None | +| BASH_SHFMT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling BASH_SHFMT and its pre/post commands | None | | BASH_SHFMT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | BASH_SHFMT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | BASH_SHFMT_CLI_EXECUTABLE | Override CLI executable | `['shfmt']` | @@ -55,21 +56,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/bicep_bicep_linter.md b/docs/descriptors/bicep_bicep_linter.md index dcc4079704f..476fcad61c9 100644 --- a/docs/descriptors/bicep_bicep_linter.md +++ b/docs/descriptors/bicep_bicep_linter.md @@ -12,7 +12,7 @@ use a `bicepconfig.json` file. For more information, see the [documentation for ## bicep_linter documentation -- Version in MegaLinter: **0.17.1** +- Version in MegaLinter: **0.19.5** - Visit [Official Web Site](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter){target=_blank} - See [How to configure bicep_linter rules](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config){target=_blank} - See [How to disable bicep_linter rules in files](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter#silencing-false-positives){target=_blank} @@ -35,6 +35,7 @@ use a `bicepconfig.json` file. For more information, see the [documentation for | BICEP_BICEP_LINTER_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 | | BICEP_BICEP_LINTER_PRE_COMMANDS | List of bash commands to run before the linter | None | | BICEP_BICEP_LINTER_POST_COMMANDS | List of bash commands to run after the linter | None | +| BICEP_BICEP_LINTER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling BICEP_BICEP_LINTER and its pre/post commands | None | | BICEP_BICEP_LINTER_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | BICEP_BICEP_LINTER_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | BICEP_BICEP_LINTER_CLI_EXECUTABLE | Override CLI executable | `['bicep']` | @@ -51,10 +52,11 @@ Use bicep_linter in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes @@ -83,7 +85,7 @@ az bicep build -f infra.bicep ### Help content ```shell -Bicep CLI version 0.17.1 (d423d61882) +Bicep CLI version 0.19.5 (87ca110fc0) Usage: bicep build [options] @@ -93,10 +95,11 @@ Usage: The input file Options: - --outdir Saves the output at the specified directory. - --outfile Saves the output as the specified file path. - --stdout Prints the output to stdout. - --no-restore Builds the bicep file without restoring external modules. + --outdir Saves the output at the specified directory. + --outfile Saves the output as the specified file path. + --stdout Prints the output to stdout. + --no-restore Builds the bicep file without restoring external modules. + --diagnostics-format Sets the format with which diagnostics are displayed. Valid values are ( Default | Sarif ). Examples: bicep build file.bicep @@ -104,6 +107,7 @@ Usage: bicep build file.bicep --outdir dir1 bicep build file.bicep --outfile file.json bicep build file.bicep --no-restore + bicep build file.bicep --diagnostics-format sarif bicep format [options] Formats a .bicep file. @@ -137,7 +141,7 @@ Usage: --outdir Saves the output at the specified directory. --outfile Saves the output as the specified file path. --stdout Prints the output to stdout. - --force Allows overwriting the output file if it exists (applies only to 'bicep decompile'). + --force Allows overwriting the output file if it exists (applies only to 'bicep decompile' or 'bicep decompile-params'). Examples: bicep decompile file.json @@ -146,8 +150,29 @@ Usage: bicep decompile file.json --force bicep decompile file.json --outfile file.bicep + bicep decompile-params [options] + Attempts to decompile a parameters .json file to .bicepparam. + + Arguments: + The input file + + Options: + --outdir Saves the output at the specified directory. + --outfile Saves the output as the specified file path. + --stdout Prints the output to stdout. + --force Allows overwriting the output file if it exists (applies only to 'bicep decompile' or 'bicep decompile-params'). + --bicep-file Path to the bicep template file (relative to the .bicepparam file) that will be referenced in the using declaration + + Examples: + bicep decompile-params file.json + bicep decompile-params file.json --bicep-file ./dir/main.bicep + bicep decompile-params file.json --stdout + bicep decompile-params file.json --outdir dir1 + bicep decompile-params file.json --force + bicep decompile-params file.json --outfile file.bicepparam + bicep generate-params [options] - Builds .parameters.json file from the given bicep file, updates if there is an existing parameters.json file. + Builds parameters file from the given bicep file, updates if there is an existing parameters file. Arguments: The input file @@ -157,6 +182,8 @@ Usage: --outdir Saves the output at the specified directory. --outfile Saves the output as the specified file path. --stdout Prints the output to stdout. + --output-format Selects the output format {json, bicepparam} + --include-params Selects which parameters to include into output {requiredonly, all} Examples: bicep generate-params file.bicep @@ -164,7 +191,7 @@ Usage: bicep generate-params file.bicep --stdout bicep generate-params file.bicep --outdir dir1 bicep generate-params file.bicep --outfile file.parameters.json - + bicep generate-params file.bicep --output-format bicepparam --include-params all bicep publish --target Publishes the .bicep file to the module registry. @@ -189,16 +216,15 @@ Usage: Arguments: The input file - bicep [options] + bicep [options] Options: --version -v Shows bicep version information --help -h Shows this usage information --license Prints license information --third-party-notices Prints third-party notices - bicep build-params - Builds .bicepparam file. + Builds a .json file from a .bicepparam file. Arguments: The input Bicepparam file @@ -215,23 +241,18 @@ Usage: bicep build-params params.bicepparam --outfile otherParams.json bicep build-params params.bicepparam --no-restore - ``` ### Installation on mega-linter Docker image - Dockerfile commands : ```dockerfile -ARG TARGETPLATFORM ARG BICEP_EXE='bicep' +ARG BICEP_URI='https://github.com/Azure/bicep/releases/latest/download/bicep-linux-musl-x64' ARG BICEP_DIR='/usr/local/bin' -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=musl-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ -esac \ -&& curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "https://github.com/Azure/bicep/releases/latest/download/bicep-linux-${POWERSHELL_ARCH}" \ -&& chmod +x "${BICEP_EXE}" \ -&& mv "${BICEP_EXE}" "${BICEP_DIR}" +RUN curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "${BICEP_URI}" \ + && chmod +x "${BICEP_EXE}" \ + && mv "${BICEP_EXE}" "${BICEP_DIR}" ``` diff --git a/docs/descriptors/c_cpplint.md b/docs/descriptors/c_cpplint.md index 97ffa146cba..042e41ea6c4 100644 --- a/docs/descriptors/c_cpplint.md +++ b/docs/descriptors/c_cpplint.md @@ -30,6 +30,7 @@ description: How to use cpplint (configure, ignore files, ignore errors, help & | C_CPPLINT_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 | | C_CPPLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | C_CPPLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| C_CPPLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling C_CPPLINT and its pre/post commands | None | | C_CPPLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | C_CPPLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | C_CPPLINT_CLI_EXECUTABLE | Override CLI executable | `['cpplint']` | @@ -38,11 +39,12 @@ description: How to use cpplint (configure, ignore files, ignore errors, help & This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/clojure.md b/docs/descriptors/clojure.md index bc2258f2d88..3a81f115953 100644 --- a/docs/descriptors/clojure.md +++ b/docs/descriptors/clojure.md @@ -53,7 +53,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ diff --git a/docs/descriptors/clojure_clj_kondo.md b/docs/descriptors/clojure_clj_kondo.md index 638798e8a32..0be3a5d0130 100644 --- a/docs/descriptors/clojure_clj_kondo.md +++ b/docs/descriptors/clojure_clj_kondo.md @@ -15,7 +15,7 @@ description: How to use clj-kondo (configure, ignore files, ignore errors, help ## clj-kondo documentation -- Version in MegaLinter: **2023.04.14** +- Version in MegaLinter: **2023.07.13** - 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 isn't found, [.clj-kondo/config.edn](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.clj-kondo/config.edn){target=_blank} will be used @@ -39,6 +39,7 @@ description: How to use clj-kondo (configure, ignore files, ignore errors, help | CLOJURE_CLJ_KONDO_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 | | CLOJURE_CLJ_KONDO_PRE_COMMANDS | List of bash commands to run before the linter | None | | CLOJURE_CLJ_KONDO_POST_COMMANDS | List of bash commands to run after the linter | None | +| CLOJURE_CLJ_KONDO_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CLOJURE_CLJ_KONDO and its pre/post commands | None | | CLOJURE_CLJ_KONDO_CONFIG_FILE | clj-kondo configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.clj-kondo/config.edn` | | CLOJURE_CLJ_KONDO_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | CLOJURE_CLJ_KONDO_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -62,9 +63,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes @@ -92,7 +93,7 @@ clj-kondo --lint --config .clj-kondo/config.edn myfile.clj ### Help content ```shell -clj-kondo v2023.04.14 +clj-kondo v2023.07.13 Options: @@ -115,7 +116,7 @@ Options: nearest `.clj-kondo` directory in the current and parent directories. --config : config may be a file or an EDN expression. See - https://cljdoc.org/d/clj-kondo/clj-kondo/2023.04.14/doc/configuration + https://cljdoc.org/d/clj-kondo/clj-kondo/2023.07.13/doc/configuration --config-dir : use this config directory instead of auto-detected .clj-kondo dir. @@ -157,7 +158,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ diff --git a/docs/descriptors/clojure_cljstyle.md b/docs/descriptors/clojure_cljstyle.md index d72dbb17cc6..3ace8cc779e 100644 --- a/docs/descriptors/clojure_cljstyle.md +++ b/docs/descriptors/clojure_cljstyle.md @@ -34,6 +34,7 @@ description: How to use cljstyle (configure, ignore files, ignore errors, help & | CLOJURE_CLJSTYLE_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 | | CLOJURE_CLJSTYLE_PRE_COMMANDS | List of bash commands to run before the linter | None | | CLOJURE_CLJSTYLE_POST_COMMANDS | List of bash commands to run after the linter | None | +| CLOJURE_CLJSTYLE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CLOJURE_CLJSTYLE and its pre/post commands | None | | CLOJURE_CLJSTYLE_CONFIG_FILE | cljstyle configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.cljstyle` | | CLOJURE_CLJSTYLE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | CLOJURE_CLJSTYLE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -54,9 +55,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes @@ -133,7 +134,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ diff --git a/docs/descriptors/cloudformation_cfn_lint.md b/docs/descriptors/cloudformation_cfn_lint.md index 994e4e0a04e..686b299f2eb 100644 --- a/docs/descriptors/cloudformation_cfn_lint.md +++ b/docs/descriptors/cloudformation_cfn_lint.md @@ -15,7 +15,7 @@ description: How to use cfn-lint (configure, ignore files, ignore errors, help & ## cfn-lint documentation -- Version in MegaLinter: **0.77.5** +- Version in MegaLinter: **0.78.1** - Visit [Official Web Site](https://github.com/aws-cloudformation/cfn-lint#readme){target=_blank} - If custom `.cfnlintrc.yml` config file isn't 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} @@ -37,6 +37,7 @@ description: How to use cfn-lint (configure, ignore files, ignore errors, help & | 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 | | CLOUDFORMATION_CFN_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| CLOUDFORMATION_CFN_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CLOUDFORMATION_CFN_LINT and its pre/post commands | None | | CLOUDFORMATION_CFN_LINT_CONFIG_FILE | cfn-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.cfnlintrc.yml` | | CLOUDFORMATION_CFN_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | CLOUDFORMATION_CFN_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -60,9 +61,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:------------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes @@ -94,7 +95,7 @@ cfn-lint --config-file .cfnlintrc.yml myfile.yml usage: Basic: cfn-lint test.yaml Ignore a rule: cfn-lint -i E3012 -- test.yaml -Configure a rule: cfn-lint -x E3012:strict=false -t test.yaml +Configure a rule: cfn-lint -x E3012:strict=true -t test.yaml Lint all yaml files in a folder: cfn-lint dir/**/*.yaml CloudFormation Linter @@ -126,7 +127,7 @@ Standard: Include experimental rules -x CONFIGURE_RULES [CONFIGURE_RULES ...], --configure-rule CONFIGURE_RULES [CONFIGURE_RULES ...] Provide configuration for a rule. Format - RuleId:key=value. Example: E3012:strict=false + RuleId:key=value. Example: E3012:strict=true --config-file CONFIG_FILE Specify the cfnlintrc file to use -z CUSTOM_RULES, --custom-rules CUSTOM_RULES diff --git a/docs/descriptors/coffee_coffeelint.md b/docs/descriptors/coffee_coffeelint.md index b19f007adc1..fb56e14410b 100644 --- a/docs/descriptors/coffee_coffeelint.md +++ b/docs/descriptors/coffee_coffeelint.md @@ -33,6 +33,7 @@ description: How to use coffeelint (configure, ignore files, ignore errors, help | COFFEE_COFFEELINT_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 | | COFFEE_COFFEELINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | COFFEE_COFFEELINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| COFFEE_COFFEELINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling COFFEE_COFFEELINT and its pre/post commands | None | | COFFEE_COFFEELINT_CONFIG_FILE | coffeelint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.coffee-lint.json` | | COFFEE_COFFEELINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | COFFEE_COFFEELINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -52,10 +53,11 @@ Use coffeelint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/copypaste_jscpd.md b/docs/descriptors/copypaste_jscpd.md index 24d48e2e2eb..537b4162bea 100644 --- a/docs/descriptors/copypaste_jscpd.md +++ b/docs/descriptors/copypaste_jscpd.md @@ -47,16 +47,17 @@ Example: - Enable jscpd by adding `COPYPASTE_JSCPD` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable jscpd by adding `COPYPASTE_JSCPD` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|---------------------------------------------|----------------------------------------------------------------------------------|-------------------------------------------------| -| COPYPASTE_JSCPD_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| COPYPASTE_JSCPD_PRE_COMMANDS | List of bash commands to run before the linter | None | -| COPYPASTE_JSCPD_POST_COMMANDS | List of bash commands to run after the linter | None | -| COPYPASTE_JSCPD_CONFIG_FILE | jscpd configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.jscpd.json` | -| COPYPASTE_JSCPD_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| COPYPASTE_JSCPD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| COPYPASTE_JSCPD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| COPYPASTE_JSCPD_CLI_EXECUTABLE | Override CLI executable | `['jscpd']` | +| Variable | Description | Default value | +|---------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| COPYPASTE_JSCPD_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| COPYPASTE_JSCPD_PRE_COMMANDS | List of bash commands to run before the linter | None | +| COPYPASTE_JSCPD_POST_COMMANDS | List of bash commands to run after the linter | None | +| COPYPASTE_JSCPD_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling COPYPASTE_JSCPD and its pre/post commands | None | +| COPYPASTE_JSCPD_CONFIG_FILE | jscpd configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.jscpd.json` | +| COPYPASTE_JSCPD_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| COPYPASTE_JSCPD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| COPYPASTE_JSCPD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| COPYPASTE_JSCPD_CLI_EXECUTABLE | Override CLI executable | `['jscpd']` | ## MegaLinter Flavours @@ -64,21 +65,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/cpp_cpplint.md b/docs/descriptors/cpp_cpplint.md index ef5043ccdc0..ac30fa5500e 100644 --- a/docs/descriptors/cpp_cpplint.md +++ b/docs/descriptors/cpp_cpplint.md @@ -30,6 +30,7 @@ description: How to use cpplint (configure, ignore files, ignore errors, help & | CPP_CPPLINT_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 | | CPP_CPPLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | CPP_CPPLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| CPP_CPPLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CPP_CPPLINT and its pre/post commands | None | | CPP_CPPLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | CPP_CPPLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | CPP_CPPLINT_CLI_EXECUTABLE | Override CLI executable | `['cpplint']` | @@ -38,11 +39,12 @@ description: How to use cpplint (configure, ignore files, ignore errors, help & This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/csharp_csharpier.md b/docs/descriptors/csharp_csharpier.md index 2a45286bdbf..07b18bd26af 100644 --- a/docs/descriptors/csharp_csharpier.md +++ b/docs/descriptors/csharp_csharpier.md @@ -9,7 +9,7 @@ description: How to use csharpier (configure, ignore files, ignore errors, help ## csharpier documentation -- Version in MegaLinter: **0.24.2** +- Version in MegaLinter: **0.25.0** - Visit [Official Web Site](https://csharpier.com/){target=_blank} - See [How to configure csharpier rules](https://csharpier.com/docs/Configuration){target=_blank} - See [How to ignore files and directories with csharpier](https://csharpier.com/docs/Ignore){target=_blank} @@ -34,6 +34,7 @@ description: How to use csharpier (configure, ignore files, ignore errors, help | CSHARP_CSHARPIER_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 | | CSHARP_CSHARPIER_PRE_COMMANDS | List of bash commands to run before the linter | None | | CSHARP_CSHARPIER_POST_COMMANDS | List of bash commands to run after the linter | None | +| CSHARP_CSHARPIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CSHARP_CSHARPIER and its pre/post commands | None | | CSHARP_CSHARPIER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | CSHARP_CSHARPIER_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | CSHARP_CSHARPIER_CLI_EXECUTABLE | Override CLI executable | `['csharpier']` | @@ -52,10 +53,11 @@ Use csharpier in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes @@ -93,7 +95,9 @@ Arguments: Options: --check Check that files are formatted. Will not write any changes. + --loglevel Specify the log level - Debug, Information (default), Warning, Error, None [default: Information] --no-cache Bypass the cache to determine if a file needs to be formatted. + --no-msbuild-check Bypass the check to determine if a csproj files references a different version of CSharpier.MsBuild. --fast Skip comparing syntax tree of formatted file to original file to validate changes. --skip-write Skip writing changes. Generally used for testing to ensure csharpier doesn't throw any errors or cause syntax tree validation failures. --write-stdout Write the results of formatting any files to stdout. diff --git a/docs/descriptors/csharp_dotnet_format.md b/docs/descriptors/csharp_dotnet_format.md index 0907dbab18d..c885b9e189b 100644 --- a/docs/descriptors/csharp_dotnet_format.md +++ b/docs/descriptors/csharp_dotnet_format.md @@ -11,7 +11,7 @@ dotnet-format requires a `.sln` or `.csproj` file to run correctly. ## dotnet-format documentation -- Version in MegaLinter: **6.0.408** +- Version in MegaLinter: **6.0.412** - Visit [Official Web Site](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format){target=_blank} [![format - GitHub](https://gh-card.dev/repos/dotnet/format.svg?fullname=)](https://github.com/dotnet/format){target=_blank} @@ -33,6 +33,7 @@ dotnet-format requires a `.sln` or `.csproj` file to run correctly. | CSHARP_DOTNET_FORMAT_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 | | CSHARP_DOTNET_FORMAT_PRE_COMMANDS | List of bash commands to run before the linter | None | | CSHARP_DOTNET_FORMAT_POST_COMMANDS | List of bash commands to run after the linter | None | +| CSHARP_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CSHARP_DOTNET_FORMAT and its pre/post commands | None | | CSHARP_DOTNET_FORMAT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | CSHARP_DOTNET_FORMAT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | CSHARP_DOTNET_FORMAT_CLI_EXECUTABLE | Override CLI executable | `['dotnet']` | @@ -41,10 +42,11 @@ dotnet-format requires a `.sln` or `.csproj` file to run correctly. This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/css_scss_lint.md b/docs/descriptors/css_scss_lint.md index 227be31f4be..3c8c9c561ec 100644 --- a/docs/descriptors/css_scss_lint.md +++ b/docs/descriptors/css_scss_lint.md @@ -37,6 +37,7 @@ description: How to use scss-lint (configure, ignore files, ignore errors, help | CSS_SCSS_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 | | CSS_SCSS_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | CSS_SCSS_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| CSS_SCSS_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CSS_SCSS_LINT and its pre/post commands | None | | CSS_SCSS_LINT_CONFIG_FILE | scss-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.scss-lint.yml` | | CSS_SCSS_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | CSS_SCSS_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -57,22 +58,23 @@ Use scss-lint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/css_stylelint.md b/docs/descriptors/css_stylelint.md index 651f4cfd0f3..4f6354af71f 100644 --- a/docs/descriptors/css_stylelint.md +++ b/docs/descriptors/css_stylelint.md @@ -7,7 +7,7 @@ description: How to use stylelint (configure, ignore files, ignore errors, help @@ -15,7 +15,7 @@ description: How to use stylelint (configure, ignore files, ignore errors, help ## stylelint documentation -- Version in MegaLinter: **15.6.1** +- Version in MegaLinter: **15.10.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 isn't found, [.stylelintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.stylelintrc.json){target=_blank} will be used @@ -41,6 +41,7 @@ description: How to use stylelint (configure, ignore files, ignore errors, help | CSS_STYLELINT_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 | | CSS_STYLELINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | CSS_STYLELINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| CSS_STYLELINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling CSS_STYLELINT and its pre/post commands | None | | CSS_STYLELINT_CONFIG_FILE | stylelint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.stylelintrc.json` | | CSS_STYLELINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | CSS_STYLELINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -64,22 +65,23 @@ Use stylelint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -126,15 +128,15 @@ stylelint --fix --config .stylelintrc.json myfile.css myfile2.css myfile3.css --config, -c - A path to a specific configuration file (JSON, YAML, or CommonJS), or a - module name in "node_modules" that points to one. If no argument is + A path to a specific configuration file (JSON, YAML, CommonJS, or ES module), + or a module name in "node_modules" that points to one. If no argument is provided, Stylelint will search for configuration files in the following places, in this order: - a "stylelint" property in "package.json" - - a ".stylelintrc" file (with or without filename extension: - ".json", ".yaml", ".yml", ".js", and ".cjs" are available) - - a "stylelint.config.js" file exporting a JS object + - a ".stylelintrc" file + - a ".stylelintrc.{cjs,mjs,js,json,yaml,yml}" file + - a "stylelint.config.{cjs,mjs,js}" file The search will begin in the working directory and move up the directory tree until a configuration file is found. @@ -145,9 +147,9 @@ stylelint --fix --config .stylelintrc.json myfile.css myfile2.css myfile3.css "plugins", and "customSyntax" are *relative to*. Only necessary if these values are relative paths. - --print-config + --print-config - Print the configuration for the given path. + Print the configuration for the given input file path. Globs are unsupported. --ignore-path, -i diff --git a/docs/descriptors/dart.md b/docs/descriptors/dart.md index 88e7f053e16..679df53c04d 100644 --- a/docs/descriptors/dart.md +++ b/docs/descriptors/dart.md @@ -49,7 +49,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ diff --git a/docs/descriptors/dart_dartanalyzer.md b/docs/descriptors/dart_dartanalyzer.md index d63891c3191..dcded70f8d0 100644 --- a/docs/descriptors/dart_dartanalyzer.md +++ b/docs/descriptors/dart_dartanalyzer.md @@ -37,6 +37,7 @@ description: How to use dartanalyzer (configure, ignore files, ignore errors, he | DART_DARTANALYZER_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 | | DART_DARTANALYZER_PRE_COMMANDS | List of bash commands to run before the linter | None | | DART_DARTANALYZER_POST_COMMANDS | List of bash commands to run after the linter | None | +| DART_DARTANALYZER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling DART_DARTANALYZER and its pre/post commands | None | | DART_DARTANALYZER_CONFIG_FILE | dartanalyzer configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `analysis_options.yml` | | DART_DARTANALYZER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | DART_DARTANALYZER_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -58,7 +59,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -135,7 +136,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -160,13 +161,8 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" # Linter install -ARG TARGETPLATFORM ARG DART_VERSION='2.8.4' -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") DART_ARCH=x64 ;; \ - "linux/arm64") DART_ARCH=arm64 ;; \ - esac \ - && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-${DART_ARCH}-release.zip -O - -q | unzip -q - \ +RUN wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ && chmod +x dart-sdk/bin/dart* \ && mv dart-sdk/bin/* /usr/bin/ && mv dart-sdk/lib/* /usr/lib/ && mv dart-sdk/include/* /usr/include/ \ && rm -r dart-sdk/ diff --git a/docs/descriptors/dockerfile_hadolint.md b/docs/descriptors/dockerfile_hadolint.md index 90c7d7cb56b..8d1595c7ca9 100644 --- a/docs/descriptors/dockerfile_hadolint.md +++ b/docs/descriptors/dockerfile_hadolint.md @@ -12,6 +12,7 @@ description: How to use hadolint (configure, ignore files, ignore errors, help & - Version in MegaLinter: **2.12.0** - Visit [Official Web Site](https://github.com/hadolint/hadolint#readme){target=_blank} - See [How to configure hadolint rules](https://github.com/hadolint/hadolint#configure){target=_blank} + - If custom `.hadolint.yaml` config file isn't found, [.hadolint.yaml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.hadolint.yaml){target=_blank} will be used - See [How to disable hadolint rules in files](https://github.com/hadolint/hadolint#inline-ignores){target=_blank} - See [Index of problems detected by hadolint](https://github.com/hadolint/hadolint#rules){target=_blank} @@ -32,6 +33,7 @@ description: How to use hadolint (configure, ignore files, ignore errors, help & | DOCKERFILE_HADOLINT_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_HADOLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | DOCKERFILE_HADOLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| DOCKERFILE_HADOLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling DOCKERFILE_HADOLINT and its pre/post commands | None | | DOCKERFILE_HADOLINT_CONFIG_FILE | hadolint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.hadolint.yaml` | | DOCKERFILE_HADOLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | DOCKERFILE_HADOLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -53,22 +55,23 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/editorconfig_editorconfig_checker.md b/docs/descriptors/editorconfig_editorconfig_checker.md index 675b812b2de..1f4310f19cb 100644 --- a/docs/descriptors/editorconfig_editorconfig_checker.md +++ b/docs/descriptors/editorconfig_editorconfig_checker.md @@ -37,6 +37,7 @@ description: How to use editorconfig-checker (configure, ignore files, ignore er | EDITORCONFIG_EDITORCONFIG_CHECKER_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 | | EDITORCONFIG_EDITORCONFIG_CHECKER_PRE_COMMANDS | List of bash commands to run before the linter | None | | EDITORCONFIG_EDITORCONFIG_CHECKER_POST_COMMANDS | List of bash commands to run after the linter | None | +| EDITORCONFIG_EDITORCONFIG_CHECKER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling EDITORCONFIG_EDITORCONFIG_CHECKER and its pre/post commands | None | | EDITORCONFIG_EDITORCONFIG_CHECKER_CONFIG_FILE | editorconfig-checker configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.ecrc` | | EDITORCONFIG_EDITORCONFIG_CHECKER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | EDITORCONFIG_EDITORCONFIG_CHECKER_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -47,22 +48,23 @@ description: How to use editorconfig-checker (configure, ignore files, ignore er This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/env_dotenv_linter.md b/docs/descriptors/env_dotenv_linter.md index 663f666ae35..17985382bcf 100644 --- a/docs/descriptors/env_dotenv_linter.md +++ b/docs/descriptors/env_dotenv_linter.md @@ -38,6 +38,7 @@ description: How to use dotenv-linter (configure, ignore files, ignore errors, h | ENV_DOTENV_LINTER_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 | | ENV_DOTENV_LINTER_PRE_COMMANDS | List of bash commands to run before the linter | None | | ENV_DOTENV_LINTER_POST_COMMANDS | List of bash commands to run after the linter | None | +| ENV_DOTENV_LINTER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling ENV_DOTENV_LINTER and its pre/post commands | None | | ENV_DOTENV_LINTER_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | ENV_DOTENV_LINTER_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | ENV_DOTENV_LINTER_CLI_EXECUTABLE | Override CLI executable | `['dotenv-linter']` | @@ -48,21 +49,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/gherkin_gherkin_lint.md b/docs/descriptors/gherkin_gherkin_lint.md index 051692ca4f8..c0a5c1591fc 100644 --- a/docs/descriptors/gherkin_gherkin_lint.md +++ b/docs/descriptors/gherkin_gherkin_lint.md @@ -31,6 +31,7 @@ description: How to use gherkin-lint (configure, ignore files, ignore errors, he | GHERKIN_GHERKIN_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 | | GHERKIN_GHERKIN_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | GHERKIN_GHERKIN_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| GHERKIN_GHERKIN_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling GHERKIN_GHERKIN_LINT and its pre/post commands | None | | GHERKIN_GHERKIN_LINT_CONFIG_FILE | gherkin-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.gherkin-lintrc` | | GHERKIN_GHERKIN_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | GHERKIN_GHERKIN_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -41,10 +42,11 @@ description: How to use gherkin-lint (configure, ignore files, ignore errors, he This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/go.md b/docs/descriptors/go.md index 18b2d869509..2258198dbcb 100644 --- a/docs/descriptors/go.md +++ b/docs/descriptors/go.md @@ -9,10 +9,10 @@ description: golangci-lint, revive are available to analyze GO files in MegaLint ## Linters -| Linter | Additional | -|----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [**golangci-lint**](go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | -| [**revive**](go_revive.md)
[_GO_REVIVE_](go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| Linter | Additional | +|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [**golangci-lint**](go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| [**revive**](go_revive.md)
[_GO_REVIVE_](go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | ## Linted files diff --git a/docs/descriptors/go_golangci_lint.md b/docs/descriptors/go_golangci_lint.md index d6ff4d965a5..ee56124be12 100644 --- a/docs/descriptors/go_golangci_lint.md +++ b/docs/descriptors/go_golangci_lint.md @@ -11,11 +11,11 @@ description: How to use golangci-lint (configure, ignore files, ignore errors, h -[![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/golangci/golangci-lint?sort=semver)](https://github.com/golangci/golangci-lint/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/graphs/contributors/) +[![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/golangci/golangci-lint?sort=semver)](https://github.com/golangci/golangci-lint/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/graphs/contributors/) ## golangci-lint documentation -- Version in MegaLinter: **1.52.2** +- Version in MegaLinter: **1.53.3** - 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 isn't found, [.golangci.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.golangci.yml){target=_blank} will be used @@ -29,6 +29,8 @@ description: How to use golangci-lint (configure, ignore files, ignore errors, h - Enable golangci-lint by adding `GO_GOLANGCI_LINT` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable golangci-lint by adding `GO_GOLANGCI_LINT` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Enable **autofixes** by adding `GO_GOLANGCI_LINT` in [APPLY_FIXES variable](https://megalinter.io/beta/configuration/#apply-fixes) + | Variable | Description | Default value | |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| | GO_GOLANGCI_LINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | @@ -39,6 +41,7 @@ description: How to use golangci-lint (configure, ignore files, ignore errors, h | GO_GOLANGCI_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 | | GO_GOLANGCI_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | GO_GOLANGCI_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| GO_GOLANGCI_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling GO_GOLANGCI_LINT and its pre/post commands | None | | GO_GOLANGCI_LINT_CONFIG_FILE | golangci-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.golangci.yml` | | GO_GOLANGCI_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | GO_GOLANGCI_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -65,9 +68,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | ## Behind the scenes diff --git a/docs/descriptors/go_revive.md b/docs/descriptors/go_revive.md index 383783de6eb..622f5d9c4f9 100644 --- a/docs/descriptors/go_revive.md +++ b/docs/descriptors/go_revive.md @@ -9,7 +9,7 @@ description: How to use revive (configure, ignore files, ignore errors, help & v ## revive documentation -- Version in MegaLinter: **1.3.1** +- Version in MegaLinter: **1.3.2** - Visit [Official Web Site](https://revive.run/){target=_blank} - See [How to configure revive rules](https://revive.run/docs#custom-configuration){target=_blank} - See [Index of problems detected by revive](https://revive.run/r){target=_blank} @@ -31,6 +31,7 @@ description: How to use revive (configure, ignore files, ignore errors, help & v | GO_REVIVE_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 | | GO_REVIVE_PRE_COMMANDS | List of bash commands to run before the linter | None | | GO_REVIVE_POST_COMMANDS | List of bash commands to run after the linter | None | +| GO_REVIVE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling GO_REVIVE and its pre/post commands | None | | GO_REVIVE_CONFIG_FILE | revive configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `revive.toml` | | GO_REVIVE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | GO_REVIVE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -53,9 +54,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | ## Behind the scenes diff --git a/docs/descriptors/graphql_graphql_schema_linter.md b/docs/descriptors/graphql_graphql_schema_linter.md index 7f27a7de27f..be82a4b55e7 100644 --- a/docs/descriptors/graphql_graphql_schema_linter.md +++ b/docs/descriptors/graphql_graphql_schema_linter.md @@ -32,6 +32,7 @@ description: How to use graphql-schema-linter (configure, ignore files, ignore e | GRAPHQL_GRAPHQL_SCHEMA_LINTER_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 | | GRAPHQL_GRAPHQL_SCHEMA_LINTER_PRE_COMMANDS | List of bash commands to run before the linter | None | | GRAPHQL_GRAPHQL_SCHEMA_LINTER_POST_COMMANDS | List of bash commands to run after the linter | None | +| GRAPHQL_GRAPHQL_SCHEMA_LINTER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling GRAPHQL_GRAPHQL_SCHEMA_LINTER and its pre/post commands | None | | GRAPHQL_GRAPHQL_SCHEMA_LINTER_CONFIG_FILE | graphql-schema-linter configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.graphql-schema-linterrc` | | GRAPHQL_GRAPHQL_SCHEMA_LINTER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | GRAPHQL_GRAPHQL_SCHEMA_LINTER_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -42,22 +43,23 @@ description: How to use graphql-schema-linter (configure, ignore files, ignore e This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/groovy_npm_groovy_lint.md b/docs/descriptors/groovy_npm_groovy_lint.md index c16f377a357..f571c2c9b0f 100644 --- a/docs/descriptors/groovy_npm_groovy_lint.md +++ b/docs/descriptors/groovy_npm_groovy_lint.md @@ -35,6 +35,7 @@ description: How to use npm-groovy-lint (configure, ignore files, ignore errors, | GROOVY_NPM_GROOVY_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"]` | `["Jenkinsfile"]` | | GROOVY_NPM_GROOVY_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | GROOVY_NPM_GROOVY_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| GROOVY_NPM_GROOVY_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling GROOVY_NPM_GROOVY_LINT and its pre/post commands | None | | GROOVY_NPM_GROOVY_LINT_CONFIG_FILE | npm-groovy-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.groovylintrc.json` | | GROOVY_NPM_GROOVY_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | GROOVY_NPM_GROOVY_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -55,21 +56,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/html_djlint.md b/docs/descriptors/html_djlint.md index ff1b8160589..c86c8c6ff3d 100644 --- a/docs/descriptors/html_djlint.md +++ b/docs/descriptors/html_djlint.md @@ -27,7 +27,7 @@ For example, define `HTML_DJLINT_HTMLHINT_ARGUMENTS: ["--profile", "django"]` to ## djlint documentation -- Version in MegaLinter: **1.27.2** +- Version in MegaLinter: **1.31.1** - Visit [Official Web Site](https://djlint.com/){target=_blank} - See [How to configure djlint rules](https://djlint.com/docs/configuration/){target=_blank} - See [How to disable djlint rules in files](https://djlint.com/docs/ignoring-code/){target=_blank} @@ -50,6 +50,7 @@ For example, define `HTML_DJLINT_HTMLHINT_ARGUMENTS: ["--profile", "django"]` to | HTML_DJLINT_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 | | HTML_DJLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | HTML_DJLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| HTML_DJLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling HTML_DJLINT and its pre/post commands | None | | HTML_DJLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | HTML_DJLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | HTML_DJLINT_CLI_EXECUTABLE | Override CLI executable | `['djlint']` | @@ -67,22 +68,23 @@ Use djlint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -161,6 +163,12 @@ Options: --indent-js INTEGER Set JS indent level. --close-void-tags Add closing mark on known void tags. Ex: becomse + --no-line-after-yaml Do not add a blank line after yaml front + matter. + --no-function-formatting Do not attempt to format function contents. + --no-set-formatting Do not attempt to format set contents. + --max-blank-lines INTEGER Consolidate blank lines down to x lines. + [default: 0] -h, --help Show this message and exit. ``` diff --git a/docs/descriptors/html_htmlhint.md b/docs/descriptors/html_htmlhint.md index 9e930717b22..8a722adc9a5 100644 --- a/docs/descriptors/html_htmlhint.md +++ b/docs/descriptors/html_htmlhint.md @@ -33,6 +33,7 @@ description: How to use htmlhint (configure, ignore files, ignore errors, help & | HTML_HTMLHINT_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 | | HTML_HTMLHINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | HTML_HTMLHINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| HTML_HTMLHINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling HTML_HTMLHINT and its pre/post commands | None | | HTML_HTMLHINT_CONFIG_FILE | htmlhint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.htmlhintrc` | | HTML_HTMLHINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | HTML_HTMLHINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -46,7 +47,7 @@ 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} | +| | [Brackets](https://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=HTMLHint.vscode-htmlhint) | [![Install in VSCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/HTMLHint.vscode-htmlhint){target=_blank} | @@ -54,22 +55,23 @@ Use htmlhint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/java_checkstyle.md b/docs/descriptors/java_checkstyle.md index 1e69e6a4d7a..429e37acdaf 100644 --- a/docs/descriptors/java_checkstyle.md +++ b/docs/descriptors/java_checkstyle.md @@ -15,11 +15,11 @@ description: How to use checkstyle (configure, ignore files, ignore errors, help ## checkstyle documentation -- Version in MegaLinter: **10.11.0** +- Version in MegaLinter: **10.12.1** - 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 isn't 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 [How to disable checkstyle rules in files](https://checkstyle.sourceforge.io/filters/suppresswarningsfilter.html#SuppressWarningsFilter){target=_blank} - See [Index of problems detected by checkstyle](https://checkstyle.sourceforge.io/checks.html){target=_blank} [![checkstyle - GitHub](https://gh-card.dev/repos/checkstyle/checkstyle.svg?fullname=)](https://github.com/checkstyle/checkstyle){target=_blank} @@ -39,6 +39,7 @@ description: How to use checkstyle (configure, ignore files, ignore errors, help | JAVA_CHECKSTYLE_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_CHECKSTYLE_PRE_COMMANDS | List of bash commands to run before the linter | None | | JAVA_CHECKSTYLE_POST_COMMANDS | List of bash commands to run after the linter | None | +| JAVA_CHECKSTYLE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JAVA_CHECKSTYLE and its pre/post commands | None | | JAVA_CHECKSTYLE_CONFIG_FILE | checkstyle configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `sun_checks.xml` | | JAVA_CHECKSTYLE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JAVA_CHECKSTYLE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -61,9 +62,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes diff --git a/docs/descriptors/java_pmd.md b/docs/descriptors/java_pmd.md index 0c2326abe53..ec6ed3b8a07 100644 --- a/docs/descriptors/java_pmd.md +++ b/docs/descriptors/java_pmd.md @@ -4,17 +4,17 @@ description: How to use pmd (configure, ignore files, ignore errors, help & vers --- -# pmd +# pmd [![GitHub stars](https://img.shields.io/github/stars/pmd/pmd?cacheSeconds=3600)](https://github.com/pmd/pmd) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pmd/pmd?sort=semver)](https://github.com/pmd/pmd/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/pmd/pmd)](https://github.com/pmd/pmd/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/pmd/pmd)](https://github.com/pmd/pmd/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/pmd/pmd)](https://github.com/pmd/pmd/graphs/contributors/) ## pmd documentation - Version in MegaLinter: **6.55.0** - Visit [Official Web Site](https://pmd.github.io/){target=_blank} -- See [How to configure pmd rules](https://pmd.github.io/pmd-6.55.0/pmd_userdocs_configuring_rules.html){target=_blank} +- See [How to configure pmd rules](https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_configuring_rules.html){target=_blank} - If custom `java-pmd-ruleset.xml` config file isn't found, [java-pmd-ruleset.xml](https://github.com/oxsecurity/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.55.0/pmd_userdocs_suppressing_warnings.html){target=_blank} -- See [Index of problems detected by pmd](https://pmd.github.io/pmd-6.55.0/pmd_rules_java.html){target=_blank} +- See [How to disable pmd rules in files](https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_suppressing_warnings.html){target=_blank} +- See [Index of problems detected by pmd](https://docs.pmd-code.org/pmd-doc-6.55.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} @@ -33,6 +33,7 @@ description: How to use pmd (configure, ignore files, ignore errors, help & vers | 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JAVA_PMD and its pre/post commands | 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` | @@ -45,9 +46,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes diff --git a/docs/descriptors/javascript_eslint.md b/docs/descriptors/javascript_eslint.md index 6cabef6d7d4..dca4dce99ed 100644 --- a/docs/descriptors/javascript_eslint.md +++ b/docs/descriptors/javascript_eslint.md @@ -19,7 +19,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.40.0** +- Version in MegaLinter: **8.45.0** - Visit [Official Web Site](https://eslint.org){target=_blank} - See [How to configure eslint rules](https://eslint.org/docs/user-guide/configuring){target=_blank} - See [How to disable eslint rules in files](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments){target=_blank} @@ -46,6 +46,7 @@ You can create it by typing `npx eslint --init` in the root of your repository | JAVASCRIPT_ES_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 | | JAVASCRIPT_ES_PRE_COMMANDS | List of bash commands to run before the linter | None | | JAVASCRIPT_ES_POST_COMMANDS | List of bash commands to run after the linter | None | +| JAVASCRIPT_ES_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JAVASCRIPT_ES and its pre/post commands | None | | JAVASCRIPT_ES_CONFIG_FILE | eslint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.eslintrc.json` | | JAVASCRIPT_ES_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JAVASCRIPT_ES_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -59,7 +60,7 @@ 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} | +| | [Brackets](https://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) | | @@ -72,11 +73,12 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/javascript_prettier.md b/docs/descriptors/javascript_prettier.md index ae19fa442de..7dcb9014679 100644 --- a/docs/descriptors/javascript_prettier.md +++ b/docs/descriptors/javascript_prettier.md @@ -15,7 +15,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & ## prettier documentation -- Version in MegaLinter: **2.8.8** +- Version in MegaLinter: **3.0.0** - Visit [Official Web Site](https://prettier.io/){target=_blank} - See [How to configure prettier rules](https://prettier.io/docs/en/configuration.html){target=_blank} - See [How to disable prettier rules in files](https://prettier.io/docs/en/ignore.html#javascript){target=_blank} @@ -41,6 +41,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & | JAVASCRIPT_PRETTIER_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 | | JAVASCRIPT_PRETTIER_PRE_COMMANDS | List of bash commands to run before the linter | None | | JAVASCRIPT_PRETTIER_POST_COMMANDS | List of bash commands to run after the linter | None | +| JAVASCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JAVASCRIPT_PRETTIER and its pre/post commands | None | | JAVASCRIPT_PRETTIER_CONFIG_FILE | prettier configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.prettierrc.json` | | JAVASCRIPT_PRETTIER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JAVASCRIPT_PRETTIER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -69,11 +70,12 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -154,9 +156,9 @@ Format options: Defaults to false. --tab-width Number of spaces per indentation level. Defaults to 2. - --trailing-comma + --trailing-comma Print trailing commas wherever possible when multi-line. - Defaults to es5. + Defaults to all. --use-tabs Indent with tabs instead of spaces. Defaults to false. --vue-indent-script-and-style @@ -174,13 +176,9 @@ Config options: --find-config-path Find and print the path to a configuration file for the given input file. --ignore-path Path to a file with patterns describing files to ignore. - Defaults to .prettierignore. - --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. - Defaults to []. - --plugin-search-dir - Custom directory that contains prettier plugins in node_modules subdirectory. - Overrides default behavior when plugins are searched relatively to the location of Prettier. Multiple values are accepted. + Defaults to [.gitignore, .prettierignore]. + --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. Defaults to []. --with-node-modules Process files inside 'node_modules' directory. @@ -216,10 +214,9 @@ Other options: -u, --ignore-unknown Ignore unknown files. --insert-pragma Insert @format pragma into file's first docblock comment. Defaults to false. - --loglevel + --log-level What level of logs to report. Defaults to log. - --no-plugin-search Disable plugin autoloading. --require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted. Defaults to false. diff --git a/docs/descriptors/javascript_standard.md b/docs/descriptors/javascript_standard.md index 544a2684813..07531f28dce 100644 --- a/docs/descriptors/javascript_standard.md +++ b/docs/descriptors/javascript_standard.md @@ -15,7 +15,7 @@ description: How to use standard (configure, ignore files, ignore errors, help & ## standard documentation -- Version in MegaLinter: **17.0.0** +- Version in MegaLinter: **17.1.0** - Visit [Official Web Site](https://standardjs.com/){target=_blank} - See [Index of problems detected by standard](https://standardjs.com/rules.html){target=_blank} @@ -39,6 +39,7 @@ description: How to use standard (configure, ignore files, ignore errors, help & | JAVASCRIPT_STANDARD_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 | | JAVASCRIPT_STANDARD_PRE_COMMANDS | List of bash commands to run before the linter | None | | JAVASCRIPT_STANDARD_POST_COMMANDS | List of bash commands to run after the linter | None | +| JAVASCRIPT_STANDARD_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JAVASCRIPT_STANDARD and its pre/post commands | None | | JAVASCRIPT_STANDARD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | JAVASCRIPT_STANDARD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | JAVASCRIPT_STANDARD_CLI_EXECUTABLE | Override CLI executable | `['standard']` | @@ -52,7 +53,7 @@ Use standard in your favorite IDE to catch errors before MegaLinter ! | | [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} | +| | [Brackets](https://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} | @@ -62,11 +63,12 @@ Use standard in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -115,6 +117,7 @@ Flags: Flags (advanced): --stdin Read file text from stdin --ext Specify JavaScript file extensions + --ignore Specify files to ignore --global Declare global variable --plugin Use custom eslint plugin --env Use custom eslint environment diff --git a/docs/descriptors/json_eslint_plugin_jsonc.md b/docs/descriptors/json_eslint_plugin_jsonc.md index ce00a77d7df..24fc041b312 100644 --- a/docs/descriptors/json_eslint_plugin_jsonc.md +++ b/docs/descriptors/json_eslint_plugin_jsonc.md @@ -72,7 +72,7 @@ DISABLE_LINTERS: ## eslint-plugin-jsonc documentation -- Version in MegaLinter: **2.8.0** +- Version in MegaLinter: **2.9.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 isn't found, [.eslintrc-json.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.eslintrc-json.json){target=_blank} will be used @@ -100,6 +100,7 @@ DISABLE_LINTERS: | JSON_ESLINT_PLUGIN_JSONC_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_ESLINT_PLUGIN_JSONC_PRE_COMMANDS | List of bash commands to run before the linter | None | | JSON_ESLINT_PLUGIN_JSONC_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSON_ESLINT_PLUGIN_JSONC_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_ESLINT_PLUGIN_JSONC and its pre/post commands | None | | JSON_ESLINT_PLUGIN_JSONC_CONFIG_FILE | eslint-plugin-jsonc configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.eslintrc-json.json` | | JSON_ESLINT_PLUGIN_JSONC_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JSON_ESLINT_PLUGIN_JSONC_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -120,21 +121,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/json_jsonlint.md b/docs/descriptors/json_jsonlint.md index 04b00a17c56..8ae16756db4 100644 --- a/docs/descriptors/json_jsonlint.md +++ b/docs/descriptors/json_jsonlint.md @@ -31,6 +31,7 @@ description: How to use jsonlint (configure, ignore files, ignore errors, help & | JSON_JSONLINT_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_JSONLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | JSON_JSONLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSON_JSONLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_JSONLINT and its pre/post commands | None | | JSON_JSONLINT_CONFIG_FILE | jsonlint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.jsonlintrc` | | JSON_JSONLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JSON_JSONLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -43,21 +44,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/json_npm_package_json_lint.md b/docs/descriptors/json_npm_package_json_lint.md index cf1cea6c043..57bf9430b16 100644 --- a/docs/descriptors/json_npm_package_json_lint.md +++ b/docs/descriptors/json_npm_package_json_lint.md @@ -9,7 +9,7 @@ description: How to use npm-package-json-lint (configure, ignore files, ignore e ## npm-package-json-lint documentation -- Version in MegaLinter: **6.4.0** +- Version in MegaLinter: **7.0.0** - Visit [Official Web Site](https://npmpackagejsonlint.org/){target=_blank} - See [How to configure npm-package-json-lint rules](https://npmpackagejsonlint.org/docs/configuration){target=_blank} - If custom `.npmpackagejsonlintrc.json` config file isn't found, [.npmpackagejsonlintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.npmpackagejsonlintrc.json){target=_blank} will be used @@ -31,6 +31,7 @@ description: How to use npm-package-json-lint (configure, ignore files, ignore e | JSON_NPM_PACKAGE_JSON_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"]` | `["package\\.json"]` | | JSON_NPM_PACKAGE_JSON_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | JSON_NPM_PACKAGE_JSON_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSON_NPM_PACKAGE_JSON_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_NPM_PACKAGE_JSON_LINT and its pre/post commands | None | | JSON_NPM_PACKAGE_JSON_LINT_CONFIG_FILE | npm-package-json-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.npmpackagejsonlintrc.json` | | JSON_NPM_PACKAGE_JSON_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JSON_NPM_PACKAGE_JSON_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -41,13 +42,14 @@ description: How to use npm-package-json-lint (configure, ignore files, ignore e This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes diff --git a/docs/descriptors/json_prettier.md b/docs/descriptors/json_prettier.md index 56ece6f0d5a..4f2f008156c 100644 --- a/docs/descriptors/json_prettier.md +++ b/docs/descriptors/json_prettier.md @@ -15,7 +15,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & ## prettier documentation -- Version in MegaLinter: **2.8.8** +- Version in MegaLinter: **3.0.0** - Visit [Official Web Site](https://prettier.io/){target=_blank} - See [How to configure prettier rules](https://prettier.io/docs/en/configuration.html){target=_blank} - See [How to disable prettier rules in files](https://prettier.io/docs/en/ignore.html#javascript){target=_blank} @@ -40,6 +40,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & | JSON_PRETTIER_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_PRETTIER_PRE_COMMANDS | List of bash commands to run before the linter | None | | JSON_PRETTIER_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSON_PRETTIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_PRETTIER and its pre/post commands | None | | JSON_PRETTIER_CONFIG_FILE | prettier configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.prettierrc.json` | | JSON_PRETTIER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JSON_PRETTIER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -70,21 +71,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -165,9 +167,9 @@ Format options: Defaults to false. --tab-width Number of spaces per indentation level. Defaults to 2. - --trailing-comma + --trailing-comma Print trailing commas wherever possible when multi-line. - Defaults to es5. + Defaults to all. --use-tabs Indent with tabs instead of spaces. Defaults to false. --vue-indent-script-and-style @@ -185,13 +187,9 @@ Config options: --find-config-path Find and print the path to a configuration file for the given input file. --ignore-path Path to a file with patterns describing files to ignore. - Defaults to .prettierignore. - --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. - Defaults to []. - --plugin-search-dir - Custom directory that contains prettier plugins in node_modules subdirectory. - Overrides default behavior when plugins are searched relatively to the location of Prettier. Multiple values are accepted. + Defaults to [.gitignore, .prettierignore]. + --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. Defaults to []. --with-node-modules Process files inside 'node_modules' directory. @@ -227,10 +225,9 @@ Other options: -u, --ignore-unknown Ignore unknown files. --insert-pragma Insert @format pragma into file's first docblock comment. Defaults to false. - --loglevel + --log-level What level of logs to report. Defaults to log. - --no-plugin-search Disable plugin autoloading. --require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted. Defaults to false. diff --git a/docs/descriptors/json_v8r.md b/docs/descriptors/json_v8r.md index e274004cbc2..b7596d75d37 100644 --- a/docs/descriptors/json_v8r.md +++ b/docs/descriptors/json_v8r.md @@ -32,6 +32,7 @@ v8r checks the validity of JSON/YAML files if they have a matching schema define | 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 | | JSON_V8R_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSON_V8R_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSON_V8R and its pre/post commands | None | | JSON_V8R_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | JSON_V8R_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | JSON_V8R_CLI_EXECUTABLE | Override CLI executable | `['v8r']` | @@ -53,21 +54,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/jsx_eslint.md b/docs/descriptors/jsx_eslint.md index 655ff0289ff..0bd01638128 100644 --- a/docs/descriptors/jsx_eslint.md +++ b/docs/descriptors/jsx_eslint.md @@ -18,7 +18,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.40.0** +- Version in MegaLinter: **8.45.0** - Visit [Official Web Site](https://github.com/yannickcr/eslint-plugin-react#readme){target=_blank} - See [How to configure eslint rules](https://github.com/yannickcr/eslint-plugin-react#configuration){target=_blank} - See [How to disable eslint rules in files](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments){target=_blank} @@ -45,6 +45,7 @@ You can create it by typing `npx eslint --init` in the root of your repository | JSX_ESLINT_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 | | JSX_ESLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | JSX_ESLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| JSX_ESLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling JSX_ESLINT and its pre/post commands | None | | JSX_ESLINT_CONFIG_FILE | eslint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.eslintrc.json` | | JSX_ESLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | JSX_ESLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -58,7 +59,7 @@ 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} | +| | [Brackets](https://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) | | @@ -71,11 +72,12 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/kotlin_ktlint.md b/docs/descriptors/kotlin_ktlint.md index 818321fb75c..a7312d12e5c 100644 --- a/docs/descriptors/kotlin_ktlint.md +++ b/docs/descriptors/kotlin_ktlint.md @@ -15,7 +15,7 @@ description: How to use ktlint (configure, ignore files, ignore errors, help & v ## ktlint documentation -- Version in MegaLinter: **0.49.1** +- Version in MegaLinter: **0.50.0** - Visit [Official Web Site](https://ktlint.github.io){target=_blank} - See [Index of problems detected by ktlint](https://ktlint.github.io/#rules){target=_blank} @@ -38,6 +38,7 @@ description: How to use ktlint (configure, ignore files, ignore errors, help & v | KOTLIN_KTLINT_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 | | KOTLIN_KTLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | KOTLIN_KTLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| KOTLIN_KTLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling KOTLIN_KTLINT and its pre/post commands | None | | KOTLIN_KTLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | KOTLIN_KTLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | KOTLIN_KTLINT_CLI_EXECUTABLE | Override CLI executable | `['ktlint']` | @@ -55,22 +56,23 @@ Use ktlint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -147,7 +149,7 @@ Flags: Comma-separated list of rules to globally disable. To disable standard ktlint rule-set use --disabled_rules=standard - -F, --format Fix any deviations from the code style + -F, --format Fix deviations from the code style when possible --limit= Maximum number of errors to show (default: show all) --relative Print files relative to the working directory (e.g. dir/file.kt instead of /home/user/project/dir/file.kt) diff --git a/docs/descriptors/kubernetes_helm.md b/docs/descriptors/kubernetes_helm.md index e9b33121607..53f43a2f675 100644 --- a/docs/descriptors/kubernetes_helm.md +++ b/docs/descriptors/kubernetes_helm.md @@ -34,6 +34,7 @@ description: How to use helm (configure, ignore files, ignore errors, help & ver | KUBERNETES_HELM_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 | | KUBERNETES_HELM_PRE_COMMANDS | List of bash commands to run before the linter | None | | KUBERNETES_HELM_POST_COMMANDS | List of bash commands to run after the linter | None | +| KUBERNETES_HELM_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling KUBERNETES_HELM and its pre/post commands | None | | KUBERNETES_HELM_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | KUBERNETES_HELM_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | KUBERNETES_HELM_CLI_EXECUTABLE | Override CLI executable | `['helm']` | @@ -43,23 +44,24 @@ description: How to use helm (configure, ignore files, ignore errors, help & ver This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/kubernetes_kubeconform.md b/docs/descriptors/kubernetes_kubeconform.md index 293df6c38cc..f1779d30fb0 100644 --- a/docs/descriptors/kubernetes_kubeconform.md +++ b/docs/descriptors/kubernetes_kubeconform.md @@ -17,7 +17,7 @@ description: How to use kubeconform (configure, ignore files, ignore errors, hel ## kubeconform documentation -- Version in MegaLinter: **0.5.0** +- Version in MegaLinter: **0.6.3** - Visit [Official Web Site](https://github.com/yannh/kubeconform#readme){target=_blank} [![kubeconform - GitHub](https://gh-card.dev/repos/yannh/kubeconform.svg?fullname=)](https://github.com/yannh/kubeconform){target=_blank} @@ -37,6 +37,7 @@ description: How to use kubeconform (configure, ignore files, ignore errors, hel | KUBERNETES_KUBECONFORM_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 | | KUBERNETES_KUBECONFORM_PRE_COMMANDS | List of bash commands to run before the linter | None | | KUBERNETES_KUBECONFORM_POST_COMMANDS | List of bash commands to run after the linter | None | +| KUBERNETES_KUBECONFORM_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling KUBERNETES_KUBECONFORM and its pre/post commands | None | | KUBERNETES_KUBECONFORM_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | KUBERNETES_KUBECONFORM_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | KUBERNETES_KUBECONFORM_CLI_EXECUTABLE | Override CLI executable | `['kubeconform']` | @@ -46,23 +47,24 @@ description: How to use kubeconform (configure, ignore files, ignore errors, hel This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -111,7 +113,7 @@ Usage: kubeconform [OPTION]... [FILE OR FOLDER]... -n int number of goroutines to run concurrently (default 4) -output string - output format - json, junit, tap, text (default "text") + output format - json, junit, pretty, tap, text (default "text") -reject string comma-separated list of kinds or GVKs to reject -schema-location value @@ -132,8 +134,7 @@ Usage: kubeconform [OPTION]... [FILE OR FOLDER]... - Dockerfile commands : ```dockerfile -RUN go install github.com/yannh/kubeconform/cmd/kubeconform@latest +FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform +COPY --link --from=kubeconform /kubeconform /usr/bin/ ``` -- APK packages (Linux): - - [go](https://pkgs.alpinelinux.org/packages?branch=edge&name=go) diff --git a/docs/descriptors/kubernetes_kubescape.md b/docs/descriptors/kubernetes_kubescape.md index 5e9555131b6..576c1a00d1d 100644 --- a/docs/descriptors/kubernetes_kubescape.md +++ b/docs/descriptors/kubernetes_kubescape.md @@ -11,12 +11,13 @@ description: How to use kubescape (configure, ignore files, ignore errors, help -[![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/kubescape/kubescape?sort=semver)](https://github.com/kubescape/kubescape/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/kubescape/kubescape)](https://github.com/kubescape/kubescape/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/kubescape/kubescape)](https://github.com/kubescape/kubescape/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/kubescape/kubescape)](https://github.com/kubescape/kubescape/graphs/contributors/) +![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/kubescape/kubescape?sort=semver)](https://github.com/kubescape/kubescape/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/kubescape/kubescape)](https://github.com/kubescape/kubescape/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/kubescape/kubescape)](https://github.com/kubescape/kubescape/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/kubescape/kubescape)](https://github.com/kubescape/kubescape/graphs/contributors/) `kubescape scan` examines charts and kubernetes files for possible issues, best practices and security vulnerabilities. ## kubescape documentation +- Version in MegaLinter: **2.3.6** - Visit [Official Web Site](https://github.com/kubescape/kubescape#readme){target=_blank} [![kubescape - GitHub](https://gh-card.dev/repos/kubescape/kubescape.svg?fullname=)](https://github.com/kubescape/kubescape){target=_blank} @@ -33,6 +34,7 @@ description: How to use kubescape (configure, ignore files, ignore errors, help | KUBERNETES_KUBESCAPE_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 | | KUBERNETES_KUBESCAPE_PRE_COMMANDS | List of bash commands to run before the linter | None | | KUBERNETES_KUBESCAPE_POST_COMMANDS | List of bash commands to run after the linter | None | +| KUBERNETES_KUBESCAPE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling KUBERNETES_KUBESCAPE and its pre/post commands | None | | KUBERNETES_KUBESCAPE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | KUBERNETES_KUBESCAPE_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | KUBERNETES_KUBESCAPE_CLI_EXECUTABLE | Override CLI executable | `['kubescape']` | @@ -50,23 +52,24 @@ Use kubescape in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -93,14 +96,63 @@ kubescape scan . ``` +### Help content + +```shell +Kubescape is a tool for testing Kubernetes security posture. Docs: https://hub.armosec.io/docs + +Usage: + kubescape [command] + +Examples: + + # Scan command + kubescape scan + + # List supported frameworks + kubescape list frameworks + + # Download artifacts (air-gapped environment support) + kubescape download artifacts + + # View cached configurations + kubescape config view + + +Available Commands: + completion Generate autocompletion script + config Handle cached configurations + delete Delete configurations in Kubescape SaaS version + download Download exceptions,control,framework,artifacts,attack-tracks,controls-inputs + fix Fix misconfiguration in files + help Help about any command + list List frameworks/controls will list the supported frameworks and controls + scan Scan the current running cluster or yaml files + submit Submit an object to the Kubescape SaaS version + update Update your version + version Get current version + +Flags: + --cache-dir string Cache directory [$KS_CACHE_DIR] (default "/root/.kubescape") + --disable-color Disable Color output for logging + --enable-color Force enable Color output for logging + -h, --help help for kubescape + -l, --logger string Logger level. Supported: debug/info/success/warning/error/fatal [$KS_LOGGER] (default "info") + +Use "kubescape [command] --help" for more information about a command. +``` + ### Installation on mega-linter Docker image - Dockerfile commands : ```dockerfile -RUN curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash +RUN ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 ``` - APK packages (Linux): - [curl](https://pkgs.alpinelinux.org/packages?branch=edge&name=curl) - [gcompat](https://pkgs.alpinelinux.org/packages?branch=edge&name=gcompat) + - [libc6-compat](https://pkgs.alpinelinux.org/packages?branch=edge&name=libc6-compat) + - [libstdc++](https://pkgs.alpinelinux.org/packages?branch=edge&name=libstdc++) diff --git a/docs/descriptors/latex_chktex.md b/docs/descriptors/latex_chktex.md index d5d44eb319f..16a3d03c2b6 100644 --- a/docs/descriptors/latex_chktex.md +++ b/docs/descriptors/latex_chktex.md @@ -28,6 +28,7 @@ description: How to use chktex (configure, ignore files, ignore errors, help & v | LATEX_CHKTEX_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 | | LATEX_CHKTEX_PRE_COMMANDS | List of bash commands to run before the linter | None | | LATEX_CHKTEX_POST_COMMANDS | List of bash commands to run after the linter | None | +| LATEX_CHKTEX_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling LATEX_CHKTEX and its pre/post commands | None | | LATEX_CHKTEX_CONFIG_FILE | chktex configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.chktexrc` | | LATEX_CHKTEX_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | LATEX_CHKTEX_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -49,7 +50,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/lua_luacheck.md b/docs/descriptors/lua_luacheck.md index d8d7639a915..923f2152b34 100644 --- a/docs/descriptors/lua_luacheck.md +++ b/docs/descriptors/lua_luacheck.md @@ -9,7 +9,7 @@ description: How to use luacheck (configure, ignore files, ignore errors, help & ## luacheck documentation -- Version in MegaLinter: **1.1.0** +- Version in MegaLinter: **1.1.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 isn't found, [.luacheckrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.luacheckrc){target=_blank} will be used @@ -33,6 +33,7 @@ description: How to use luacheck (configure, ignore files, ignore errors, help & | LUA_LUACHECK_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 | | LUA_LUACHECK_PRE_COMMANDS | List of bash commands to run before the linter | None | | LUA_LUACHECK_POST_COMMANDS | List of bash commands to run after the linter | None | +| LUA_LUACHECK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling LUA_LUACHECK and its pre/post commands | None | | LUA_LUACHECK_CONFIG_FILE | luacheck configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.luacheckrc` | | LUA_LUACHECK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | LUA_LUACHECK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -46,7 +47,7 @@ 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} | +| | [Brackets](https://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} | @@ -58,7 +59,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -108,7 +109,7 @@ Usage: luacheck ([--config ] | [--no-config]) [--exclude-files [] ...] [--include-files [] ...] -luacheck 1.1.0, a linter and a static analyzer for Lua. +luacheck 1.1.1, a linter and a static analyzer for Lua. Arguments: files List of files, directories and rockspecs to check. Pass diff --git a/docs/descriptors/makefile_checkmake.md b/docs/descriptors/makefile_checkmake.md index 8837d30cd8e..ae77f6be8c6 100644 --- a/docs/descriptors/makefile_checkmake.md +++ b/docs/descriptors/makefile_checkmake.md @@ -30,6 +30,7 @@ description: How to use checkmake (configure, ignore files, ignore errors, help | MAKEFILE_CHECKMAKE_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"]` | `["Makefile"]` | | MAKEFILE_CHECKMAKE_PRE_COMMANDS | List of bash commands to run before the linter | None | | MAKEFILE_CHECKMAKE_POST_COMMANDS | List of bash commands to run after the linter | None | +| MAKEFILE_CHECKMAKE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling MAKEFILE_CHECKMAKE and its pre/post commands | None | | MAKEFILE_CHECKMAKE_CONFIG_FILE | checkmake configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.checkmake.ini` | | MAKEFILE_CHECKMAKE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | MAKEFILE_CHECKMAKE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -42,14 +43,15 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/markdown_markdown_link_check.md b/docs/descriptors/markdown_markdown_link_check.md index 24894767109..576fe1f5cce 100644 --- a/docs/descriptors/markdown_markdown_link_check.md +++ b/docs/descriptors/markdown_markdown_link_check.md @@ -32,6 +32,7 @@ description: How to use markdown-link-check (configure, ignore files, ignore err | MARKDOWN_MARKDOWN_LINK_CHECK_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 | | MARKDOWN_MARKDOWN_LINK_CHECK_PRE_COMMANDS | List of bash commands to run before the linter | None | | MARKDOWN_MARKDOWN_LINK_CHECK_POST_COMMANDS | List of bash commands to run after the linter | None | +| MARKDOWN_MARKDOWN_LINK_CHECK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWN_LINK_CHECK and its pre/post commands | None | | MARKDOWN_MARKDOWN_LINK_CHECK_CONFIG_FILE | markdown-link-check configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.markdown-link-check.json` | | MARKDOWN_MARKDOWN_LINK_CHECK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -42,22 +43,23 @@ description: How to use markdown-link-check (configure, ignore files, ignore err This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/markdown_markdown_table_formatter.md b/docs/descriptors/markdown_markdown_table_formatter.md index fc6535f1783..8bd2dfa9b5b 100644 --- a/docs/descriptors/markdown_markdown_table_formatter.md +++ b/docs/descriptors/markdown_markdown_table_formatter.md @@ -33,6 +33,7 @@ markdown-table-formatter detects wrongly formatted markdown tables and can autom | MARKDOWN_MARKDOWN_TABLE_FORMATTER_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 | | MARKDOWN_MARKDOWN_TABLE_FORMATTER_PRE_COMMANDS | List of bash commands to run before the linter | None | | MARKDOWN_MARKDOWN_TABLE_FORMATTER_POST_COMMANDS | List of bash commands to run after the linter | None | +| MARKDOWN_MARKDOWN_TABLE_FORMATTER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWN_TABLE_FORMATTER and its pre/post commands | None | | MARKDOWN_MARKDOWN_TABLE_FORMATTER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | MARKDOWN_MARKDOWN_TABLE_FORMATTER_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | MARKDOWN_MARKDOWN_TABLE_FORMATTER_CLI_EXECUTABLE | Override CLI executable | `['markdown-table-formatter']` | @@ -49,22 +50,23 @@ Use markdown-table-formatter in your favorite IDE to catch errors before MegaLin This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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 7e205710eeb..a03a109936f 100644 --- a/docs/descriptors/markdown_markdownlint.md +++ b/docs/descriptors/markdown_markdownlint.md @@ -15,7 +15,7 @@ To see MarkdownLint version, you can have a look in the dependencies of latest m ## markdownlint documentation -- Version in MegaLinter: **0.34.0** +- Version in MegaLinter: **0.35.0** - 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 isn't found, [.markdownlint.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.markdownlint.json){target=_blank} will be used @@ -43,6 +43,7 @@ To see MarkdownLint version, you can have a look in the dependencies of latest m | MARKDOWN_MARKDOWNLINT_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 | | MARKDOWN_MARKDOWNLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | MARKDOWN_MARKDOWNLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| MARKDOWN_MARKDOWNLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWNLINT and its pre/post commands | None | | MARKDOWN_MARKDOWNLINT_CONFIG_FILE | markdownlint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.markdownlint.json` | | MARKDOWN_MARKDOWNLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | MARKDOWN_MARKDOWNLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -64,22 +65,23 @@ Use markdownlint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/markdown_remark_lint.md b/docs/descriptors/markdown_remark_lint.md index e8ade0e7f5f..dd1b0118bf8 100644 --- a/docs/descriptors/markdown_remark_lint.md +++ b/docs/descriptors/markdown_remark_lint.md @@ -38,6 +38,7 @@ _This linter has been temporary disabled in this version_ | MARKDOWN_REMARK_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 | | MARKDOWN_REMARK_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | MARKDOWN_REMARK_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| MARKDOWN_REMARK_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling MARKDOWN_REMARK_LINT and its pre/post commands | None | | MARKDOWN_REMARK_LINT_CONFIG_FILE | remark-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.remarkrc` | | MARKDOWN_REMARK_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | MARKDOWN_REMARK_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -61,7 +62,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/openapi_spectral.md b/docs/descriptors/openapi_spectral.md index 52a8391d77b..afd2d7ce5bb 100644 --- a/docs/descriptors/openapi_spectral.md +++ b/docs/descriptors/openapi_spectral.md @@ -15,7 +15,7 @@ description: How to use spectral (configure, ignore files, ignore errors, help & ## spectral documentation -- Version in MegaLinter: **6.6.0** +- Version in MegaLinter: **6.8.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 isn't found, [.openapirc.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.openapirc.yml){target=_blank} will be used @@ -38,6 +38,7 @@ description: How to use spectral (configure, ignore files, ignore errors, help & | OPENAPI_SPECTRAL_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 | | OPENAPI_SPECTRAL_PRE_COMMANDS | List of bash commands to run before the linter | None | | OPENAPI_SPECTRAL_POST_COMMANDS | List of bash commands to run after the linter | None | +| OPENAPI_SPECTRAL_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling OPENAPI_SPECTRAL and its pre/post commands | None | | OPENAPI_SPECTRAL_CONFIG_FILE | spectral configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.openapirc.yml` | | OPENAPI_SPECTRAL_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | OPENAPI_SPECTRAL_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -57,21 +58,22 @@ Use spectral in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/perl_perlcritic.md b/docs/descriptors/perl_perlcritic.md index 036872d89cf..8952d64ce51 100644 --- a/docs/descriptors/perl_perlcritic.md +++ b/docs/descriptors/perl_perlcritic.md @@ -38,6 +38,7 @@ description: How to use perlcritic (configure, ignore files, ignore errors, help | PERL_PERLCRITIC_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 | | PERL_PERLCRITIC_PRE_COMMANDS | List of bash commands to run before the linter | None | | PERL_PERLCRITIC_POST_COMMANDS | List of bash commands to run after the linter | None | +| PERL_PERLCRITIC_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PERL_PERLCRITIC and its pre/post commands | None | | PERL_PERLCRITIC_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | PERL_PERLCRITIC_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | PERL_PERLCRITIC_CLI_EXECUTABLE | Override CLI executable | `['perlcritic']` | @@ -48,7 +49,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/php.md b/docs/descriptors/php.md index 1ab0d89b754..266a12aa58a 100644 --- a/docs/descriptors/php.md +++ b/docs/descriptors/php.md @@ -50,7 +50,6 @@ RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" ``` - APK packages (Linux): @@ -64,5 +63,4 @@ ENV PATH="/root/.composer/vendor/bin:$PATH" - [php81-curl](https://pkgs.alpinelinux.org/packages?branch=edge&name=php81-curl) - [php81-dom](https://pkgs.alpinelinux.org/packages?branch=edge&name=php81-dom) - [php81-simplexml](https://pkgs.alpinelinux.org/packages?branch=edge&name=php81-simplexml) - - [composer](https://pkgs.alpinelinux.org/packages?branch=edge&name=composer) - [dpkg](https://pkgs.alpinelinux.org/packages?branch=edge&name=dpkg) diff --git a/docs/descriptors/php_phpcs.md b/docs/descriptors/php_phpcs.md index c869d9abc27..a557c0fd645 100644 --- a/docs/descriptors/php_phpcs.md +++ b/docs/descriptors/php_phpcs.md @@ -32,6 +32,7 @@ description: How to use phpcs (configure, ignore files, ignore errors, help & ve | PHP_PHPCS_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 | | PHP_PHPCS_PRE_COMMANDS | List of bash commands to run before the linter | None | | PHP_PHPCS_POST_COMMANDS | List of bash commands to run after the linter | None | +| PHP_PHPCS_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PHP_PHPCS and its pre/post commands | None | | PHP_PHPCS_CONFIG_FILE | phpcs configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `phpcs.xml` | | PHP_PHPCS_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PHP_PHPCS_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -57,9 +58,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -180,7 +181,6 @@ RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # Linter install RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install phpcs -g --trust-gpg-keys 31C7E470E2138192 diff --git a/docs/descriptors/php_phplint.md b/docs/descriptors/php_phplint.md index 4f7190b9365..8007a4ae6f5 100644 --- a/docs/descriptors/php_phplint.md +++ b/docs/descriptors/php_phplint.md @@ -9,7 +9,7 @@ description: How to use phplint (configure, ignore files, ignore errors, help & ## phplint documentation -- Version in MegaLinter: **5.5** +- Version in MegaLinter: **9.0.4** - Visit [Official Web Site](https://github.com/overtrue/phplint#readme){target=_blank} - If custom `.phplint.yml` config file isn't found, [.phplint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.phplint.yml){target=_blank} will be used @@ -30,6 +30,7 @@ description: How to use phplint (configure, ignore files, ignore errors, help & | PHP_PHPLINT_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 | | PHP_PHPLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PHP_PHPLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PHP_PHPLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PHP_PHPLINT and its pre/post commands | None | | PHP_PHPLINT_CONFIG_FILE | phplint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.phplint.yml` | | PHP_PHPLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PHP_PHPLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -42,9 +43,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -81,32 +82,35 @@ phplint mydir -vvv ```shell Description: - Lint something + Files syntax check only Usage: - phplint [options] [--] [...] + lint [options] [--] [...] Arguments: - path Path to file or directory to lint. + path Path to file or directory to lint (default: working directory) Options: --exclude=EXCLUDE Path to file or directory to exclude from linting (multiple values allowed) - --extensions=EXTENSIONS Check only files with selected extensions (default: php) - -j, --jobs=JOBS Number of parraled jobs to run (default: 5) - -c, --configuration=CONFIGURATION Read configuration from config file (default: ./.phplint.yml). - --no-configuration Ignore default configuration file (default: ./.phplint.yml). - --no-cache Ignore cached data. - --cache=CACHE Path to the cache file. - --no-progress Hide the progress output. - --json[=JSON] Path to store JSON results. - --xml[=XML] Path to store JUnit XML results. - -w, --warning Also show warnings. + --extensions=EXTENSIONS Check only files with selected extensions (multiple values allowed) + -j, --jobs=JOBS Number of paralleled jobs to run + -c, --configuration=CONFIGURATION Read configuration from config file [default: ".phplint.yml"] + --no-configuration Ignore default configuration file (.phplint.yml) + --cache=CACHE Path to the cache directory + --no-cache Ignore cached data + -p, --progress=PROGRESS Show the progress output + --no-progress Hide the progress output + --log-json[=LOG-JSON] Log scan results in JSON format to file (default: standard output) + --log-junit[=LOG-JUNIT] Log scan results in JUnit XML format to file (default: standard output) + -w, --warning Also show warnings + --memory-limit=MEMORY-LIMIT Memory limit for analysis + --ignore-exit-code Ignore exit codes so there are no "failure" exit code even when no files processed + -h, --help Display help for the given command. When no command is given display help for the lint command -q, --quiet Do not output any message - --no-files-exit-code Throw error if no files processed. - -h, --help Display help for the given command. When no command is given display help for the list command -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question + --manifest Show which versions of dependencies are bundled -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug ``` @@ -130,10 +134,8 @@ RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # Linter install -RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute +RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g ``` diff --git a/docs/descriptors/php_phpstan.md b/docs/descriptors/php_phpstan.md index 3f5fc530ffb..829742f485c 100644 --- a/docs/descriptors/php_phpstan.md +++ b/docs/descriptors/php_phpstan.md @@ -9,7 +9,7 @@ description: How to use phpstan (configure, ignore files, ignore errors, help & ## phpstan documentation -- Version in MegaLinter: **1.10.15** +- Version in MegaLinter: **1.10.25** - 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 isn't found, [phpstan.neon.dist](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/phpstan.neon.dist){target=_blank} will be used @@ -32,6 +32,7 @@ description: How to use phpstan (configure, ignore files, ignore errors, help & | PHP_PHPSTAN_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 | | PHP_PHPSTAN_PRE_COMMANDS | List of bash commands to run before the linter | None | | PHP_PHPSTAN_POST_COMMANDS | List of bash commands to run after the linter | None | +| PHP_PHPSTAN_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PHP_PHPSTAN and its pre/post commands | None | | PHP_PHPSTAN_CONFIG_FILE | phpstan configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `phpstan.neon.dist` | | PHP_PHPSTAN_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PHP_PHPSTAN_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -44,9 +45,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -134,7 +135,6 @@ RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # Linter install FROM ghcr.io/phpstan/phpstan:latest-php8.1 as phpstan COPY --link --from=phpstan /composer/vendor/phpstan/phpstan/phpstan.phar /usr/bin/phpstan diff --git a/docs/descriptors/php_psalm.md b/docs/descriptors/php_psalm.md index fcdeb551081..158be645090 100644 --- a/docs/descriptors/php_psalm.md +++ b/docs/descriptors/php_psalm.md @@ -15,7 +15,7 @@ description: How to use psalm (configure, ignore files, ignore errors, help & ve ## psalm documentation -- Version in MegaLinter: **Psalm.5.11.0@** +- Version in MegaLinter: **Psalm.5.13.1@** - 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 isn't found, [psalm.xml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/psalm.xml){target=_blank} will be used @@ -39,6 +39,7 @@ description: How to use psalm (configure, ignore files, ignore errors, help & ve | PHP_PSALM_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 | | PHP_PSALM_PRE_COMMANDS | List of bash commands to run before the linter | None | | PHP_PSALM_POST_COMMANDS | List of bash commands to run after the linter | None | +| PHP_PSALM_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PHP_PSALM and its pre/post commands | None | | PHP_PSALM_CONFIG_FILE | psalm configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `psalm.xml` | | PHP_PSALM_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PHP_PSALM_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -60,9 +61,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -278,7 +279,6 @@ RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # Linter install RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0F1D262429A5 diff --git a/docs/descriptors/powershell_powershell.md b/docs/descriptors/powershell_powershell.md index 435530628b2..07da774f63e 100644 --- a/docs/descriptors/powershell_powershell.md +++ b/docs/descriptors/powershell_powershell.md @@ -9,7 +9,7 @@ description: How to use powershell (configure, ignore files, ignore errors, help ## powershell documentation -- Version in MegaLinter: **7.3.4** +- Version in MegaLinter: **7.3.6** - Visit [Official Web Site](https://github.com/PowerShell/PSScriptAnalyzer#readme){target=_blank} - See [How to configure powershell rules](https://learn.microsoft.com/en-us/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer?view=ps-modules#explicit){target=_blank} - See [How to disable powershell rules in files](https://learn.microsoft.com/en-us/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer?view=ps-modules#suppressing-rules){target=_blank} @@ -34,6 +34,7 @@ description: How to use powershell (configure, ignore files, ignore errors, help | POWERSHELL_POWERSHELL_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 | | POWERSHELL_POWERSHELL_PRE_COMMANDS | List of bash commands to run before the linter | None | | POWERSHELL_POWERSHELL_POST_COMMANDS | List of bash commands to run after the linter | None | +| POWERSHELL_POWERSHELL_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling POWERSHELL_POWERSHELL and its pre/post commands | None | | POWERSHELL_POWERSHELL_CONFIG_FILE | powershell configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.powershell-psscriptanalyzer.psd1` | | POWERSHELL_POWERSHELL_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | POWERSHELL_POWERSHELL_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -52,10 +53,11 @@ Use powershell in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes @@ -405,20 +407,15 @@ All parameters are case-insensitive. - Dockerfile commands : ```dockerfile # Parent descriptor install -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ diff --git a/docs/descriptors/powershell_powershell_formatter.md b/docs/descriptors/powershell_powershell_formatter.md index 0d9763d54b4..d298123c280 100644 --- a/docs/descriptors/powershell_powershell_formatter.md +++ b/docs/descriptors/powershell_powershell_formatter.md @@ -9,7 +9,7 @@ description: How to use powershell_formatter (configure, ignore files, ignore er ## powershell_formatter documentation -- Version in MegaLinter: **7.3.4** +- Version in MegaLinter: **7.3.6** - Visit [Official Web Site](https://github.com/PowerShell/PSScriptAnalyzer#readme){target=_blank} - See [How to configure powershell_formatter rules](https://learn.microsoft.com/en-us/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer?view=ps-modules#explicit){target=_blank} - See [How to disable powershell_formatter rules in files](https://learn.microsoft.com/en-us/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer?view=ps-modules#suppressing-rules){target=_blank} @@ -35,6 +35,7 @@ description: How to use powershell_formatter (configure, ignore files, ignore er | POWERSHELL_POWERSHELL_FORMATTER_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 | | POWERSHELL_POWERSHELL_FORMATTER_PRE_COMMANDS | List of bash commands to run before the linter | None | | POWERSHELL_POWERSHELL_FORMATTER_POST_COMMANDS | List of bash commands to run after the linter | None | +| POWERSHELL_POWERSHELL_FORMATTER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling POWERSHELL_POWERSHELL_FORMATTER and its pre/post commands | None | | POWERSHELL_POWERSHELL_FORMATTER_CONFIG_FILE | powershell_formatter configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.powershell-formatter.psd1` | | POWERSHELL_POWERSHELL_FORMATTER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | POWERSHELL_POWERSHELL_FORMATTER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -53,10 +54,11 @@ Use powershell_formatter in your favorite IDE to catch errors before MegaLinter This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes @@ -406,20 +408,15 @@ All parameters are case-insensitive. - Dockerfile commands : ```dockerfile # Parent descriptor install -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ diff --git a/docs/descriptors/protobuf_protolint.md b/docs/descriptors/protobuf_protolint.md index 7c57c08a143..1d5b168a2bc 100644 --- a/docs/descriptors/protobuf_protolint.md +++ b/docs/descriptors/protobuf_protolint.md @@ -9,7 +9,7 @@ description: How to use protolint (configure, ignore files, ignore errors, help ## protolint documentation -- Version in MegaLinter: **0.44.0** +- Version in MegaLinter: **0.45.0** - 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 isn't found, [.protolintrc.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.protolintrc.yml){target=_blank} will be used @@ -34,6 +34,7 @@ description: How to use protolint (configure, ignore files, ignore errors, help | PROTOBUF_PROTOLINT_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 | | PROTOBUF_PROTOLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PROTOBUF_PROTOLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PROTOBUF_PROTOLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PROTOBUF_PROTOLINT and its pre/post commands | None | | PROTOBUF_PROTOLINT_CONFIG_FILE | protolint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.protolintrc.yml` | | PROTOBUF_PROTOLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PROTOBUF_PROTOLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -53,21 +54,22 @@ Use protolint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/puppet_puppet_lint.md b/docs/descriptors/puppet_puppet_lint.md index ea85c1d2d59..9ae61eaa2f5 100644 --- a/docs/descriptors/puppet_puppet_lint.md +++ b/docs/descriptors/puppet_puppet_lint.md @@ -34,6 +34,7 @@ description: How to use puppet-lint (configure, ignore files, ignore errors, hel | PUPPET_PUPPET_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 | | PUPPET_PUPPET_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PUPPET_PUPPET_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PUPPET_PUPPET_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PUPPET_PUPPET_LINT and its pre/post commands | None | | PUPPET_PUPPET_LINT_CONFIG_FILE | puppet-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.puppet-lint.rc` | | PUPPET_PUPPET_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PUPPET_PUPPET_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -54,7 +55,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/python_bandit.md b/docs/descriptors/python_bandit.md index 9ed4931faca..655410c775d 100644 --- a/docs/descriptors/python_bandit.md +++ b/docs/descriptors/python_bandit.md @@ -7,7 +7,7 @@ description: How to use bandit (configure, ignore files, ignore errors, help & v @@ -43,6 +43,7 @@ If you find it too harsh, you may define `PYTHON_BANDIT_DISABLE_ERRORS: true` in | PYTHON_BANDIT_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_BANDIT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_BANDIT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_BANDIT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_BANDIT and its pre/post commands | None | | PYTHON_BANDIT_CONFIG_FILE | bandit configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.bandit.yml` | | PYTHON_BANDIT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_BANDIT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -65,9 +66,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes diff --git a/docs/descriptors/python_black.md b/docs/descriptors/python_black.md index 9e01d124860..6ced9af4c40 100644 --- a/docs/descriptors/python_black.md +++ b/docs/descriptors/python_black.md @@ -15,7 +15,7 @@ description: How to use black (configure, ignore files, ignore errors, help & ve ## black documentation -- Version in MegaLinter: **23.3.0** +- Version in MegaLinter: **23.7.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 isn't found, [pyproject.toml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/pyproject.toml){target=_blank} will be used @@ -39,6 +39,7 @@ description: How to use black (configure, ignore files, ignore errors, help & ve | PYTHON_BLACK_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_BLACK_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_BLACK_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_BLACK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_BLACK and its pre/post commands | None | | PYTHON_BLACK_CONFIG_FILE | black configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `pyproject.toml` | | PYTHON_BLACK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_BLACK_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -55,7 +56,7 @@ Use black in your favorite IDE to catch errors before MegaLinter ! | | [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} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [black](https://black.readthedocs.io/en/stable/integrations/editors.html#pycharm-intellij-idea) | [Visit Web Site](https://black.readthedocs.io/en/stable/integrations/editors.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} | @@ -65,9 +66,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -107,7 +108,7 @@ Options: -c, --code TEXT Format the code passed in as a string. -l, --line-length INTEGER How many characters per line to allow. [default: 88] - -t, --target-version [py33|py34|py35|py36|py37|py38|py39|py310|py311] + -t, --target-version [py33|py34|py35|py36|py37|py38|py39|py310|py311|py312] Python versions that should be supported by Black's output. By default, Black will try to infer this from the project metadata in @@ -166,9 +167,10 @@ Options: directories on all platforms (Windows, too). Exclusions are calculated first, inclusions later. [default: /(\.direnv|\.eggs|\.git|\.h - g|\.mypy_cache|\.nox|\.tox|\.venv|venv|\.svn - |\.ipynb_checkpoints|_build|buck- - out|build|dist|__pypackages__)/] + g|\.ipynb_checkpoints|\.mypy_cache|\.nox|\.p + ytest_cache|\.ruff_cache|\.tox|\.svn|\.venv| + \.vscode|__pypackages__|_build|buck- + out|build|dist|venv)/] --extend-exclude TEXT Like --exclude, but adds additional files and directories on top of the excluded ones. (Useful if you simply want to add to the @@ -181,8 +183,9 @@ Options: stdin. Useful to make sure Black will respect --force-exclude option on some editors that rely on using stdin. - -W, --workers INTEGER RANGE Number of parallel workers [default: number - of CPUs in the system] [x>=1] + -W, --workers INTEGER RANGE Number of parallel workers [default: + BLACK_NUM_WORKERS environment variable or + number of CPUs in the system] [x>=1] -q, --quiet Don't emit non-error messages to stderr. Errors are still emitted; silence those with 2>/dev/null. diff --git a/docs/descriptors/python_flake8.md b/docs/descriptors/python_flake8.md index d78974048ca..c9d95f0d805 100644 --- a/docs/descriptors/python_flake8.md +++ b/docs/descriptors/python_flake8.md @@ -33,6 +33,7 @@ description: How to use flake8 (configure, ignore files, ignore errors, help & v | PYTHON_FLAKE8_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_FLAKE8_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_FLAKE8_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_FLAKE8_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_FLAKE8 and its pre/post commands | None | | PYTHON_FLAKE8_CONFIG_FILE | flake8 configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.flake8` | | PYTHON_FLAKE8_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_FLAKE8_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -55,9 +56,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/python_isort.md b/docs/descriptors/python_isort.md index 7060012869b..d56ef5f8b52 100644 --- a/docs/descriptors/python_isort.md +++ b/docs/descriptors/python_isort.md @@ -17,9 +17,9 @@ description: How to use isort (configure, ignore files, ignore errors, help & ve - Version in MegaLinter: **5.12.0** - 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} +- See [How to configure isort rules](https://pycqa.github.io/isort/docs/configuration/config_files.html){target=_blank} - If custom `.isort.cfg` config file isn't 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} +- See [How to disable isort rules in files](https://pycqa.github.io/isort/docs/configuration/action_comments.html){target=_blank} [![isort - GitHub](https://gh-card.dev/repos/PyCQA/isort.svg?fullname=)](https://github.com/PyCQA/isort){target=_blank} @@ -40,6 +40,7 @@ description: How to use isort (configure, ignore files, ignore errors, help & ve | PYTHON_ISORT_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_ISORT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_ISORT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_ISORT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_ISORT and its pre/post commands | None | | PYTHON_ISORT_CONFIG_FILE | isort configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.isort.cfg` | | PYTHON_ISORT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_ISORT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -66,9 +67,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/python_mypy.md b/docs/descriptors/python_mypy.md index 859646d4172..0138bb9f4d4 100644 --- a/docs/descriptors/python_mypy.md +++ b/docs/descriptors/python_mypy.md @@ -19,7 +19,7 @@ If you don't use python static typing, you should disable this linter by adding ## mypy documentation -- Version in MegaLinter: **1.3.0** +- Version in MegaLinter: **1.4.1** - 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 isn't found, [.mypy.ini](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.mypy.ini){target=_blank} will be used @@ -42,6 +42,7 @@ If you don't use python static typing, you should disable this linter by adding | PYTHON_MYPY_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_MYPY_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_MYPY_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_MYPY_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_MYPY and its pre/post commands | None | | PYTHON_MYPY_CONFIG_FILE | mypy configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.mypy.ini` | | PYTHON_MYPY_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_MYPY_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -68,9 +69,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -207,7 +208,9 @@ Untyped definitions and calls: (inverse: --allow-untyped-defs) --disallow-incomplete-defs Disallow defining functions with incomplete type - annotations (inverse: --allow-incomplete-defs) + annotations (while still allowing entirely + unannotated definitions) (inverse: --allow- + incomplete-defs) --check-untyped-defs Type check the interior of functions without type annotations (inverse: --no-check-untyped-defs) --disallow-untyped-decorators @@ -379,5 +382,10 @@ Environment variables: ### Installation on mega-linter Docker image +- Dockerfile commands : +```dockerfile +ENV MYPY_CACHE_DIR=/tmp +``` + - PIP packages (Python): - [mypy](https://pypi.org/project/mypy) diff --git a/docs/descriptors/python_pylint.md b/docs/descriptors/python_pylint.md index 5318997c1ab..7cc195bd87d 100644 --- a/docs/descriptors/python_pylint.md +++ b/docs/descriptors/python_pylint.md @@ -39,6 +39,7 @@ description: How to use pylint (configure, ignore files, ignore errors, help & v | 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_PYLINT and its pre/post commands | None | | 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` | @@ -63,9 +64,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -289,94 +290,156 @@ Messages control: Warning level messages displayed, use "--disable=all --enable=classes --disable=W". -Miscellaneous: - BaseChecker for encoding issues. +Exceptions: + Exception related checks. - --notes - List of note tags to take in consideration, separated - by a comma. (default: ('FIXME', 'XXX', 'TODO')) - --notes-rgx Regular expression of note tags to take in - consideration. (default: ) + --overgeneral-exceptions + Exceptions that will emit a warning when caught. + (default: ('builtins.BaseException', + 'builtins.Exception')) -Spelling: - Check spelling in comments and docstrings. +Format: + Formatting checker. - --spelling-dict - Spelling dictionary name. No available dictionaries : - You need to install both the python package and the - system dependency for enchant to work.. (default: ) - --spelling-ignore-words - List of comma separated words that should not be - checked. (default: ) - --spelling-private-dict-file - A path to a file that contains the private dictionary; - one word per line. (default: ) - --spelling-store-unknown-words - Tells whether to store unknown words to the private - dictionary (see the --spelling-private-dict-file - option) instead of raising a message. (default: n) - --max-spelling-suggestions N - Limits count of emitted suggestions for spelling - mistakes. (default: 4) - --spelling-ignore-comment-directives - List of comma separated words that should be - considered directives if they appear at the beginning - of a comment and should not be checked. (default: fmt: - on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:) + --max-line-length + Maximum number of characters on a single line. + (default: 100) + --ignore-long-lines + Regexp for a line that is allowed to be longer than + the limit. (default: ^\s*(# )??$) + --single-line-if-stmt + Allow the body of an if to be on the same line as the + test if there is no else. (default: False) + --single-line-class-stmt + Allow the body of a class to be on the same line as + the declaration if body contains single statement. + (default: False) + --max-module-lines + Maximum number of lines in a module. (default: 1000) + --indent-string + String used as indentation unit. This is usually " " + (4 spaces) or " " (1 tab). (default: ) + --indent-after-paren + Number of spaces of indent required inside a hanging + or continued line. (default: 4) + --expected-line-ending-format + Expected format of line ending, e.g. empty (any line + ending), LF or CRLF. (default: ) -Classes: - Checker for class nodes. +Design: + Checker of potential misdesigns. - --defining-attr-methods - List of method names used to declare (i.e. assign) - instance attributes. (default: ('__init__', '__new__', - 'setUp', 'asyncSetUp', '__post_init__')) - --valid-classmethod-first-arg - List of valid names for the first argument in a class - method. (default: ('cls',)) - --valid-metaclass-classmethod-first-arg - List of valid names for the first argument in a - metaclass class method. (default: ('mcs',)) - --exclude-protected - List of member names, which should be excluded from - the protected access warning. (default: ('_asdict', - '_fields', '_replace', '_source', '_make', - 'os._exit')) - --check-protected-access-in-special-methods - Warn about protected attribute access inside special - methods (default: False) + --max-args Maximum number of arguments for function / method. + (default: 5) + --max-locals Maximum number of locals for function / method body. + (default: 15) + --max-returns Maximum number of return / yield for function / method + body. (default: 6) + --max-branches Maximum number of branch for function / method body. + (default: 12) + --max-statements + Maximum number of statements in function / method + body. (default: 50) + --max-parents Maximum number of parents for a class (see R0901). + (default: 7) + --ignored-parents + List of qualified class names to ignore when counting + class parents (see R0901) (default: ()) + --max-attributes + Maximum number of attributes for a class (see R0902). + (default: 7) + --min-public-methods + Minimum number of public methods for a class (see + R0903). (default: 2) + --max-public-methods + Maximum number of public methods for a class (see + R0904). (default: 20) + --max-bool-expr + Maximum number of boolean expressions in an if + statement (see R0916). (default: 5) + --exclude-too-few-public-methods [,...] + List of regular expressions of class ancestor names to + ignore when counting public methods (see R0903) + (default: []) -Logging: - Checks use of the logging module. +Imports: + BaseChecker for import statements. - --logging-modules - Logging modules to check that the string format - arguments are in logging function parameter format. - (default: ('logging',)) - --logging-format-style - The type of string formatting that logging methods do. - `old` means using % formatting, `new` is for `{}` - formatting. (default: old) + --deprecated-modules + Deprecated modules which should not be used, separated + by a comma. (default: ()) + --preferred-modules + Couples of modules and preferred modules, separated by + a comma. (default: ()) + --import-graph + Output a graph (.gv or any supported image format) of + all (i.e. internal and external) dependencies to the + given file (report RP0402 must not be disabled). + (default: ) + --ext-import-graph + Output a graph (.gv or any supported image format) of + external dependencies to the given file (report RP0402 + must not be disabled). (default: ) + --int-import-graph + Output a graph (.gv or any supported image format) of + internal dependencies to the given file (report RP0402 + must not be disabled). (default: ) + --known-standard-library + Force import order to recognize a module as part of + the standard compatibility libraries. (default: ()) + --known-third-party + Force import order to recognize a module as part of a + third party library. (default: ('enchant',)) + --allow-any-import-level + List of modules that can be imported at any level, not + just the top level one. (default: ()) + --allow-wildcard-with-all + Allow wildcard imports from modules that define + __all__. (default: False) + --allow-reexport-from-package + Allow explicit reexports by alias from a package + __init__. (default: False) -Method_args: - BaseChecker for method_args. +String: + Check string literals. - --timeout-methods - List of qualified names (i.e., library.method) which - require a timeout parameter e.g. - 'requests.api.get,requests.api.post' (default: - ('requests.api.delete', 'requests.api.get', - 'requests.api.head', 'requests.api.options', - 'requests.api.patch', 'requests.api.post', - 'requests.api.put', 'requests.api.request')) + --check-str-concat-over-line-jumps + This flag controls whether the implicit-str-concat + should generate a warning on implicit string + concatenation in sequences defined over several lines. + (default: False) + --check-quote-consistency + This flag controls whether inconsistent-quotes + generates a warning when the character used as a quote + delimiter is used inconsistently within a module. + (default: False) -Exceptions: - Exception related checks. +Similarities: + Checks for similarities and duplicated code. - --overgeneral-exceptions - Exceptions that will emit a warning when caught. - (default: ('builtins.BaseException', - 'builtins.Exception')) + --min-similarity-lines + Minimum lines number of a similarity. (default: 4) + --ignore-comments + Comments are removed from the similarity computation + (default: True) + --ignore-docstrings + Docstrings are removed from the similarity computation + (default: True) + --ignore-imports + Imports are removed from the similarity computation + (default: True) + --ignore-signatures + Signatures are removed from the similarity computation + (default: True) + +Miscellaneous: + BaseChecker for encoding issues. + + --notes + List of note tags to take in consideration, separated + by a comma. (default: ('FIXME', 'XXX', 'TODO')) + --notes-rgx Regular expression of note tags to take in + consideration. (default: ) Basic: --good-names Good variable names which should always be accepted, @@ -507,61 +570,17 @@ Basic: Minimum line length for functions/classes that require docstrings, shorter ones are exempt. (default: -1) -Similarities: - Checks for similarities and duplicated code. - - --min-similarity-lines - Minimum lines number of a similarity. (default: 4) - --ignore-comments - Comments are removed from the similarity computation - (default: True) - --ignore-docstrings - Docstrings are removed from the similarity computation - (default: True) - --ignore-imports - Imports are removed from the similarity computation - (default: True) - --ignore-signatures - Signatures are removed from the similarity computation - (default: True) - -Imports: - BaseChecker for import statements. +Logging: + Checks use of the logging module. - --deprecated-modules - Deprecated modules which should not be used, separated - by a comma. (default: ()) - --preferred-modules - Couples of modules and preferred modules, separated by - a comma. (default: ()) - --import-graph - Output a graph (.gv or any supported image format) of - all (i.e. internal and external) dependencies to the - given file (report RP0402 must not be disabled). - (default: ) - --ext-import-graph - Output a graph (.gv or any supported image format) of - external dependencies to the given file (report RP0402 - must not be disabled). (default: ) - --int-import-graph - Output a graph (.gv or any supported image format) of - internal dependencies to the given file (report RP0402 - must not be disabled). (default: ) - --known-standard-library - Force import order to recognize a module as part of - the standard compatibility libraries. (default: ()) - --known-third-party - Force import order to recognize a module as part of a - third party library. (default: ('enchant',)) - --allow-any-import-level - List of modules that can be imported at any level, not - just the top level one. (default: ()) - --allow-wildcard-with-all - Allow wildcard imports from modules that define - __all__. (default: False) - --allow-reexport-from-package - Allow explicit reexports by alias from a package - __init__. (default: False) + --logging-modules + Logging modules to check that the string format + arguments are in logging function parameter format. + (default: ('logging',)) + --logging-format-style + The type of string formatting that logging methods do. + `old` means using % formatting, `new` is for `{}` + formatting. (default: old) Typecheck: Try to find bugs in the code using type inference. @@ -625,98 +644,6 @@ Typecheck: List of decorators that change the signature of a decorated function. (default: []) -String: - Check string literals. - - --check-str-concat-over-line-jumps - This flag controls whether the implicit-str-concat - should generate a warning on implicit string - concatenation in sequences defined over several lines. - (default: False) - --check-quote-consistency - This flag controls whether inconsistent-quotes - generates a warning when the character used as a quote - delimiter is used inconsistently within a module. - (default: False) - -Format: - Formatting checker. - - --max-line-length - Maximum number of characters on a single line. - (default: 100) - --ignore-long-lines - Regexp for a line that is allowed to be longer than - the limit. (default: ^\s*(# )??$) - --single-line-if-stmt - Allow the body of an if to be on the same line as the - test if there is no else. (default: False) - --single-line-class-stmt - Allow the body of a class to be on the same line as - the declaration if body contains single statement. - (default: False) - --max-module-lines - Maximum number of lines in a module. (default: 1000) - --indent-string - String used as indentation unit. This is usually " " - (4 spaces) or " " (1 tab). (default: ) - --indent-after-paren - Number of spaces of indent required inside a hanging - or continued line. (default: 4) - --expected-line-ending-format - Expected format of line ending, e.g. empty (any line - ending), LF or CRLF. (default: ) - -Refactoring: - Looks for code which can be refactored. - - --max-nested-blocks - Maximum number of nested blocks for function / method - body (default: 5) - --never-returning-functions - Complete name of functions that never returns. When - checking for inconsistent-return-statements if a never - returning function is called then it will be - considered as an explicit return statement and no - message will be printed. (default: ('sys.exit', - 'argparse.parse_error')) - -Design: - Checker of potential misdesigns. - - --max-args Maximum number of arguments for function / method. - (default: 5) - --max-locals Maximum number of locals for function / method body. - (default: 15) - --max-returns Maximum number of return / yield for function / method - body. (default: 6) - --max-branches Maximum number of branch for function / method body. - (default: 12) - --max-statements - Maximum number of statements in function / method - body. (default: 50) - --max-parents Maximum number of parents for a class (see R0901). - (default: 7) - --ignored-parents - List of qualified class names to ignore when counting - class parents (see R0901) (default: ()) - --max-attributes - Maximum number of attributes for a class (see R0902). - (default: 7) - --min-public-methods - Minimum number of public methods for a class (see - R0903). (default: 2) - --max-public-methods - Maximum number of public methods for a class (see - R0904). (default: 20) - --max-bool-expr - Maximum number of boolean expressions in an if - statement (see R0916). (default: 5) - --exclude-too-few-public-methods [,...] - List of regular expressions of class ancestor names to - ignore when counting public methods (see R0903) - (default: []) - Variables: BaseChecker for variables. @@ -749,6 +676,80 @@ Variables: treated as a violation. (default: True) --allowed-redefined-builtins List of names allowed to shadow builtins (default: ()) + +Refactoring: + Looks for code which can be refactored. + + --max-nested-blocks + Maximum number of nested blocks for function / method + body (default: 5) + --never-returning-functions + Complete name of functions that never returns. When + checking for inconsistent-return-statements if a never + returning function is called then it will be + considered as an explicit return statement and no + message will be printed. (default: ('sys.exit', + 'argparse.parse_error')) + +Spelling: + Check spelling in comments and docstrings. + + --spelling-dict + Spelling dictionary name. No available dictionaries : + You need to install both the python package and the + system dependency for enchant to work.. (default: ) + --spelling-ignore-words + List of comma separated words that should not be + checked. (default: ) + --spelling-private-dict-file + A path to a file that contains the private dictionary; + one word per line. (default: ) + --spelling-store-unknown-words + Tells whether to store unknown words to the private + dictionary (see the --spelling-private-dict-file + option) instead of raising a message. (default: n) + --max-spelling-suggestions N + Limits count of emitted suggestions for spelling + mistakes. (default: 4) + --spelling-ignore-comment-directives + List of comma separated words that should be + considered directives if they appear at the beginning + of a comment and should not be checked. (default: fmt: + on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:) + +Method_args: + BaseChecker for method_args. + + --timeout-methods + List of qualified names (i.e., library.method) which + require a timeout parameter e.g. + 'requests.api.get,requests.api.post' (default: + ('requests.api.delete', 'requests.api.get', + 'requests.api.head', 'requests.api.options', + 'requests.api.patch', 'requests.api.post', + 'requests.api.put', 'requests.api.request')) + +Classes: + Checker for class nodes. + + --defining-attr-methods + List of method names used to declare (i.e. assign) + instance attributes. (default: ('__init__', '__new__', + 'setUp', 'asyncSetUp', '__post_init__')) + --valid-classmethod-first-arg + List of valid names for the first argument in a class + method. (default: ('cls',)) + --valid-metaclass-classmethod-first-arg + List of valid names for the first argument in a + metaclass class method. (default: ('mcs',)) + --exclude-protected + List of member names, which should be excluded from + the protected access warning. (default: ('_asdict', + '_fields', '_replace', '_source', '_make', + 'os._exit')) + --check-protected-access-in-special-methods + Warn about protected attribute access inside special + methods (default: False) ``` ### Installation on mega-linter Docker image diff --git a/docs/descriptors/python_pyright.md b/docs/descriptors/python_pyright.md index 5ae8d286f23..8c3f681654a 100644 --- a/docs/descriptors/python_pyright.md +++ b/docs/descriptors/python_pyright.md @@ -19,7 +19,7 @@ If you don't use python static typing, you should disable this linter by adding ## pyright documentation -- Version in MegaLinter: **1.1.308** +- Version in MegaLinter: **1.1.317** - Visit [Official Web Site](https://github.com/Microsoft/pyright#readme){target=_blank} - See [How to configure pyright rules](https://github.com/microsoft/pyright/blob/main/docs/configuration.md){target=_blank} - See [How to disable pyright rules in files](https://github.com/microsoft/pyright/blob/main/docs/comments.md#file-level-type-controls){target=_blank} @@ -42,6 +42,7 @@ If you don't use python static typing, you should disable this linter by adding | PYTHON_PYRIGHT_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_PYRIGHT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_PYRIGHT_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_PYRIGHT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_PYRIGHT and its pre/post commands | None | | PYTHON_PYRIGHT_CONFIG_FILE | pyright configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `pyrightconfig.json` | | PYTHON_PYRIGHT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_PYRIGHT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -66,9 +67,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -106,16 +107,18 @@ Usage: pyright [options] files... --outputjson Output results in JSON format -p,--project Use the configuration file at this location --pythonplatform Analyze for a specific platform (Darwin, Linux, Windows) + --pythonpath Path to the Python interpreter --pythonversion Analyze for a specific version (3.3, 3.4, etc.) --skipunannotated Skip analysis of functions with no type annotations --stats Print detailed performance stats - -t,--typeshed-path Use typeshed type stubs at this location - -v,--venv-path Directory that contains virtual environments + -t,--typeshedpath Use typeshed type stubs at this location + -v,--venvpath Directory that contains virtual environments --verbose Emit verbose diagnostics --verifytypes Verify type completeness of a py.typed package - --version Print Pyright version + --version Print Pyright version and exit --warnings Use exit code of 1 if warnings are reported -w,--watch Continue to run and watch for changes + - Read files from stdin ``` diff --git a/docs/descriptors/python_ruff.md b/docs/descriptors/python_ruff.md index cb37e379249..8e9cce07cfd 100644 --- a/docs/descriptors/python_ruff.md +++ b/docs/descriptors/python_ruff.md @@ -11,7 +11,7 @@ An extremely fast Python linter, written in Rust. ## ruff documentation -- Version in MegaLinter: **0.0.267** +- Version in MegaLinter: **0.0.278** - Visit [Official Web Site](https://github.com/charliermarsh/ruff#readme){target=_blank} - See [How to configure ruff rules](https://beta.ruff.rs/docs/configuration/){target=_blank} - If custom `.ruff.toml` config file isn't found, [.ruff.toml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.ruff.toml){target=_blank} will be used @@ -37,6 +37,7 @@ An extremely fast Python linter, written in Rust. | PYTHON_RUFF_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_RUFF_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_RUFF_POST_COMMANDS | List of bash commands to run after the linter | None | +| PYTHON_RUFF_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling PYTHON_RUFF and its pre/post commands | None | | PYTHON_RUFF_CONFIG_FILE | ruff configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.ruff.toml` | | PYTHON_RUFF_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_RUFF_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -58,9 +59,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -94,7 +95,7 @@ Usage: ruff [OPTIONS] Commands: check Run Ruff on the given files or directories (default) - rule Explain a rule + rule Explain a rule (or all rules) config List or describe the available configuration options linter List all supported upstream linters clean Clear any caches in the current directory and any subdirectories diff --git a/docs/descriptors/r_lintr.md b/docs/descriptors/r_lintr.md index 8bf6da18492..5ed7bfb0f9e 100644 --- a/docs/descriptors/r_lintr.md +++ b/docs/descriptors/r_lintr.md @@ -31,6 +31,7 @@ description: How to use lintr (configure, ignore files, ignore errors, help & ve | R_LINTR_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 | | R_LINTR_PRE_COMMANDS | List of bash commands to run before the linter | None | | R_LINTR_POST_COMMANDS | List of bash commands to run after the linter | None | +| R_LINTR_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling R_LINTR and its pre/post commands | None | | R_LINTR_CONFIG_FILE | lintr configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.lintr` | | R_LINTR_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | R_LINTR_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -56,7 +57,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/raku_raku.md b/docs/descriptors/raku_raku.md index 1b41e2dc144..398593ca11f 100644 --- a/docs/descriptors/raku_raku.md +++ b/docs/descriptors/raku_raku.md @@ -29,6 +29,7 @@ description: How to use raku (configure, ignore files, ignore errors, help & ver | RAKU_RAKU_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 | | RAKU_RAKU_PRE_COMMANDS | List of bash commands to run before the linter | None | | RAKU_RAKU_POST_COMMANDS | List of bash commands to run after the linter | None | +| RAKU_RAKU_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RAKU_RAKU and its pre/post commands | None | | RAKU_RAKU_CONFIG_FILE | raku configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `META6.json` | | RAKU_RAKU_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | RAKU_RAKU_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -51,7 +52,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/repository.md b/docs/descriptors/repository.md index 2ef47f8936a..bba0455b558 100644 --- a/docs/descriptors/repository.md +++ b/docs/descriptors/repository.md @@ -1,6 +1,6 @@ --- title: REPOSITORY linters in MegaLinter -description: checkov, devskim, dustilock, git_diff, gitleaks, secretlint, semgrep, syft, trivy are available to analyze REPOSITORY files in MegaLinter +description: checkov, devskim, dustilock, git_diff, gitleaks, grype, kics, secretlint, semgrep, syft, trivy, trivy-sbom, trufflehog are available to analyze REPOSITORY files in MegaLinter --- @@ -16,10 +16,14 @@ description: checkov, devskim, dustilock, git_diff, gitleaks, secretlint, semgre | [**dustilock**](repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](repository_dustilock.md) | [![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**](repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | | [**gitleaks**](repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**grype**](repository_grype.md)
[_REPOSITORY_GRYPE_](repository_grype.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**kics**](repository_kics.md)
[_REPOSITORY_KICS_](repository_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | | [**secretlint**](repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](repository_secretlint.md) | [![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**](repository_semgrep.md)
[_REPOSITORY_SEMGREP_](repository_semgrep.md) | [![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**](repository_syft.md)
[_REPOSITORY_SYFT_](repository_syft.md) | [![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**](repository_trivy.md)
[_REPOSITORY_TRIVY_](repository_trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**trivy-sbom**](repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](repository_trivy_sbom.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**trufflehog**](repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](repository_trufflehog.md) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | ## Linted files diff --git a/docs/descriptors/repository_checkov.md b/docs/descriptors/repository_checkov.md index 25480166e92..ebef4d989c9 100644 --- a/docs/descriptors/repository_checkov.md +++ b/docs/descriptors/repository_checkov.md @@ -15,7 +15,7 @@ description: How to use checkov (configure, ignore files, ignore errors, help & ## checkov documentation -- Version in MegaLinter: **2.3.239** +- Version in MegaLinter: **2.3.326** - Visit [Official Web Site](https://www.checkov.io/){target=_blank} - See [How to configure checkov rules](https://github.com/bridgecrewio/checkov#configuration-using-a-config-file){target=_blank} - If custom `.checkov.yml` config file isn't found, [.checkov.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.checkov.yml){target=_blank} will be used @@ -29,16 +29,17 @@ description: How to use checkov (configure, ignore files, ignore errors, help & - Enable checkov by adding `REPOSITORY_CHECKOV` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable checkov by adding `REPOSITORY_CHECKOV` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|------------------------------------------------|------------------------------------------------------------------------------------|-------------------------------------------------| -| REPOSITORY_CHECKOV_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| REPOSITORY_CHECKOV_PRE_COMMANDS | List of bash commands to run before the linter | None | -| REPOSITORY_CHECKOV_POST_COMMANDS | List of bash commands to run after the linter | None | -| REPOSITORY_CHECKOV_CONFIG_FILE | checkov configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.checkov.yml` | -| REPOSITORY_CHECKOV_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| REPOSITORY_CHECKOV_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| REPOSITORY_CHECKOV_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| REPOSITORY_CHECKOV_CLI_EXECUTABLE | Override CLI executable | `['checkov']` | +| Variable | Description | Default value | +|------------------------------------------------|-----------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_CHECKOV_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_CHECKOV_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_CHECKOV_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_CHECKOV_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_CHECKOV and its pre/post commands | None | +| REPOSITORY_CHECKOV_CONFIG_FILE | checkov configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.checkov.yml` | +| REPOSITORY_CHECKOV_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_CHECKOV_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_CHECKOV_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| REPOSITORY_CHECKOV_CLI_EXECUTABLE | Override CLI executable | `['checkov']` | ## IDE Integration @@ -52,23 +53,24 @@ Use checkov in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -99,11 +101,11 @@ checkov --directory . --output --sarif ### Help content ```shell -usage: checkov [-h] [-v] [--support] [-d DIRECTORY] [--add-check] [-f FILE] - [--skip-path SKIP_PATH] +usage: checkov [-h] [-v] [--support] [-d DIRECTORY] [--add-check] + [-f FILE [FILE ...]] [--skip-path SKIP_PATH] [--external-checks-dir EXTERNAL_CHECKS_DIR] [--external-checks-git EXTERNAL_CHECKS_GIT] [-l] - [-o {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv}] + [-o {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx}] [--output-file-path OUTPUT_FILE_PATH] [--output-bc-ids] [--include-all-checkov-policies] [--quiet] [--compact] [--framework {ansible,argo_workflows,arm,azure_pipelines,bicep,bitbucket_pipelines,circleci_pipelines,cloudformation,dockerfile,github_configuration,github_actions,gitlab_configuration,gitlab_ci,bitbucket_configuration,helm,json,yaml,kubernetes,kustomize,openapi,sca_package,sca_image,secrets,serverless,terraform,terraform_json,terraform_plan,3d_policy,all} [{ansible,argo_workflows,arm,azure_pipelines,bicep,bitbucket_pipelines,circleci_pipelines,cloudformation,dockerfile,github_configuration,github_actions,gitlab_configuration,gitlab_ci,bitbucket_configuration,helm,json,yaml,kubernetes,kustomize,openapi,sca_package,sca_image,secrets,serverless,terraform,terraform_json,terraform_plan,3d_policy,all} ...]] @@ -111,7 +113,8 @@ usage: checkov [-h] [-v] [--support] [-d DIRECTORY] [--add-check] [-f FILE] [-c CHECK] [--skip-check SKIP_CHECK] [--run-all-external-checks] [-s] [--soft-fail-on SOFT_FAIL_ON] [--hard-fail-on HARD_FAIL_ON] [--bc-api-key BC_API_KEY] - [--prisma-api-url PRISMA_API_URL] [--docker-image DOCKER_IMAGE] + [--prisma-api-url PRISMA_API_URL] [--skip-results-upload] + [--docker-image DOCKER_IMAGE] [--dockerfile-path DOCKERFILE_PATH] [--repo-id REPO_ID] [-b BRANCH] [--skip-download] [--use-enforcement-rules] [--no-guide] [--skip-suppressions] [--skip-policy-download] @@ -147,7 +150,8 @@ options: IaC root directory (can not be used together with --file). --add-check Generate a new check via CLI prompt - -f FILE, --file FILE File to scan (can not be used together with + -f FILE [FILE ...], --file FILE [FILE ...] + File to scan (can not be used together with --directory). With this option, Checkov will attempt to filter the runners based on the file type. For example, if you specify a ".tf" file, only the @@ -169,7 +173,7 @@ options: specify a subdirectory after a double-slash //. cannot be used together with --external-checks-dir -l, --list List checks - -o {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv}, --output {cli,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,csv} + -o {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx}, --output {cli,csv,cyclonedx,cyclonedx_json,json,junitxml,github_failed_only,gitlab_sast,sarif,spdx} Report output format. Add multiple outputs by using the flag multiple times (-o sarif -o cli) --output-file-path OUTPUT_FILE_PATH @@ -289,6 +293,11 @@ options: --bc-api-key to be a Prisma Cloud Access Key in the following format: :: [env var: PRISMA_API_URL] + --skip-results-upload + Do not upload scan results to the platform to view in + the console. Results are only available locally. If + you use the --support flag, logs will still get + uploaded. --docker-image DOCKER_IMAGE, --image DOCKER_IMAGE Scan docker images by name or ID. Only works with --bc-api-key flag @@ -424,13 +433,12 @@ options: receive enhanced guidelines using CKV_OPENAI_MAX_FINDINGS [env var: CKV_OPENAI_API_KEY] -Args that start with '--' (eg. -v) can also be set in a config file -(/.checkov.yaml or /.checkov.yml or /root/.checkov.yaml or /root/.checkov.yml -or specified via --config-file). The config file uses YAML syntax and must -represent a YAML 'mapping' (for details, see -http://learn.getgrav.org/advanced/yaml). If an arg is specified in more than -one place, then commandline values override environment variables which -override config file values which override defaults. +Args that start with '--' can also be set in a config file (/.checkov.yaml or +/.checkov.yml or /root/.checkov.yaml or /root/.checkov.yml or specified via +--config-file). The config file uses YAML syntax and must represent a YAML +'mapping' (for details, see http://learn.getgrav.org/advanced/yaml). In +general, command-line values override environment variables which override +config file values which override defaults. ``` ### Installation on mega-linter Docker image diff --git a/docs/descriptors/repository_devskim.md b/docs/descriptors/repository_devskim.md index b817d9f4f39..48961532fa2 100644 --- a/docs/descriptors/repository_devskim.md +++ b/docs/descriptors/repository_devskim.md @@ -5,13 +5,16 @@ description: How to use devskim (configure, ignore files, ignore errors, help & # devskim -![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/microsoft/DevSkim?sort=semver)](https://github.com/microsoft/DevSkim/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/graphs/contributors/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/microsoft/DevSkim?sort=semver)](https://github.com/microsoft/DevSkim/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/graphs/contributors/) Use `--ignore-globs` to ignore files and/or folders +Example: + `REPOSITORY_DEVSKIM_ARGUMENTS: ['--ignore-globs','**/megalinter-reports/**,**/.git/**,**/bin/**']` + ## devskim documentation -- Version in MegaLinter: **0.7.104** +- Version in MegaLinter: **1.0.11** - Visit [Official Web Site](https://github.com/microsoft/DevSkim#readme){target=_blank} - See [How to configure devskim rules](https://github.com/microsoft/DevSkim/wiki/Analyze-Command){target=_blank} - See [How to ignore files and directories with devskim](https://github.com/microsoft/DevSkim/wiki/Analyze-Command){target=_blank} @@ -23,14 +26,15 @@ Use `--ignore-globs` to ignore files and/or folders - Enable devskim by adding `REPOSITORY_DEVSKIM` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable devskim by adding `REPOSITORY_DEVSKIM` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_DEVSKIM_CLI_EXECUTABLE | Override CLI executable | `['devskim']` | +| Variable | Description | Default value | +|------------------------------------------------|-----------------------------------------------------------------------------------------------------------|---------------| +| REPOSITORY_DEVSKIM_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_DEVSKIM and its pre/post commands | 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` | +| REPOSITORY_DEVSKIM_CLI_EXECUTABLE | Override CLI executable | `['devskim']` | ## IDE Integration @@ -46,8 +50,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes @@ -78,22 +82,20 @@ devskim analyze --file-format sarif . ### Help content ```shell -Microsoft DevSkim Command Line Interface 0.7.104+bd34d6c82b +devskim 1.0.11+87ad45b866 +© Microsoft Corporation. All rights reserved. + + analyze Analyze source code using DevSkim + + fix Apply fixes from a Sarif -Usage: devskim [options] [command] + verify Verify rule validity -Options: - -?|-h|--help Show help information - -v|--version Show version information + suppress Suppress issues identified in a DevSkim Sarif -Commands: - analyze Analyze source code - catalogue Create csv file catalogue of rules - pack Pack rules into a single file - test Run tests for rules - verify Verify integrity and syntax of rules + help Display more information on a specific command. -Use "devskim [command] --help" for more information about a command. + version Display version information. ``` @@ -106,7 +108,7 @@ RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" -RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI ``` - APK packages (Linux): diff --git a/docs/descriptors/repository_dustilock.md b/docs/descriptors/repository_dustilock.md index e118cf94f5a..f91328de599 100644 --- a/docs/descriptors/repository_dustilock.md +++ b/docs/descriptors/repository_dustilock.md @@ -25,14 +25,15 @@ description: How to use dustilock (configure, ignore files, ignore errors, help - Enable dustilock by adding `REPOSITORY_DUSTILOCK` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable dustilock by adding `REPOSITORY_DUSTILOCK` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_DUSTILOCK_CLI_EXECUTABLE | Override CLI executable | `['dustilock']` | +| Variable | Description | Default value | +|--------------------------------------------------|-------------------------------------------------------------------------------------------------------------|-----------------| +| REPOSITORY_DUSTILOCK_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_DUSTILOCK and its pre/post commands | 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` | +| REPOSITORY_DUSTILOCK_CLI_EXECUTABLE | Override CLI executable | `['dustilock']` | ## MegaLinter Flavours @@ -40,8 +41,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes diff --git a/docs/descriptors/repository_git_diff.md b/docs/descriptors/repository_git_diff.md index 809ad1fd2dd..b4e87533e0a 100644 --- a/docs/descriptors/repository_git_diff.md +++ b/docs/descriptors/repository_git_diff.md @@ -21,14 +21,15 @@ Git diff checks for git conflicts markers in files - Enable git_diff by adding `REPOSITORY_GIT_DIFF` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable git_diff by adding `REPOSITORY_GIT_DIFF` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_GIT_DIFF_CLI_EXECUTABLE | Override CLI executable | `['git']` | +| Variable | Description | Default value | +|-------------------------------------------------|------------------------------------------------------------------------------------------------------------|---------------| +| REPOSITORY_GIT_DIFF_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_GIT_DIFF and its pre/post commands | 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` | +| REPOSITORY_GIT_DIFF_CLI_EXECUTABLE | Override CLI executable | `['git']` | ## MegaLinter Flavours @@ -36,21 +37,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/repository_gitleaks.md b/docs/descriptors/repository_gitleaks.md index 2167663186f..8aabbe2fede 100644 --- a/docs/descriptors/repository_gitleaks.md +++ b/docs/descriptors/repository_gitleaks.md @@ -51,7 +51,7 @@ git fetch --depth=0 ## gitleaks documentation -- Version in MegaLinter: **8.16.3** +- Version in MegaLinter: **8.17.0** - Visit [Official Web Site](https://github.com/gitleaks/gitleaks#readme){target=_blank} - See [How to configure gitleaks rules](https://github.com/gitleaks/gitleaks#configuration){target=_blank} - If custom `.gitleaks.toml` config file isn't found, [.gitleaks.toml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.gitleaks.toml){target=_blank} will be used @@ -65,19 +65,20 @@ git fetch --depth=0 - Enable gitleaks by adding `REPOSITORY_GITLEAKS` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable gitleaks by adding `REPOSITORY_GITLEAKS` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|-------------------------------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------| -| REPOSITORY_GITLEAKS_PR_COMMITS_SCAN | Scan only PR commits on Pull Request | `false` | -| REPOSITORY_GITLEAKS_PR_SOURCE_SHA | Pull Request source commit sha (N/A to supported scenarios) | `` | -| REPOSITORY_GITLEAKS_PR_TARGET_SHA | Pull Request target commit sha (N/A to supported scenarios) | `` | -| REPOSITORY_GITLEAKS_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| 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` | -| REPOSITORY_GITLEAKS_CLI_EXECUTABLE | Override CLI executable | `['gitleaks']` | +| Variable | Description | Default value | +|-------------------------------------------------|------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_GITLEAKS_PR_COMMITS_SCAN | Scan only PR commits on Pull Request | `false` | +| REPOSITORY_GITLEAKS_PR_SOURCE_SHA | Pull Request source commit sha (N/A to supported scenarios) | `` | +| REPOSITORY_GITLEAKS_PR_TARGET_SHA | Pull Request target commit sha (N/A to supported scenarios) | `` | +| REPOSITORY_GITLEAKS_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_GITLEAKS and its pre/post commands | 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` | +| REPOSITORY_GITLEAKS_CLI_EXECUTABLE | Override CLI executable | `['gitleaks']` | ## MegaLinter Flavours @@ -85,22 +86,23 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -158,7 +160,7 @@ Flags: --no-banner suppress banner --no-color turn off color for verbose output --redact redact secrets from logs and stdout - -f, --report-format string output format (json, csv, sarif) (default "json") + -f, --report-format string output format (json, csv, junit, sarif) (default "json") -r, --report-path string report file -s, --source string path to source (default ".") -v, --verbose show verbose output from scan @@ -170,7 +172,7 @@ Use "gitleaks [command] --help" for more information about a command. - Dockerfile commands : ```dockerfile -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ ``` diff --git a/docs/descriptors/repository_grype.md b/docs/descriptors/repository_grype.md new file mode 100644 index 00000000000..eef259284e9 --- /dev/null +++ b/docs/descriptors/repository_grype.md @@ -0,0 +1,152 @@ +--- +title: grype configuration in MegaLinter +description: How to use grype (configure, ignore files, ignore errors, help & version documentations) to analyze REPOSITORY files +--- + + + + + +![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/anchore/grype?sort=semver)](https://github.com/anchore/grype/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/anchore/grype)](https://github.com/anchore/grype/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/anchore/grype)](https://github.com/anchore/grype/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/anchore/grype)](https://github.com/anchore/grype/graphs/contributors/) + +## grype documentation + +- Version in MegaLinter: **0.63.1** +- Visit [Official Web Site](https://github.com/anchore/grype#readme){target=_blank} +- See [How to configure grype rules](https://github.com/anchore/grype#configuration){target=_blank} + - If custom `.grype.yaml` config file isn't found, [.grype.yaml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.grype.yaml){target=_blank} will be used +- See [Index of problems detected by grype](https://github.com/anchore/grype#vulnerability-summary){target=_blank} + +[![grype - GitHub](https://gh-card.dev/repos/anchore/grype.svg?fullname=)](https://github.com/anchore/grype){target=_blank} + +## Configuration in MegaLinter + +- Enable grype by adding `REPOSITORY_GRYPE` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable grype by adding `REPOSITORY_GRYPE` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|----------------------------------------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_GRYPE_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_GRYPE_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_GRYPE_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_GRYPE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_GRYPE and its pre/post commands | None | +| REPOSITORY_GRYPE_CONFIG_FILE | grype configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.grype.yaml` | +| REPOSITORY_GRYPE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_GRYPE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_GRYPE_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| REPOSITORY_GRYPE_CLI_EXECUTABLE | Override CLI executable | `['grype']` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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 + +grype is called once on the whole project directory (`project` CLI lint mode) + +- filtering can not be done using MegaLinter configuration variables,it must be done using grype configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` doesn't make grype analyze only updated files + +### Example calls + +```shell +grype dir:. +``` + + +### Help content + +```shell +A vulnerability scanner for container images, filesystems, and SBOMs. + +Supports the following image sources: + grype yourrepo/yourimage:tag defaults to using images from a Docker daemon + grype path/to/yourproject a Docker tar, OCI tar, OCI directory, SIF container, or generic filesystem directory + +You can also explicitly specify the scheme to use: + grype podman:yourrepo/yourimage:tag explicitly use the Podman daemon + grype docker:yourrepo/yourimage:tag explicitly use the Docker daemon + grype docker-archive:path/to/yourimage.tar use a tarball from disk for archives created from "docker save" + grype oci-archive:path/to/yourimage.tar use a tarball from disk for OCI archives (from Podman or otherwise) + grype oci-dir:path/to/yourimage read directly from a path on disk for OCI layout directories (from Skopeo or otherwise) + grype singularity:path/to/yourimage.sif read directly from a Singularity Image Format (SIF) container on disk + grype dir:path/to/yourproject read directly from a path on disk (any directory) + grype sbom:path/to/syft.json read Syft JSON from path on disk + grype registry:yourrepo/yourimage:tag pull image directly from a registry (no container runtime required) + grype purl:path/to/purl/file read a newline separated file of purls from a path on disk + +You can also pipe in Syft JSON directly: + syft yourimage:tag -o json | grype + +Usage: + grype [IMAGE] [flags] + grype [command] + +Available Commands: + completion Generate a shell completion for Grype (listing local docker images) + db vulnerability database operations + help Help about any command + version show the version + +Flags: + --add-cpes-if-none generate CPEs for packages with no CPE data + --by-cve orient results by CVE instead of the original vulnerability ID when possible + -c, --config string application config file + --distro string distro to match against in the format: : + --exclude stringArray exclude paths from being scanned using a glob expression + -f, --fail-on string set the return code to 1 if a vulnerability is found with a severity >= the given severity, options=[negligible low medium high critical] + --file string file to write the report output to (default is STDOUT) + -h, --help help for grype + --name string set the name of the target being analyzed + --only-fixed ignore matches for vulnerabilities that are not fixed + --only-notfixed ignore matches for vulnerabilities that are fixed + -o, --output string report output formatter, formats=[json table cyclonedx cyclonedx-json sarif template], deprecated formats=[embedded-cyclonedx-vex-json embedded-cyclonedx-vex-xml] + --platform string an optional platform specifier for container image sources (e.g. 'linux/arm64', 'linux/arm64/v8', 'arm64', 'linux') + -q, --quiet suppress all logging output + -s, --scope string selection of layers to analyze, options=[Squashed AllLayers] (default "Squashed") + --show-suppressed show suppressed/ignored vulnerabilities in the output (only supported with table output format) + -t, --template string specify the path to a Go template file (requires 'template' output to be selected) + -v, --verbose count increase verbosity (-v = info, -vv = debug) + +Use "grype [command] --help" for more information about a command. +``` + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 +``` + diff --git a/docs/descriptors/repository_kics.md b/docs/descriptors/repository_kics.md new file mode 100644 index 00000000000..6c33f9d5136 --- /dev/null +++ b/docs/descriptors/repository_kics.md @@ -0,0 +1,116 @@ +--- +title: kics configuration in MegaLinter +description: How to use kics (configure, ignore files, ignore errors, help & version documentations) to analyze REPOSITORY files +--- + + + + + +[![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/checkmarx/kics?sort=semver)](https://github.com/checkmarx/kics/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/checkmarx/kics)](https://github.com/checkmarx/kics/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/checkmarx/kics)](https://github.com/checkmarx/kics/graphs/contributors/) + +## kics documentation + +- Version in MegaLinter: **1.7.3** +- Visit [Official Web Site](https://www.kics.io){target=_blank} +- See [How to configure kics rules](https://docs.kics.io/latest/configuration-file/){target=_blank} +- See [How to disable kics rules in files](https://docs.kics.io/latest/running-kics/#using_commands_on_scanned_files_as_comments){target=_blank} +- See [Index of problems detected by kics](https://docs.kics.io/latest/queries/all-queries/){target=_blank} + +[![kics - GitHub](https://gh-card.dev/repos/checkmarx/kics.svg?fullname=)](https://github.com/checkmarx/kics){target=_blank} + +## Configuration in MegaLinter + +- Enable kics by adding `REPOSITORY_KICS` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable kics by adding `REPOSITORY_KICS` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|---------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_KICS_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_KICS_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_KICS_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_KICS_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_KICS and its pre/post commands | None | +| REPOSITORY_KICS_CONFIG_FILE | kics configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `kics.config` | +| REPOSITORY_KICS_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_KICS_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_KICS_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| REPOSITORY_KICS_CLI_EXECUTABLE | Override CLI executable | `['kics']` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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 + +kics is called once on the whole project directory (`project` CLI lint mode) + +- filtering can not be done using MegaLinter configuration variables,it must be done using kics configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` doesn't make kics analyze only updated files + +### Example calls + +```shell +kics scan --path . +``` + + +### Help content + +```shell +Keeping Infrastructure as Code Secure + +Usage: + kics [command] + +Available Commands: + generate-id Generates uuid for query + help Help about any command + list-platforms List supported platforms + remediate Auto remediates the project + scan Executes a scan analysis + version Displays the current version + +Flags: + --ci display only log messages to CLI output (mutually exclusive with silent) + -h, --help help for kics + -f, --log-format string determines log format (pretty,json) (default "pretty") + --log-level string determines log level (TRACE,DEBUG,INFO,WARN,ERROR,FATAL) (default "INFO") + --log-path string path to generate log file (info.log) + --no-color disable CLI color output + --profiling string enables performance profiler that prints resource consumption metrics in the logs during the execution (CPU, MEM) + -s, --silent silence stdout messages (mutually exclusive with verbose and ci) + -v, --verbose write logs to stdout too (mutually exclusive with silent) + +Use "kics [command] --help" for more information about a command. +``` + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +FROM checkmarx/kics:alpine as kics +COPY --link --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/ +``` + diff --git a/docs/descriptors/repository_secretlint.md b/docs/descriptors/repository_secretlint.md index d65e47dbb1e..8d415f1bf75 100644 --- a/docs/descriptors/repository_secretlint.md +++ b/docs/descriptors/repository_secretlint.md @@ -7,7 +7,7 @@ description: How to use secretlint (configure, ignore files, ignore errors, help @@ -15,7 +15,7 @@ description: How to use secretlint (configure, ignore files, ignore errors, help ## secretlint documentation -- Version in MegaLinter: **6.2.3** +- Version in MegaLinter: **7.0.3** - 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 isn't found, [.secretlintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.secretlintrc.json){target=_blank} will be used @@ -30,16 +30,17 @@ description: How to use secretlint (configure, ignore files, ignore errors, help - Enable secretlint by adding `REPOSITORY_SECRETLINT` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable secretlint by adding `REPOSITORY_SECRETLINT` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_SECRETLINT_CLI_EXECUTABLE | Override CLI executable | `['secretlint']` | +| Variable | Description | Default value | +|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_SECRETLINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_SECRETLINT and its pre/post commands | 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` | +| REPOSITORY_SECRETLINT_CLI_EXECUTABLE | Override CLI executable | `['secretlint']` | ## MegaLinter Flavours @@ -47,22 +48,23 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -105,7 +107,7 @@ secretlint --secretlintrc .secretlintrc.json "**/*" 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, mask-result, table + --format [String] formatter name. Default: "stylish". Available Formatter: checkstyle, compact, jslint-xml, junit, pretty-error, stylish, tap, unix, json, mask-result, 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. @@ -128,6 +130,17 @@ secretlint --secretlintrc .secretlintrc.json "**/*" # found secrets and mask the secrets $ secretlint .zsh_history --format=mask-result --output=.zsh_history + Exit Status + Secretlint exits with the following values: + + - 0: + - Linting succeeded, no errors found. + - Found lint error but --output is specified. + - 1: + - Linting failed, errors found. + - 2: + - Unexpected error occurred, fatal error. + ``` ### Installation on mega-linter Docker image diff --git a/docs/descriptors/repository_semgrep.md b/docs/descriptors/repository_semgrep.md index 8e9c52e301f..4844d29f7b3 100644 --- a/docs/descriptors/repository_semgrep.md +++ b/docs/descriptors/repository_semgrep.md @@ -21,7 +21,7 @@ Exception for standalone and security flavors docker images, that use a list of ## semgrep documentation -- Version in MegaLinter: **1.21.0** +- Version in MegaLinter: **1.32.0** - 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} @@ -36,16 +36,17 @@ Exception for standalone and security flavors docker images, that use a list of - Enable semgrep by adding `REPOSITORY_SEMGREP` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable semgrep by adding `REPOSITORY_SEMGREP` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_SEMGREP_CLI_EXECUTABLE | Override CLI executable | `['semgrep']` | +| 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_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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_SEMGREP and its pre/post commands | 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` | +| REPOSITORY_SEMGREP_CLI_EXECUTABLE | Override CLI executable | `['semgrep']` | ## IDE Integration @@ -59,23 +60,24 @@ Use semgrep in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -106,7 +108,7 @@ semgrep ### Help content ```shell -Usage: semgrep [OPTIONS] COMMAND [ARGS]... +Usage: pysemgrep [OPTIONS] COMMAND [ARGS]... To get started quickly, run `semgrep scan --config auto` diff --git a/docs/descriptors/repository_syft.md b/docs/descriptors/repository_syft.md index 96347287d05..c84a8f0542e 100644 --- a/docs/descriptors/repository_syft.md +++ b/docs/descriptors/repository_syft.md @@ -17,7 +17,7 @@ Builds a SBOM (Software Build Of Materials) from your repository ## syft documentation -- Version in MegaLinter: **0.80.0** +- Version in MegaLinter: **0.85.0** - 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} @@ -27,16 +27,17 @@ Builds a SBOM (Software Build Of Materials) from your repository - Enable syft by adding `REPOSITORY_SYFT` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable syft by adding `REPOSITORY_SYFT` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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` | -| REPOSITORY_SYFT_CLI_EXECUTABLE | Override CLI executable | `['syft']` | +| Variable | Description | Default value | +|---------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_SYFT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_SYFT and its pre/post commands | 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` | +| REPOSITORY_SYFT_CLI_EXECUTABLE | Override CLI executable | `['syft']` | ## MegaLinter Flavours @@ -44,8 +45,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes @@ -116,16 +117,19 @@ Available Commands: version show the version Flags: + --base-path string base directory for scanning, no links will be followed above this directory, and all paths will be reported relative to this directory --catalogers stringArray enable one or more package catalogers -c, --config string application config file --exclude stringArray exclude paths from being scanned using a glob expression --file string file to write the default report output to (default is STDOUT) -h, --help help for syft - --name string set the name of the target being analyzed + --name string set the name of the target being analyzed (DEPRECATED: use: source-name) -o, --output stringArray report output format, options=[syft-json cyclonedx-xml cyclonedx-json github-json spdx-tag-value spdx-json syft-table syft-text template] (default [syft-table]) --platform string an optional platform specifier for container image sources (e.g. 'linux/arm64', 'linux/arm64/v8', 'arm64', 'linux') -q, --quiet suppress all logging output -s, --scope string selection of layers to catalog, options=[Squashed AllLayers] (default "Squashed") + --source-name string set the name of the target being analyzed + --source-version string set the name of the target being analyzed -t, --template string specify the path to a Go template file -v, --verbose count increase verbosity (-v = info, -vv = debug) --version version for syft diff --git a/docs/descriptors/repository_trivy.md b/docs/descriptors/repository_trivy.md index 1641312e678..30e3cb8df0e 100644 --- a/docs/descriptors/repository_trivy.md +++ b/docs/descriptors/repository_trivy.md @@ -7,20 +7,20 @@ description: How to use trivy (configure, ignore files, ignore errors, help & ve [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/aquasecurity/trivy?sort=semver)](https://github.com/aquasecurity/trivy/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/graphs/contributors/) -You can ignore a list of errors by defining a [.trivyignore file](https://aquasecurity.github.io/trivy/latest/docs/vulnerability/examples/filter/#by-vulnerability-ids) +You can ignore a list of errors by defining a [.trivyignore file](https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-finding-ids) ## trivy documentation -- Version in MegaLinter: **0.41.0** +- Version in MegaLinter: **0.43.1** - Visit [Official Web Site](https://aquasecurity.github.io/trivy/){target=_blank} -- See [How to configure trivy rules](https://aquasecurity.github.io/trivy/latest/docs/references/customization/config-file/){target=_blank} -- See [How to ignore files and directories with trivy](https://aquasecurity.github.io/trivy/latest/docs/secret/examples/#skip-directories){target=_blank} +- See [How to configure trivy rules](https://aquasecurity.github.io/trivy/latest/docs/configuration/){target=_blank} +- See [How to ignore files and directories with trivy](https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-inline-comments){target=_blank} [![trivy - GitHub](https://gh-card.dev/repos/aquasecurity/trivy.svg?fullname=)](https://github.com/aquasecurity/trivy){target=_blank} @@ -29,16 +29,17 @@ You can ignore a list of errors by defining a [.trivyignore file](https://aquase - Enable trivy by adding `REPOSITORY_TRIVY` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable trivy by adding `REPOSITORY_TRIVY` in [DISABLE_LINTERS variable](https://megalinter.io/beta/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_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_CONFIG_FILE | trivy configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `trivy.yaml` | -| REPOSITORY_TRIVY_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| 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` | -| REPOSITORY_TRIVY_CLI_EXECUTABLE | Override CLI executable | `['trivy']` | +| Variable | Description | Default value | +|----------------------------------------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_TRIVY_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| 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_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_TRIVY and its pre/post commands | None | +| REPOSITORY_TRIVY_CONFIG_FILE | trivy configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `trivy.yaml` | +| REPOSITORY_TRIVY_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| 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` | +| REPOSITORY_TRIVY_CLI_EXECUTABLE | Override CLI executable | `['trivy']` | ## IDE Integration @@ -54,22 +55,23 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -115,22 +117,27 @@ Examples: # Run in server mode $ trivy server -Available Commands: +Scanning Commands aws [EXPERIMENTAL] Scan AWS account - completion Generate the autocompletion script for the specified shell config Scan config files for misconfigurations filesystem Scan local filesystem - help Help about any command image Scan a container image kubernetes [EXPERIMENTAL] Scan kubernetes cluster - module Manage modules - plugin Manage plugins repository Scan a remote repository rootfs Scan rootfs sbom Scan SBOM for vulnerabilities + vm [EXPERIMENTAL] Scan a virtual machine image + +Management Commands + module Manage modules + plugin Manage plugins + +Utility Commands + completion Generate the autocompletion script for the specified shell + convert Convert Trivy JSON report into a different format + help Help about any command server Server mode version Print the version - vm [EXPERIMENTAL] Scan a virtual machine image Flags: --cache-dir string cache directory (default "/root/.cache/trivy") diff --git a/docs/descriptors/repository_trivy_sbom.md b/docs/descriptors/repository_trivy_sbom.md new file mode 100644 index 00000000000..28800f93340 --- /dev/null +++ b/docs/descriptors/repository_trivy_sbom.md @@ -0,0 +1,168 @@ +--- +title: trivy-sbom configuration in MegaLinter +description: How to use trivy-sbom (configure, ignore files, ignore errors, help & version documentations) to analyze REPOSITORY files +--- + + + + + +[![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/aquasecurity/trivy?sort=semver)](https://github.com/aquasecurity/trivy/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/graphs/contributors/) + +Generates SBOM (Software Bill Of Material) using Trivy + +## trivy-sbom documentation + +- Version in MegaLinter: **0.43.1** +- Visit [Official Web Site](https://aquasecurity.github.io/trivy/){target=_blank} +- See [How to configure trivy-sbom rules](https://aquasecurity.github.io/trivy/latest/docs/configuration/){target=_blank} +- See [How to ignore files and directories with trivy-sbom](https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-inline-comments){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-sbom by adding `REPOSITORY_TRIVY_SBOM` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable trivy-sbom by adding `REPOSITORY_TRIVY_SBOM` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_TRIVY_SBOM_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_TRIVY_SBOM_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_TRIVY_SBOM_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_TRIVY_SBOM_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_TRIVY_SBOM and its pre/post commands | None | +| REPOSITORY_TRIVY_SBOM_CONFIG_FILE | trivy-sbom configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `trivy-sbom.yaml` | +| REPOSITORY_TRIVY_SBOM_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| REPOSITORY_TRIVY_SBOM_CLI_EXECUTABLE | Override CLI executable | `['trivy']` | + +## IDE Integration + +Use trivy-sbom 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://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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-sbom is called once on the whole project directory (`project` CLI lint mode) + +- filtering can not be done using MegaLinter configuration variables,it must be done using trivy-sbom configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` doesn't make trivy-sbom analyze only updated files + +### Example calls + +```shell +trivy fs --format cyclonedx . +``` + +```shell +trivy fs --config trivy-sbom.yaml --format cyclonedx . +``` + + +### Help content + +```shell +Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues and hard-coded secrets + +Usage: + trivy [global flags] command [flags] target + trivy [command] + +Examples: + # Scan a container image + $ trivy image python:3.4-alpine + + # Scan a container image from a tar archive + $ trivy image --input ruby-3.1.tar + + # Scan local filesystem + $ trivy fs . + + # Run in server mode + $ trivy server + +Scanning Commands + aws [EXPERIMENTAL] Scan AWS account + config Scan config files for misconfigurations + filesystem Scan local filesystem + image Scan a container image + kubernetes [EXPERIMENTAL] Scan kubernetes cluster + repository Scan a remote repository + rootfs Scan rootfs + sbom Scan SBOM for vulnerabilities + vm [EXPERIMENTAL] Scan a virtual machine image + +Management Commands + module Manage modules + plugin Manage plugins + +Utility Commands + completion Generate the autocompletion script for the specified shell + convert Convert Trivy JSON report into a different format + help Help about any command + server Server mode + version Print the version + +Flags: + --cache-dir string cache directory (default "/root/.cache/trivy") + -c, --config string config path (default "trivy.yaml") + -d, --debug debug mode + -f, --format string version format (json) + --generate-default-config write the default config to trivy-default.yaml + -h, --help help for trivy + --insecure allow insecure server connections + -q, --quiet suppress progress bar and log output + --timeout duration timeout (default 5m0s) + -v, --version show version + +Use "trivy [command] --help" for more information about a command. +``` + +### 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 + +``` + diff --git a/docs/descriptors/repository_trufflehog.md b/docs/descriptors/repository_trufflehog.md new file mode 100644 index 00000000000..f705558b91d --- /dev/null +++ b/docs/descriptors/repository_trufflehog.md @@ -0,0 +1,174 @@ +--- +title: trufflehog configuration in MegaLinter +description: How to use trufflehog (configure, ignore files, ignore errors, help & version documentations) to analyze REPOSITORY files +--- + + + + + +[![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/trufflesecurity/trufflehog?sort=semver)](https://github.com/trufflesecurity/trufflehog/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/trufflesecurity/trufflehog)](https://github.com/trufflesecurity/trufflehog/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/trufflesecurity/trufflehog)](https://github.com/trufflesecurity/trufflehog/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/trufflesecurity/trufflehog)](https://github.com/trufflesecurity/trufflehog/graphs/contributors/) + +## trufflehog documentation + +- Version in MegaLinter: **3.44.0** +- Visit [Official Web Site](https://github.com/trufflesecurity/trufflehog#readme){target=_blank} +- See [How to configure trufflehog rules](https://github.com/trufflesecurity/trufflehog#regex-detector-alpha){target=_blank} + +[![trufflehog - GitHub](https://gh-card.dev/repos/trufflesecurity/trufflehog.svg?fullname=)](https://github.com/trufflesecurity/trufflehog){target=_blank} + +## Configuration in MegaLinter + +- Enable trufflehog by adding `REPOSITORY_TRUFFLEHOG` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable trufflehog by adding `REPOSITORY_TRUFFLEHOG` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_TRUFFLEHOG_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_TRUFFLEHOG_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_TRUFFLEHOG_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_TRUFFLEHOG_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling REPOSITORY_TRUFFLEHOG and its pre/post commands | None | +| REPOSITORY_TRUFFLEHOG_CONFIG_FILE | trufflehog configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.trufflehog.yml` | +| REPOSITORY_TRUFFLEHOG_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| REPOSITORY_TRUFFLEHOG_CLI_EXECUTABLE | Override CLI executable | `['trufflehog']` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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 + +trufflehog is called once on the whole project directory (`project` CLI lint mode) + +- filtering can not be done using MegaLinter configuration variables,it must be done using trufflehog configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` doesn't make trufflehog analyze only updated files + +### Example calls + +```shell +trufflehog filesystem . +``` + + +### Help content + +```shell +usage: TruffleHog [] [ ...] + +TruffleHog is a tool for finding credentials. + +Flags: + --help Show context-sensitive help (also try + --help-long and --help-man). + --debug Run in debug mode. + --trace Run in trace mode. + --profile Enables profiling and sets a pprof and fgprof + server on :18066. + -j, --json Output in JSON format. + --json-legacy Use the pre-v3.0 JSON format. Only works with + git, gitlab, and github sources. + --github-actions Output in GitHub Actions format. + --concurrency=2 Number of concurrent workers. + --no-verification Don't verify the results. + --only-verified Only output verified results. + --filter-unverified Only output first unverified result per + chunk per detector if there are more than one + results. + --config=CONFIG Path to configuration file. + --print-avg-detector-time Print the average time spent on each detector. + --no-update Don't check for updates. + --fail Exit with code 183 if results are found. + --verifier=VERIFIER ... Set custom verification endpoints. + --archive-max-size=ARCHIVE-MAX-SIZE + Maximum size of archive to scan. (Byte units + eg. 512B, 2KB, 4MB) + --archive-max-depth=ARCHIVE-MAX-DEPTH + Maximum depth of archive to scan. + --archive-timeout=ARCHIVE-TIMEOUT + Maximum time to spend extracting an archive. + --include-detectors="all" Comma separated list of detector types to + include. Protobuf name or IDs may be used, + as well as ranges. + --exclude-detectors=EXCLUDE-DETECTORS + Comma separated list of detector types to + exclude. Protobuf name or IDs may be used, + as well as ranges. IDs defined here take + precedence over the include list. + --version Show application version. + +Commands: + help [...] + Show help. + + git [] + Find credentials in git repositories. + + github [] + Find credentials in GitHub repositories. + + gitlab --token=TOKEN [] + Find credentials in GitLab repositories. + + filesystem [] [...] + Find credentials in a filesystem. + + s3 [] + Find credentials in S3 buckets. + + gcs [] + Find credentials in GCS buckets. + + syslog [] + Scan syslog + + circleci --token=TOKEN + Scan CircleCI + + docker --image=IMAGE + Scan Docker Image + + +``` + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +FROM trufflesecurity/trufflehog:latest as trufflehog +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ +``` + diff --git a/docs/descriptors/rst_rst_lint.md b/docs/descriptors/rst_rst_lint.md index 92e1509b47d..8baa8f7fe6d 100644 --- a/docs/descriptors/rst_rst_lint.md +++ b/docs/descriptors/rst_rst_lint.md @@ -29,6 +29,7 @@ description: How to use rst-lint (configure, ignore files, ignore errors, help & | RST_RST_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 | | RST_RST_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | RST_RST_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| RST_RST_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RST_RST_LINT and its pre/post commands | None | | RST_RST_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | RST_RST_LINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | RST_RST_LINT_CLI_EXECUTABLE | Override CLI executable | `['rst-lint']` | @@ -39,9 +40,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/rst_rstcheck.md b/docs/descriptors/rst_rstcheck.md index 72894a3fc74..b01a334dccf 100644 --- a/docs/descriptors/rst_rstcheck.md +++ b/docs/descriptors/rst_rstcheck.md @@ -31,6 +31,7 @@ description: How to use rstcheck (configure, ignore files, ignore errors, help & | RST_RSTCHECK_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 | | RST_RSTCHECK_PRE_COMMANDS | List of bash commands to run before the linter | None | | RST_RSTCHECK_POST_COMMANDS | List of bash commands to run after the linter | None | +| RST_RSTCHECK_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RST_RSTCHECK and its pre/post commands | None | | RST_RSTCHECK_CONFIG_FILE | rstcheck configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.rstcheck.cfg` | | RST_RSTCHECK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | RST_RSTCHECK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -51,9 +52,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/rst_rstfmt.md b/docs/descriptors/rst_rstfmt.md index ca285f0c1cf..2a937bef7ae 100644 --- a/docs/descriptors/rst_rstfmt.md +++ b/docs/descriptors/rst_rstfmt.md @@ -31,6 +31,7 @@ description: How to use rstfmt (configure, ignore files, ignore errors, help & v | RST_RSTFMT_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 | | RST_RSTFMT_PRE_COMMANDS | List of bash commands to run before the linter | None | | RST_RSTFMT_POST_COMMANDS | List of bash commands to run after the linter | None | +| RST_RSTFMT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RST_RSTFMT and its pre/post commands | None | | RST_RSTFMT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | RST_RSTFMT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | RST_RSTFMT_CLI_EXECUTABLE | Override CLI executable | `['rstfmt']` | @@ -41,9 +42,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/ruby_rubocop.md b/docs/descriptors/ruby_rubocop.md index c5d4f22cb76..cbf831e43a1 100644 --- a/docs/descriptors/ruby_rubocop.md +++ b/docs/descriptors/ruby_rubocop.md @@ -15,7 +15,7 @@ description: How to use rubocop (configure, ignore files, ignore errors, help & ## rubocop documentation -- Version in MegaLinter: **1.51.0** +- Version in MegaLinter: **1.54.2** - 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 isn't found, [.ruby-lint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.ruby-lint.yml){target=_blank} will be used @@ -41,6 +41,7 @@ description: How to use rubocop (configure, ignore files, ignore errors, help & | RUBY_RUBOCOP_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 | | RUBY_RUBOCOP_PRE_COMMANDS | List of bash commands to run before the linter | None | | RUBY_RUBOCOP_POST_COMMANDS | List of bash commands to run after the linter | None | +| RUBY_RUBOCOP_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RUBY_RUBOCOP and its pre/post commands | None | | RUBY_RUBOCOP_CONFIG_FILE | rubocop configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.ruby-lint.yml` | | RUBY_RUBOCOP_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | RUBY_RUBOCOP_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -54,7 +55,7 @@ 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} | +| | [Brackets](https://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} | @@ -69,9 +70,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | ## Behind the scenes @@ -156,6 +157,9 @@ Caching: parameter AllCops: CacheRootDirectory and the $RUBOCOP_CACHE_ROOT environment variable. +LSP Option: + --lsp Start a language server listening on STDIN. + Server Options: --[no-]server If a server process has not been started yet, start the server process and execute inspection with server. diff --git a/docs/descriptors/rust_clippy.md b/docs/descriptors/rust_clippy.md index 4c0952a4d31..fa7c860d4da 100644 --- a/docs/descriptors/rust_clippy.md +++ b/docs/descriptors/rust_clippy.md @@ -9,7 +9,7 @@ description: How to use clippy (configure, ignore files, ignore errors, help & v ## clippy documentation -- Version in MegaLinter: **0.1.69** +- Version in MegaLinter: **0.1.71** - Visit [Official Web Site](https://github.com/rust-lang/rust-clippy#readme){target=_blank} - See [How to configure clippy rules](https://github.com/rust-lang/rust-clippy#configuration){target=_blank} - See [How to disable clippy rules in files](https://github.com/rust-lang/rust-clippy#allowingdenying-lints){target=_blank} @@ -29,6 +29,7 @@ description: How to use clippy (configure, ignore files, ignore errors, help & v | RUST_CLIPPY_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 | | RUST_CLIPPY_PRE_COMMANDS | List of bash commands to run before the linter | None | | RUST_CLIPPY_POST_COMMANDS | List of bash commands to run after the linter | None | +| RUST_CLIPPY_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling RUST_CLIPPY and its pre/post commands | None | | RUST_CLIPPY_CONFIG_FILE | clippy configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.clippy.toml` | | RUST_CLIPPY_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | RUST_CLIPPY_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -49,9 +50,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | ## Behind the scenes @@ -85,12 +86,12 @@ Usage: Common options: --no-deps Run Clippy only on the given crate, without linting the dependencies - --fix Automatically apply lint suggestions. This flag implies `--no-deps` + --fix Automatically apply lint suggestions. This flag implies `--no-deps` and `--all-targets` -h, --help Print this message -V, --version Print version info and exit --explain LINT Print the documentation for a given lint -Other options are the same as `cargo check`. +For the other options see `cargo check --help`. To allow or deny a lint from the command line you can use `cargo clippy --` with: diff --git a/docs/descriptors/salesforce_sfdx_scanner_apex.md b/docs/descriptors/salesforce_sfdx_scanner_apex.md index 02f7b3eeb7c..fe113b12add 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_apex.md +++ b/docs/descriptors/salesforce_sfdx_scanner_apex.md @@ -19,12 +19,12 @@ See more details in [Help](#help-content) ## sfdx-scanner-apex documentation -- Version in MegaLinter: **3.12.0** +- Version in MegaLinter: **3.14.0** - 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} +- See [How to configure sfdx-scanner-apex rules](https://docs.pmd-code.org/latest/pmd_userdocs_making_rulesets.html){target=_blank} - If custom `apex-pmd-ruleset.xml` config file isn't 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} +- See [How to disable sfdx-scanner-apex rules in files](https://docs.pmd-code.org/latest/pmd_userdocs_suppressing_warnings.html){target=_blank} +- See [Index of problems detected by sfdx-scanner-apex](https://docs.pmd-code.org/latest/pmd_rules_apex.html){target=_blank} [![sfdx-scanner - GitHub](https://gh-card.dev/repos/forcedotcom/sfdx-scanner.svg?fullname=)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} @@ -33,17 +33,18 @@ See more details in [Help](#help-content) - Enable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|----------------------------------------------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------| -| SALESFORCE_SFDX_SCANNER_APEX_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| SALESFORCE_SFDX_SCANNER_APEX_PRE_COMMANDS | List of bash commands to run before the linter | None | -| SALESFORCE_SFDX_SCANNER_APEX_POST_COMMANDS | List of bash commands to run after the linter | None | -| SALESFORCE_SFDX_SCANNER_APEX_CONFIG_FILE | sfdx-scanner-apex configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `apex-pmd-ruleset.xml` | -| SALESFORCE_SFDX_SCANNER_APEX_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| SALESFORCE_SFDX_SCANNER_APEX_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| SALESFORCE_SFDX_SCANNER_APEX_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| SALESFORCE_SFDX_SCANNER_APEX_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | -| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | +| Variable | Description | Default value | +|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| SALESFORCE_SFDX_SCANNER_APEX_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| SALESFORCE_SFDX_SCANNER_APEX_PRE_COMMANDS | List of bash commands to run before the linter | None | +| SALESFORCE_SFDX_SCANNER_APEX_POST_COMMANDS | List of bash commands to run after the linter | None | +| SALESFORCE_SFDX_SCANNER_APEX_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_APEX and its pre/post commands | None | +| SALESFORCE_SFDX_SCANNER_APEX_CONFIG_FILE | sfdx-scanner-apex configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `apex-pmd-ruleset.xml` | +| SALESFORCE_SFDX_SCANNER_APEX_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| SALESFORCE_SFDX_SCANNER_APEX_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| SALESFORCE_SFDX_SCANNER_APEX_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| SALESFORCE_SFDX_SCANNER_APEX_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | +| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | ## IDE Integration @@ -62,8 +63,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:----------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes @@ -162,7 +163,7 @@ COMMANDS scanner run dfa scan codebase with all DFA rules WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA -(node:1435) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. +(node:1521) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. (Use `node --trace-warnings ...` to show where the warning was created) NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT ────────────────────────────────────────────────────── ─────────── ───────────────────── ──────────────────────────────────────────────── ───────────────── ────── ──────── @@ -170,67 +171,67 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you VfHtmlStyleTagXss visualforce Security pmd N N VfUnescapeEl visualforce Security Basic VF pmd N N ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N - ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N + ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,quickstart,Default ruleset... pmd N N ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N - ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N - AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N - AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N + ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,quickstart,Default ruleset... pmd N N + AvoidGlobalModifier apex Best Practices quickstart,Style,Default ruleset... pmd N N + AvoidLogicInTrigger apex Best Practices quickstart,Style,Default ruleset... pmd N N DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N UnusedLocalVariable apex Best Practices pmd N N AvoidDebugStatements apex Performance pmd N N - AvoidDmlStatementsInLoops apex Performance Default ruleset...,Performance pmd N N - AvoidSoqlInLoops apex Performance Default ruleset...,Performance pmd N N - AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N + AvoidDmlStatementsInLoops apex Performance Performance,Default ruleset... pmd N N + AvoidSoqlInLoops apex Performance Performance,Default ruleset... pmd N N + AvoidSoslInLoops apex Performance Performance,Default ruleset... pmd N N EagerlyLoadedDescribeSObjectResult apex Performance pmd N N OperationWithLimitsInLoop apex Performance quickstart pmd N N - ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N - ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N + ApexBadCrypto apex Security quickstart,Security,Default ruleset... pmd N N + ApexCRUDViolation apex Security quickstart,Security,Default ruleset... pmd N N ApexCSRF apex Security Security pmd N N - ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N - ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N - ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N - ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N - ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N - ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N - ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ApexDangerousMethods apex Security quickstart,Security,Default ruleset... pmd N N + ApexInsecureEndpoint apex Security quickstart,Security,Default ruleset... pmd N N + ApexOpenRedirect apex Security quickstart,Security,Default ruleset... pmd N N + ApexSharingViolations apex Security quickstart,Security,Default ruleset... pmd N N + ApexSOQLInjection apex Security quickstart,Security,Default ruleset... pmd N N + ApexSuggestUsingNamedCred apex Security quickstart,Security,Default ruleset... pmd N N + ApexXSSFromEscapeFalse apex Security quickstart,Security,Default ruleset... pmd N N + ApexXSSFromURLParam apex Security quickstart,Security,Default ruleset... pmd N N + ClassNamingConventions apex Code Style quickstart,Style,Default ruleset... pmd N N + IfElseStmtsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N + IfStmtsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N FieldDeclarationsShouldBeAtStart apex Code Style pmd N N FieldNamingConventions apex Code Style quickstart pmd N N - ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ForLoopsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N FormalParameterNamingConventions apex Code Style quickstart pmd N N LocalVariableNamingConventions apex Code Style quickstart pmd N N - MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N + MethodNamingConventions apex Code Style quickstart,Style,Default ruleset... pmd N N + OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N PropertyNamingConventions apex Code Style quickstart pmd N N VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N - WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N - CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N + WhileLoopsMustUseBraces apex Code Style quickstart,Braces,Default ruleset... pmd N N + AvoidDeeplyNestedIfStmts apex Design quickstart,Complexity,Default ruleset... pmd N N + CyclomaticComplexity apex Design Metrics tempora...,quickstart,Default ruleset... pmd N N CognitiveComplexity apex Design pmd N N - ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N - StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N - TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N - ApexDoc apex Documentation Default ruleset...,quickstart pmd N N - ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N - AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N - EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N + ExcessiveClassLength apex Design quickstart,Complexity,Default ruleset... pmd N N + ExcessiveParameterList apex Design quickstart,Complexity,Default ruleset... pmd N N + ExcessivePublicCount apex Design quickstart,Complexity,Default ruleset... pmd N N + NcssConstructorCount apex Design quickstart,Complexity,Default ruleset... pmd N N + NcssMethodCount apex Design quickstart,Complexity,Default ruleset... pmd N N + NcssTypeCount apex Design quickstart,Complexity,Default ruleset... pmd N N + StdCyclomaticComplexity apex Design quickstart,Complexity,Default ruleset... pmd N N + TooManyFields apex Design quickstart,Complexity,Default ruleset... pmd N N + ApexDoc apex Documentation quickstart,Default ruleset... pmd N N + ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N + AvoidDirectAccessTriggerMap apex Error Prone quickstart,Style,Default ruleset... pmd N N + AvoidHardcodingId apex Error Prone quickstart,Style,Default ruleset... pmd N N + AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N + EmptyCatchBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N + EmptyIfStmt apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N + EmptyStatementBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N + EmptyTryOrFinallyBlock apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N + EmptyWhileStmt apex Error Prone Empty Code,quickstart,Default ruleset... pmd N N InaccessibleAuraEnabledGetter apex Error Prone pmd N N - MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N + MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Style,Default ruleset... pmd N N OverrideBothEqualsAndHashcode apex Error Prone pmd N N TestMethodsMustBeInTestClasses apex Error Prone pmd N N constructor-super javascript problem problem eslint N N @@ -379,6 +380,7 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N UnusedMethodRule apex Performance sfge Y Y ApexFlsViolationRule apex Security sfge Y N + MultipleMassSchemaLookupRule apex Performance sfge Y Y ApexNullPointerExceptionRule apex Error Prone sfge Y N UnimplementedTypeRule apex Performance sfge N N ``` diff --git a/docs/descriptors/salesforce_sfdx_scanner_aura.md b/docs/descriptors/salesforce_sfdx_scanner_aura.md index 89e84b9a0c2..9bbf1816339 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_aura.md +++ b/docs/descriptors/salesforce_sfdx_scanner_aura.md @@ -19,7 +19,7 @@ See more details in [Help](#help-content) ## sfdx-scanner-aura documentation -- Version in MegaLinter: **3.12.0** +- Version in MegaLinter: **3.14.0** - Visit [Official Web Site](https://forcedotcom.github.io/sfdx-scanner/){target=_blank} - See [How to configure sfdx-scanner-aura rules](https://eslint.org/docs/user-guide/configuring){target=_blank} - See [How to disable sfdx-scanner-aura rules in files](https://eslint.org/docs/user-guide/configuring/rules#disabling-rules){target=_blank} @@ -32,17 +32,18 @@ See more details in [Help](#help-content) - Enable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|----------------------------------------------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------| -| SALESFORCE_SFDX_SCANNER_AURA_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| SALESFORCE_SFDX_SCANNER_AURA_PRE_COMMANDS | List of bash commands to run before the linter | None | -| SALESFORCE_SFDX_SCANNER_AURA_POST_COMMANDS | List of bash commands to run after the linter | None | -| SALESFORCE_SFDX_SCANNER_AURA_CONFIG_FILE | sfdx-scanner-aura configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `--eslintconfig` | -| SALESFORCE_SFDX_SCANNER_AURA_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| SALESFORCE_SFDX_SCANNER_AURA_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| SALESFORCE_SFDX_SCANNER_AURA_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| SALESFORCE_SFDX_SCANNER_AURA_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | -| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | +| Variable | Description | Default value | +|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| SALESFORCE_SFDX_SCANNER_AURA_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| SALESFORCE_SFDX_SCANNER_AURA_PRE_COMMANDS | List of bash commands to run before the linter | None | +| SALESFORCE_SFDX_SCANNER_AURA_POST_COMMANDS | List of bash commands to run after the linter | None | +| SALESFORCE_SFDX_SCANNER_AURA_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_AURA and its pre/post commands | None | +| SALESFORCE_SFDX_SCANNER_AURA_CONFIG_FILE | sfdx-scanner-aura configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `--eslintconfig` | +| SALESFORCE_SFDX_SCANNER_AURA_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| SALESFORCE_SFDX_SCANNER_AURA_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| SALESFORCE_SFDX_SCANNER_AURA_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| SALESFORCE_SFDX_SCANNER_AURA_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | +| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | ## IDE Integration @@ -58,8 +59,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:----------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes @@ -158,7 +159,7 @@ COMMANDS scanner run dfa scan codebase with all DFA rules WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA -(node:1576) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. +(node:1662) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. (Use `node --trace-warnings ...` to show where the warning was created) NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT ────────────────────────────────────────────────────── ─────────── ───────────────────── ──────────────────────────────────────────────── ───────────────── ────── ──────── @@ -166,12 +167,12 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you VfHtmlStyleTagXss visualforce Security pmd N N VfUnescapeEl visualforce Security Basic VF pmd N N ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N - ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N + ApexUnitTestClassShouldHaveAsserts apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N - ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N - AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N - AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N + ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N + AvoidGlobalModifier apex Best Practices quickstart,Default ruleset...,Style pmd N N + AvoidLogicInTrigger apex Best Practices quickstart,Default ruleset...,Style pmd N N DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N UnusedLocalVariable apex Best Practices pmd N N AvoidDebugStatements apex Performance pmd N N @@ -180,53 +181,53 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N EagerlyLoadedDescribeSObjectResult apex Performance pmd N N OperationWithLimitsInLoop apex Performance quickstart pmd N N - ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N - ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N + ApexBadCrypto apex Security quickstart,Default ruleset...,Security pmd N N + ApexCRUDViolation apex Security quickstart,Default ruleset...,Security pmd N N ApexCSRF apex Security Security pmd N N - ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N - ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N - ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N - ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N - ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N - ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N - ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ApexDangerousMethods apex Security quickstart,Default ruleset...,Security pmd N N + ApexInsecureEndpoint apex Security quickstart,Default ruleset...,Security pmd N N + ApexOpenRedirect apex Security quickstart,Default ruleset...,Security pmd N N + ApexSharingViolations apex Security quickstart,Default ruleset...,Security pmd N N + ApexSOQLInjection apex Security quickstart,Default ruleset...,Security pmd N N + ApexSuggestUsingNamedCred apex Security quickstart,Default ruleset...,Security pmd N N + ApexXSSFromEscapeFalse apex Security quickstart,Default ruleset...,Security pmd N N + ApexXSSFromURLParam apex Security quickstart,Default ruleset...,Security pmd N N + ClassNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N + IfElseStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N + IfStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N FieldDeclarationsShouldBeAtStart apex Code Style pmd N N FieldNamingConventions apex Code Style quickstart pmd N N - ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ForLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N FormalParameterNamingConventions apex Code Style quickstart pmd N N LocalVariableNamingConventions apex Code Style quickstart pmd N N - MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N + MethodNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N + OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N PropertyNamingConventions apex Code Style quickstart pmd N N - VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N - WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N - CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N + VariableNamingConventions apex Code Style Default ruleset...,Style pmd N N + WhileLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N + AvoidDeeplyNestedIfStmts apex Design quickstart,Default ruleset...,Complexity pmd N N + CyclomaticComplexity apex Design quickstart,Default ruleset...,Metrics tempora... pmd N N CognitiveComplexity apex Design pmd N N - ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N - StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N - TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N - ApexDoc apex Documentation Default ruleset...,quickstart pmd N N - ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N - AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N - EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N + ExcessiveClassLength apex Design quickstart,Default ruleset...,Complexity pmd N N + ExcessiveParameterList apex Design quickstart,Default ruleset...,Complexity pmd N N + ExcessivePublicCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssConstructorCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssMethodCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssTypeCount apex Design quickstart,Default ruleset...,Complexity pmd N N + StdCyclomaticComplexity apex Design quickstart,Default ruleset...,Complexity pmd N N + TooManyFields apex Design quickstart,Default ruleset...,Complexity pmd N N + ApexDoc apex Documentation quickstart,Default ruleset... pmd N N + ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N + AvoidDirectAccessTriggerMap apex Error Prone quickstart,Default ruleset...,Style pmd N N + AvoidHardcodingId apex Error Prone quickstart,Default ruleset...,Style pmd N N + AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N + EmptyCatchBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyIfStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyStatementBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyTryOrFinallyBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyWhileStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N InaccessibleAuraEnabledGetter apex Error Prone pmd N N - MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N + MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Default ruleset...,Style pmd N N OverrideBothEqualsAndHashcode apex Error Prone pmd N N TestMethodsMustBeInTestClasses apex Error Prone pmd N N constructor-super javascript problem problem eslint N N @@ -375,6 +376,7 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N UnusedMethodRule apex Performance sfge Y Y ApexFlsViolationRule apex Security sfge Y N + MultipleMassSchemaLookupRule apex Performance sfge Y Y ApexNullPointerExceptionRule apex Error Prone sfge Y N UnimplementedTypeRule apex Performance sfge N N ``` diff --git a/docs/descriptors/salesforce_sfdx_scanner_lwc.md b/docs/descriptors/salesforce_sfdx_scanner_lwc.md index cd3824d14da..66ffe26ae67 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_lwc.md +++ b/docs/descriptors/salesforce_sfdx_scanner_lwc.md @@ -19,7 +19,7 @@ See more details in [Help](#help-content) ## sfdx-scanner-lwc documentation -- Version in MegaLinter: **3.12.0** +- Version in MegaLinter: **3.14.0** - Visit [Official Web Site](https://forcedotcom.github.io/sfdx-scanner/){target=_blank} - See [How to configure sfdx-scanner-lwc rules](https://eslint.org/docs/user-guide/configuring){target=_blank} - See [How to disable sfdx-scanner-lwc rules in files](https://eslint.org/docs/user-guide/configuring/rules#disabling-rules){target=_blank} @@ -32,17 +32,18 @@ See more details in [Help](#help-content) - Enable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Disable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -| Variable | Description | Default value | -|---------------------------------------------------------|---------------------------------------------------------------------------------------------|-------------------------------------------------| -| SALESFORCE_SFDX_SCANNER_LWC_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| SALESFORCE_SFDX_SCANNER_LWC_PRE_COMMANDS | List of bash commands to run before the linter | None | -| SALESFORCE_SFDX_SCANNER_LWC_POST_COMMANDS | List of bash commands to run after the linter | None | -| SALESFORCE_SFDX_SCANNER_LWC_CONFIG_FILE | sfdx-scanner-lwc configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `--eslintconfig` | -| SALESFORCE_SFDX_SCANNER_LWC_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| SALESFORCE_SFDX_SCANNER_LWC_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| SALESFORCE_SFDX_SCANNER_LWC_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| SALESFORCE_SFDX_SCANNER_LWC_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | -| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | +| Variable | Description | Default value | +|---------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| SALESFORCE_SFDX_SCANNER_LWC_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| SALESFORCE_SFDX_SCANNER_LWC_PRE_COMMANDS | List of bash commands to run before the linter | None | +| SALESFORCE_SFDX_SCANNER_LWC_POST_COMMANDS | List of bash commands to run after the linter | None | +| SALESFORCE_SFDX_SCANNER_LWC_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_LWC and its pre/post commands | None | +| SALESFORCE_SFDX_SCANNER_LWC_CONFIG_FILE | sfdx-scanner-lwc configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `--eslintconfig` | +| SALESFORCE_SFDX_SCANNER_LWC_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| SALESFORCE_SFDX_SCANNER_LWC_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| SALESFORCE_SFDX_SCANNER_LWC_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| SALESFORCE_SFDX_SCANNER_LWC_CLI_EXECUTABLE | Override CLI executable | `['sfdx']` | +| SALESFORCE_DIRECTORY | Directory containing SALESFORCE files | `force-app` | ## IDE Integration @@ -58,8 +59,8 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:----------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes @@ -158,7 +159,7 @@ COMMANDS scanner run dfa scan codebase with all DFA rules WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you think! Give feedback at https://research.net/r/SalesforceCA -(node:1717) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. +(node:1803) Warning: Deprecated config name: apiVersion. Please use org-api-version instead. (Use `node --trace-warnings ...` to show where the warning was created) NAME LANGUAGES CATEGORIES RULESETS [DEP] ENGINE IS DFA IS PILOT ────────────────────────────────────────────────────── ─────────── ───────────────────── ──────────────────────────────────────────────── ───────────────── ────── ──────── @@ -166,12 +167,12 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you VfHtmlStyleTagXss visualforce Security pmd N N VfUnescapeEl visualforce Security Basic VF pmd N N ApexAssertionsShouldIncludeMessage apex Best Practices pmd N N - ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N + ApexUnitTestClassShouldHaveAsserts apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N ApexUnitTestClassShouldHaveRunAs apex Best Practices quickstart pmd N N ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd N N - ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices Default ruleset...,quickstart,ApexUnit pmd N N - AvoidGlobalModifier apex Best Practices Style,Default ruleset...,quickstart pmd N N - AvoidLogicInTrigger apex Best Practices Style,Default ruleset...,quickstart pmd N N + ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices quickstart,Default ruleset...,ApexUnit pmd N N + AvoidGlobalModifier apex Best Practices quickstart,Default ruleset...,Style pmd N N + AvoidLogicInTrigger apex Best Practices quickstart,Default ruleset...,Style pmd N N DebugsShouldUseLoggingLevel apex Best Practices quickstart pmd N N UnusedLocalVariable apex Best Practices pmd N N AvoidDebugStatements apex Performance pmd N N @@ -180,53 +181,53 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you AvoidSoslInLoops apex Performance Default ruleset...,Performance pmd N N EagerlyLoadedDescribeSObjectResult apex Performance pmd N N OperationWithLimitsInLoop apex Performance quickstart pmd N N - ApexBadCrypto apex Security Security,Default ruleset...,quickstart pmd N N - ApexCRUDViolation apex Security Security,Default ruleset...,quickstart pmd N N + ApexBadCrypto apex Security quickstart,Default ruleset...,Security pmd N N + ApexCRUDViolation apex Security quickstart,Default ruleset...,Security pmd N N ApexCSRF apex Security Security pmd N N - ApexDangerousMethods apex Security Security,Default ruleset...,quickstart pmd N N - ApexInsecureEndpoint apex Security Security,Default ruleset...,quickstart pmd N N - ApexOpenRedirect apex Security Security,Default ruleset...,quickstart pmd N N - ApexSharingViolations apex Security Security,Default ruleset...,quickstart pmd N N - ApexSOQLInjection apex Security Security,Default ruleset...,quickstart pmd N N - ApexSuggestUsingNamedCred apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromEscapeFalse apex Security Security,Default ruleset...,quickstart pmd N N - ApexXSSFromURLParam apex Security Security,Default ruleset...,quickstart pmd N N - ClassNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - IfElseStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - IfStmtsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ApexDangerousMethods apex Security quickstart,Default ruleset...,Security pmd N N + ApexInsecureEndpoint apex Security quickstart,Default ruleset...,Security pmd N N + ApexOpenRedirect apex Security quickstart,Default ruleset...,Security pmd N N + ApexSharingViolations apex Security quickstart,Default ruleset...,Security pmd N N + ApexSOQLInjection apex Security quickstart,Default ruleset...,Security pmd N N + ApexSuggestUsingNamedCred apex Security quickstart,Default ruleset...,Security pmd N N + ApexXSSFromEscapeFalse apex Security quickstart,Default ruleset...,Security pmd N N + ApexXSSFromURLParam apex Security quickstart,Default ruleset...,Security pmd N N + ClassNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N + IfElseStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N + IfStmtsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N FieldDeclarationsShouldBeAtStart apex Code Style pmd N N FieldNamingConventions apex Code Style quickstart pmd N N - ForLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N + ForLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N FormalParameterNamingConventions apex Code Style quickstart pmd N N LocalVariableNamingConventions apex Code Style quickstart pmd N N - MethodNamingConventions apex Code Style Style,Default ruleset...,quickstart pmd N N - OneDeclarationPerLine apex Code Style Default ruleset...,quickstart pmd N N + MethodNamingConventions apex Code Style quickstart,Default ruleset...,Style pmd N N + OneDeclarationPerLine apex Code Style quickstart,Default ruleset... pmd N N PropertyNamingConventions apex Code Style quickstart pmd N N - VariableNamingConventions apex Code Style Style,Default ruleset... pmd N N - WhileLoopsMustUseBraces apex Code Style Braces,Default ruleset...,quickstart pmd N N - AvoidDeeplyNestedIfStmts apex Design Complexity,Default ruleset...,quickstart pmd N N - CyclomaticComplexity apex Design Default ruleset...,quickstart,Metrics tempora... pmd N N + VariableNamingConventions apex Code Style Default ruleset...,Style pmd N N + WhileLoopsMustUseBraces apex Code Style quickstart,Default ruleset...,Braces pmd N N + AvoidDeeplyNestedIfStmts apex Design quickstart,Default ruleset...,Complexity pmd N N + CyclomaticComplexity apex Design quickstart,Default ruleset...,Metrics tempora... pmd N N CognitiveComplexity apex Design pmd N N - ExcessiveClassLength apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessiveParameterList apex Design Complexity,Default ruleset...,quickstart pmd N N - ExcessivePublicCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssConstructorCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssMethodCount apex Design Complexity,Default ruleset...,quickstart pmd N N - NcssTypeCount apex Design Complexity,Default ruleset...,quickstart pmd N N - StdCyclomaticComplexity apex Design Complexity,Default ruleset...,quickstart pmd N N - TooManyFields apex Design Complexity,Default ruleset...,quickstart pmd N N - ApexDoc apex Documentation Default ruleset...,quickstart pmd N N - ApexCSRF apex Error Prone Default ruleset...,quickstart pmd N N - AvoidDirectAccessTriggerMap apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidHardcodingId apex Error Prone Style,Default ruleset...,quickstart pmd N N - AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd N N - EmptyCatchBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyIfStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyStatementBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyTryOrFinallyBlock apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N - EmptyWhileStmt apex Error Prone Empty Code,Default ruleset...,quickstart pmd N N + ExcessiveClassLength apex Design quickstart,Default ruleset...,Complexity pmd N N + ExcessiveParameterList apex Design quickstart,Default ruleset...,Complexity pmd N N + ExcessivePublicCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssConstructorCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssMethodCount apex Design quickstart,Default ruleset...,Complexity pmd N N + NcssTypeCount apex Design quickstart,Default ruleset...,Complexity pmd N N + StdCyclomaticComplexity apex Design quickstart,Default ruleset...,Complexity pmd N N + TooManyFields apex Design quickstart,Default ruleset...,Complexity pmd N N + ApexDoc apex Documentation quickstart,Default ruleset... pmd N N + ApexCSRF apex Error Prone quickstart,Default ruleset... pmd N N + AvoidDirectAccessTriggerMap apex Error Prone quickstart,Default ruleset...,Style pmd N N + AvoidHardcodingId apex Error Prone quickstart,Default ruleset...,Style pmd N N + AvoidNonExistentAnnotations apex Error Prone quickstart,Default ruleset... pmd N N + EmptyCatchBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyIfStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyStatementBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyTryOrFinallyBlock apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N + EmptyWhileStmt apex Error Prone quickstart,Empty Code,Default ruleset... pmd N N InaccessibleAuraEnabledGetter apex Error Prone pmd N N - MethodWithSameNameAsEnclosingClass apex Error Prone Style,Default ruleset...,quickstart pmd N N + MethodWithSameNameAsEnclosingClass apex Error Prone quickstart,Default ruleset...,Style pmd N N OverrideBothEqualsAndHashcode apex Error Prone pmd N N TestMethodsMustBeInTestClasses apex Error Prone pmd N N constructor-super javascript problem problem eslint N N @@ -375,6 +376,7 @@ WARNING: We're continually improving Salesforce Code Analyzer. Tell us what you insecure-bundled-dependencies javascript Insecure Dependencies retire-js N N UnusedMethodRule apex Performance sfge Y Y ApexFlsViolationRule apex Security sfge Y N + MultipleMassSchemaLookupRule apex Performance sfge Y Y ApexNullPointerExceptionRule apex Error Prone sfge Y N UnimplementedTypeRule apex Performance sfge N N ``` diff --git a/docs/descriptors/scala_scalafix.md b/docs/descriptors/scala_scalafix.md index 5aaa3a6f7ff..d6505eb954b 100644 --- a/docs/descriptors/scala_scalafix.md +++ b/docs/descriptors/scala_scalafix.md @@ -14,7 +14,7 @@ Scalafix lints and fixes scala files ## scalafix documentation -- Version in MegaLinter: **0.10.4** +- Version in MegaLinter: **0.11.0** - 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 isn't found, [.scalafix.conf](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.scalafix.conf){target=_blank} will be used @@ -38,6 +38,7 @@ Scalafix lints and fixes scala files | SCALA_SCALAFIX_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 | | SCALA_SCALAFIX_PRE_COMMANDS | List of bash commands to run before the linter | None | | SCALA_SCALAFIX_POST_COMMANDS | List of bash commands to run after the linter | None | +| SCALA_SCALAFIX_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SCALA_SCALAFIX and its pre/post commands | None | | SCALA_SCALAFIX_CONFIG_FILE | scalafix configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.scalafix.conf` | | SCALA_SCALAFIX_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SCALA_SCALAFIX_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -50,7 +51,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -82,7 +83,7 @@ scalafix --config .scalafix.conf myfile.scala ### Help content ```shell -Scalafix 0.10.4 +Scalafix 0.11.0 Usage: scalafix [options] [ ...] Scalafix is a refactoring and linting tool. Scalafix supports both syntactic and @@ -165,7 +166,7 @@ Semantic options: The scala compiler options used to compile this --classpath, for example -Ywarn-unused-import - --scala-version ScalaVersion (default: "2.13.10") + --scala-version ScalaVersion (default: "2.13.11") The major or binary Scala version that the provided files are targeting, or the full version that was used to compile them when a classpath is provided. diff --git a/docs/descriptors/snakemake_snakefmt.md b/docs/descriptors/snakemake_snakefmt.md index 710adf645c7..5af3973e642 100644 --- a/docs/descriptors/snakemake_snakefmt.md +++ b/docs/descriptors/snakemake_snakefmt.md @@ -33,6 +33,7 @@ description: How to use snakefmt (configure, ignore files, ignore errors, help & | SNAKEMAKE_SNAKEFMT_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"]` | `["Snakefile"]` | | SNAKEMAKE_SNAKEFMT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SNAKEMAKE_SNAKEFMT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SNAKEMAKE_SNAKEFMT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SNAKEMAKE_SNAKEFMT and its pre/post commands | None | | SNAKEMAKE_SNAKEFMT_CONFIG_FILE | snakefmt configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.snakefmt.toml` | | SNAKEMAKE_SNAKEFMT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SNAKEMAKE_SNAKEFMT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -43,21 +44,22 @@ description: How to use snakefmt (configure, ignore files, ignore errors, help & This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/snakemake_snakemake.md b/docs/descriptors/snakemake_snakemake.md index c692ce82319..d6044ff3313 100644 --- a/docs/descriptors/snakemake_snakemake.md +++ b/docs/descriptors/snakemake_snakemake.md @@ -15,7 +15,7 @@ description: How to use snakemake (configure, ignore files, ignore errors, help ## snakemake documentation -- Version in MegaLinter: **7.25.4** +- Version in MegaLinter: **7.30.1** - Visit [Official Web Site](https://snakemake.readthedocs.io/en/stable/){target=_blank} [![snakemake - GitHub](https://gh-card.dev/repos/snakemake/snakemake.svg?fullname=)](https://github.com/snakemake/snakemake){target=_blank} @@ -35,6 +35,7 @@ description: How to use snakemake (configure, ignore files, ignore errors, help | SNAKEMAKE_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"]` | `["Snakefile"]` | | SNAKEMAKE_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SNAKEMAKE_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SNAKEMAKE_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SNAKEMAKE_LINT and its pre/post commands | None | | SNAKEMAKE_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | SNAKEMAKE_LINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | SNAKEMAKE_LINT_CLI_EXECUTABLE | Override CLI executable | `['snakemake']` | @@ -52,21 +53,22 @@ Use snakemake in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -91,7 +93,8 @@ snakemake --lint -s Snakefile ### Help content ```shell -usage: snakemake [-h] [--dry-run] [--profile PROFILE] [--cache [RULE ...]] +usage: snakemake [-h] [--dry-run] [--profile PROFILE] + [--workflow-profile WORKFLOW_PROFILE] [--cache [RULE ...]] [--snakefile FILE] [--cores [N]] [--jobs [N]] [--local-cores N] [--resources [NAME=INT ...]] [--set-threads RULE=THREADS [RULE=THREADS ...]] @@ -168,10 +171,12 @@ usage: snakemake [-h] [--dry-run] [--profile PROFILE] [--cache [RULE ...]] [--google-lifesciences] [--google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...]] [--google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION] - [--google-lifesciences-keep-cache] [--flux] [--tes URL] - [--use-conda] [--conda-not-block-search-path-envvars] - [--list-conda-envs] [--conda-prefix DIR] - [--conda-cleanup-envs] + [--google-lifesciences-keep-cache] [--az-batch] + [--az-batch-enable-autoscale] + [--az-batch-account-url [AZ_BATCH_ACCOUNT_URL]] [--flux] + [--tes URL] [--use-conda] + [--conda-not-block-search-path-envvars] [--list-conda-envs] + [--conda-prefix DIR] [--conda-cleanup-envs] [--conda-cleanup-pkgs [{tarballs,cache}]] [--conda-create-envs-only] [--conda-frontend {conda,mamba}] [--use-singularity] [--singularity-prefix DIR] @@ -204,8 +209,33 @@ EXECUTION: the YAML file. Profiles can be obtained from https://github.com/snakemake-profiles. The profile can also be set via the environment variable - $SNAKEMAKE_PROFILE. [env var: SNAKEMAKE_PROFILE] - (default: None) + $SNAKEMAKE_PROFILE. To override this variable and use + no profile at all, provide the value 'none' to this + argument. [env var: SNAKEMAKE_PROFILE] (default: None) + --workflow-profile WORKFLOW_PROFILE + Path (relative to current directory) to workflow + specific profile folder to use for configuring + Snakemake with parameters specific for this workflow + (like resources). If this flag is not used, Snakemake + will by default use 'profiles/default' if present + (searched both relative to current directory and + relative to Snakefile, in this order). For skipping + any workflow specific profile provide the special + value 'none'. Settings made in the workflow profile + will override settings made in the general profile + (see --profile). The profile folder has to contain a + file 'config.yaml'. This file can be used to set + default values for command line options in YAML + format. For example, '--cluster qsub' becomes + 'cluster: qsub' in the YAML file. It is advisable to + use the workflow profile to set or overwrite e.g. + workflow specific resources like the amount of threads + of a particular rule or the amount of memory needed. + Note that in such cases, the arguments may be given as + nested YAML mappings in the profile, e.g. 'set- + threads: myrule: 4' instead of 'set-threads: + myrule=4'. [env var: SNAKEMAKE_PROFILE] (default: + None) --cache [RULE ...] Store output files of given rules in a central cache given by the environment variable $SNAKEMAKE_OUTPUT_CACHE. Likewise, retrieve output @@ -931,6 +961,38 @@ FLUX: without. If you don't have a shared filesystem, additionally specify --no-shared-fs. (default: False) +GOOGLE_LIFE_SCIENCE: + --google-lifesciences + Execute workflow on Google Cloud cloud using the + Google Life. Science API. This requires default + application credentials (json) to be created and + export to the environment to use Google Cloud Storage, + Compute Engine, and Life Sciences. The credential file + should be exported as GOOGLE_APPLICATION_CREDENTIALS + for snakemake to discover. Also, --use-conda, --use- + singularity, --config, --configfile are supported and + will be carried over. (default: False) + --google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...] + Specify one or more valid instance regions (defaults + to US) (default: ['us-east1', 'us-west1', 'us- + central1']) + --google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION + The Life Sciences API service used to schedule the + jobs. E.g., us-centra1 (Iowa) and europe-west2 + (London) Watch the terminal output to see all options + found to be available. If not specified, defaults to + the first found with a matching prefix from regions + specified with --google-lifesciences-regions. + (default: None) + --google-lifesciences-keep-cache + Cache workflows in your Google Cloud Storage Bucket + specified by --default-remote-prefix/{source}/{cache}. + Each workflow working directory is compressed to a + .tar.gz, named by the hash of the contents, and kept + in Google Cloud Storage. By default, the caches are + deleted at the shutdown step of the workflow. + (default: False) + KUBERNETES: --kubernetes [NAMESPACE] Execute workflow in a kubernetes cluster (in the @@ -964,6 +1026,10 @@ KUBERNETES: would still see the original value, i.e. as the value substituted in {threads}. (default: 0.95) +TES: + --tes URL Send workflow tasks to GA4GH TES server specified by + url. (default: None) + TIBANNA: --tibanna Execute workflow on AWS cloud using Tibanna. This requires --default-remote-prefix to be set to S3 @@ -996,41 +1062,17 @@ TIBANNA: spot_instance=true subnet= security group= (default: None) -GOOGLE_LIFE_SCIENCE: - --google-lifesciences - Execute workflow on Google Cloud cloud using the - Google Life. Science API. This requires default - application credentials (json) to be created and - export to the environment to use Google Cloud Storage, - Compute Engine, and Life Sciences. The credential file - should be exported as GOOGLE_APPLICATION_CREDENTIALS - for snakemake to discover. Also, --use-conda, --use- - singularity, --config, --configfile are supported and - will be carried over. (default: False) - --google-lifesciences-regions GOOGLE_LIFESCIENCES_REGIONS [GOOGLE_LIFESCIENCES_REGIONS ...] - Specify one or more valid instance regions (defaults - to US) (default: ['us-east1', 'us-west1', 'us- - central1']) - --google-lifesciences-location GOOGLE_LIFESCIENCES_LOCATION - The Life Sciences API service used to schedule the - jobs. E.g., us-centra1 (Iowa) and europe-west2 - (London) Watch the terminal output to see all options - found to be available. If not specified, defaults to - the first found with a matching prefix from regions - specified with --google-lifesciences-regions. - (default: None) - --google-lifesciences-keep-cache - Cache workflows in your Google Cloud Storage Bucket - specified by --default-remote-prefix/{source}/{cache}. - Each workflow working directory is compressed to a - .tar.gz, named by the hash of the contents, and kept - in Google Cloud Storage. By default, the caches are - deleted at the shutdown step of the workflow. +AZURE_BATCH: + --az-batch Execute workflow on azure batch (default: False) + --az-batch-enable-autoscale + Enable autoscaling of the azure batch pool nodes, this + option will set the initial dedicated node count to + zero, and requires five minutes to resize the cluster, + so is only recommended for longer running jobs. (default: False) - -TES: - --tes URL Send workflow tasks to GA4GH TES server specified by - url. (default: None) + --az-batch-account-url [AZ_BATCH_ACCOUNT_URL] + Azure batch account url, requires AZ_BATCH_ACCOUNT_KEY + environment variable to be set. (default: None) CONDA: --use-conda If defined in the rule, run job in a conda @@ -1095,8 +1137,8 @@ ENVIRONMENT MODULES: fallback for rules which don't define environment modules. (default: False) - If an arg is specified in more than one place, then commandline values -override environment variables which override defaults. + In general, command-line values override environment variables which override +defaults. ``` ### Installation on mega-linter Docker image diff --git a/docs/descriptors/spell.md b/docs/descriptors/spell.md index 0a8a0c8172c..5c4c55c6c6c 100644 --- a/docs/descriptors/spell.md +++ b/docs/descriptors/spell.md @@ -1,6 +1,6 @@ --- title: SPELL linters in MegaLinter -description: cspell, proselint, vale are available to analyze SPELL files in MegaLinter +description: cspell, proselint, vale, lychee are available to analyze SPELL files in MegaLinter --- @@ -14,6 +14,7 @@ description: cspell, proselint, vale are available to analyze SPELL files in Meg | [**cspell**](spell_cspell.md)
[_SPELL_CSPELL_](spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | | [**proselint**](spell_proselint.md)
[_SPELL_PROSELINT_](spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | | [**vale**](spell_vale.md)
[_SPELL_VALE_](spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| [**lychee**](spell_lychee.md)
[_SPELL_LYCHEE_](spell_lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | ## Linted files diff --git a/docs/descriptors/spell_cspell.md b/docs/descriptors/spell_cspell.md index da298b32c6e..7881361c348 100644 --- a/docs/descriptors/spell_cspell.md +++ b/docs/descriptors/spell_cspell.md @@ -15,7 +15,7 @@ If you do not want cspell to analyze the files names, define `SPELL_CSPELL_ANALY ## cspell documentation -- Version in MegaLinter: **6.31.1** +- Version in MegaLinter: **6.31.2** - Visit [Official Web Site](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#readme){target=_blank} - See [How to configure cspell rules](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#customization){target=_blank} - See [How to disable cspell rules in files](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#enable--disable-checking-sections-of-code){target=_blank} @@ -38,6 +38,7 @@ If you do not want cspell to analyze the files names, define `SPELL_CSPELL_ANALY | 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 | +| SPELL_CSPELL_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SPELL_CSPELL and its pre/post commands | None | | SPELL_CSPELL_CONFIG_FILE | cspell configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.cspell.json` | | SPELL_CSPELL_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SPELL_CSPELL_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -56,22 +57,23 @@ Use cspell in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/spell_lychee.md b/docs/descriptors/spell_lychee.md new file mode 100644 index 00000000000..3f76f5481bc --- /dev/null +++ b/docs/descriptors/spell_lychee.md @@ -0,0 +1,289 @@ +--- +title: lychee configuration in MegaLinter +description: How to use lychee (configure, ignore files, ignore errors, help & version documentations) to analyze SPELL files +--- + + + + + +[![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/lycheeverse/lychee?sort=semver)](https://github.com/lycheeverse/lychee/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/lycheeverse/lychee)](https://github.com/lycheeverse/lychee/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/lycheeverse/lychee)](https://github.com/lycheeverse/lychee/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/lycheeverse/lychee)](https://github.com/lycheeverse/lychee/graphs/contributors/) + +## lychee documentation + +- Version in MegaLinter: **0.13.0** +- Visit [Official Web Site](https://lychee.cli.rs){target=_blank} +- See [How to configure lychee rules](https://lychee.cli.rs/#/usage/config){target=_blank} +- See [Index of problems detected by lychee](https://lychee.cli.rs/#/usage/cli){target=_blank} + +[![lychee - GitHub](https://gh-card.dev/repos/lycheeverse/lychee.svg?fullname=)](https://github.com/lycheeverse/lychee){target=_blank} + +## Configuration in MegaLinter + +- Enable lychee by adding `SPELL_LYCHEE` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable lychee by adding `SPELL_LYCHEE` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------| +| SPELL_LYCHEE_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| SPELL_LYCHEE_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | +| SPELL_LYCHEE_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | +| SPELL_LYCHEE_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_LYCHEE_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".md", ".mdx", ".markdown", ".html", ".htm", ".rst", ".txt", ".json", ".jsonc", ".json5", ".yaml", ".yml"]` | +| SPELL_LYCHEE_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_LYCHEE_PRE_COMMANDS | List of bash commands to run before the linter | None | +| SPELL_LYCHEE_POST_COMMANDS | List of bash commands to run after the linter | None | +| SPELL_LYCHEE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SPELL_LYCHEE and its pre/post commands | None | +| SPELL_LYCHEE_CONFIG_FILE | lychee configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `lychee.toml` | +| SPELL_LYCHEE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| SPELL_LYCHEE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| SPELL_LYCHEE_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| SPELL_LYCHEE_CLI_EXECUTABLE | Override CLI executable | `['lychee']` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- File extensions: `.md`, `.mdx`, `.markdown`, `.html`, `.htm`, `.rst`, `.txt`, `.json`, `.jsonc`, `.json5`, `.yaml`, `.yml` + + + +### How the linting is performed + +- lychee is called once with the list of files as arguments (`list_of_files` CLI lint mode) + +### Example calls + +```shell +lychee --format detailed --no-progress README.md info.txt test.html +``` + +```shell +lychee --format detailed --no-progress README.md +``` + +```shell +lychee --format detailed --no-progress test.html info.txt +``` + +```shell +lychee --format detailed --no-progress --offline path/to/directory +``` + +```shell +lychee --format detailed --no-progress https://raw.githubusercontent.com/lycheeverse/lychee/master/README.md +``` + +```shell +lychee --format detailed --no-progress "~/projects/big_project/**/README.*" +``` + +```shell +lychee --format detailed --no-progress --glob-ignore-case --verbose "~/projects/**/[r]eadme.*" +``` + + +### Help content + +```shell +A fast, async link checker + +Finds broken URLs and mail addresses inside Markdown, HTML, `reStructuredText`, websites and more! + +Usage: lychee [OPTIONS] ... + +Arguments: + ... + The inputs (where to get links to check from). These can be: files (e.g. `README.md`), file globs (e.g. `"~/git/*/README.md"`), remote URLs (e.g. `https://example.com/README.md`) or standard input (`-`). NOTE: Use `--` to separate inputs from options that allow multiple arguments + +Options: + -c, --config + Configuration file to use + + [default: lychee.toml] + + -v, --verbose... + Set verbosity level; more output per occurrence (e.g. `-v` or `-vv`) + + -q, --quiet... + Less output per occurrence (e.g. `-q` or `-qq`) + + -n, --no-progress + Do not show progress bar. + This is recommended for non-interactive shells (e.g. for continuous integration) + + --cache + Use request cache stored on disk at `.lycheecache` + + --max-cache-age + Discard all cached requests older than this duration + + [default: 1d] + + --dump + Don't perform any link checking. Instead, dump all the links extracted from inputs that would be checked + + --archive + Specify the use of a specific web archive. Can be used in combination with `--suggest` + + [possible values: wayback] + + --suggest + Suggest link replacements for broken links, using a web archive. The web archive can be specified with `--archive` + + -m, --max-redirects + Maximum number of allowed redirects + + [default: 5] + + --max-retries + Maximum number of retries per request + + [default: 3] + + --max-concurrency + Maximum number of concurrent network requests + + [default: 128] + + -T, --threads + Number of threads to utilize. Defaults to number of cores available to the system + + -u, --user-agent + User agent + + [default: lychee/0.13.0] + + -i, --insecure + Proceed for server connections considered insecure (invalid TLS) + + -s, --scheme + Only test links with the given schemes (e.g. http and https) + + --offline + Only check local files and block network requests + + --include + URLs to check (supports regex). Has preference over all excludes + + --exclude + Exclude URLs and mail addresses from checking (supports regex) + + --exclude-file + Deprecated; use `--exclude-path` instead + + --exclude-path + Exclude file path from getting checked + + -E, --exclude-all-private + Exclude all private IPs from checking. + Equivalent to `--exclude-private --exclude-link-local --exclude-loopback` + + --exclude-private + Exclude private IP address ranges from checking + + --exclude-link-local + Exclude link-local IP address range from checking + + --exclude-loopback + Exclude loopback IP address range and localhost from checking + + --exclude-mail + Exclude all mail addresses from checking + + --remap + Remap URI matching pattern to different URI + + --header
+ Custom request header + + -a, --accept + Comma-separated list of accepted status codes for valid links + + -t, --timeout + Website timeout in seconds from connect to response finished + + [default: 20] + + -r, --retry-wait-time + Minimum wait time in seconds between retries of failed requests + + [default: 1] + + -X, --method + Request method + + [default: get] + + -b, --base + Base URL or website root directory to check relative URLs e.g. https://example.com or `/path/to/public` + + --basic-auth + Basic authentication support. E.g. `username:password` + + --github-token + GitHub API token to use when checking github.com links, to avoid rate limiting + + [env: GITHUB_TOKEN] + + --skip-missing + Skip missing input files (default is to error if they don't exist) + + --include-verbatim + Find links in verbatim sections like `pre`- and `code` blocks + + --glob-ignore-case + Ignore case when expanding filesystem path glob inputs + + -o, --output + Output file of status report + + -f, --format + Output format of final status report (compact, detailed, json, markdown) + + [default: compact] + + --require-https + When HTTPS is available, treat HTTP links as errors + + -h, --help + Print help (see a summary with '-h') + + -V, --version + Print version +``` + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +FROM lycheeverse/lychee:latest-alpine as lychee +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ +``` + diff --git a/docs/descriptors/spell_proselint.md b/docs/descriptors/spell_proselint.md index 6559adf4986..6344f08e5e2 100644 --- a/docs/descriptors/spell_proselint.md +++ b/docs/descriptors/spell_proselint.md @@ -39,6 +39,7 @@ a linter for prose | SPELL_PROSELINT_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_PROSELINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SPELL_PROSELINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SPELL_PROSELINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SPELL_PROSELINT and its pre/post commands | None | | SPELL_PROSELINT_CONFIG_FILE | proselint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.proselintrc` | | SPELL_PROSELINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SPELL_PROSELINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -60,22 +61,23 @@ Use proselint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/spell_vale.md b/docs/descriptors/spell_vale.md index c1f999ac1ff..5cc83fadfeb 100644 --- a/docs/descriptors/spell_vale.md +++ b/docs/descriptors/spell_vale.md @@ -15,7 +15,7 @@ MegaLinter analyze markdown and restructuredText files by default, you can chang ## vale documentation -- Version in MegaLinter: **2.26.0** +- Version in MegaLinter: **2.28.0** - Visit [Official Web Site](https://vale.sh/){target=_blank} - See [How to configure vale rules](https://vale.sh/explorer/){target=_blank} - See [How to disable vale rules in files](https://vale.sh/docs/topics/vocab/){target=_blank} @@ -38,6 +38,7 @@ MegaLinter analyze markdown and restructuredText files by default, you can chang | SPELL_VALE_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_VALE_PRE_COMMANDS | List of bash commands to run before the linter | None | | SPELL_VALE_POST_COMMANDS | List of bash commands to run after the linter | None | +| SPELL_VALE_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SPELL_VALE and its pre/post commands | None | | SPELL_VALE_CONFIG_FILE | vale configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.vale.ini` | | SPELL_VALE_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SPELL_VALE_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -60,21 +61,22 @@ Use vale in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/sql_sql_lint.md b/docs/descriptors/sql_sql_lint.md index 02020085140..8cb11314f24 100644 --- a/docs/descriptors/sql_sql_lint.md +++ b/docs/descriptors/sql_sql_lint.md @@ -32,6 +32,7 @@ description: How to use sql-lint (configure, ignore files, ignore errors, help & | SQL_SQL_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 | | SQL_SQL_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SQL_SQL_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SQL_SQL_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SQL_SQL_LINT and its pre/post commands | None | | SQL_SQL_LINT_CONFIG_FILE | sql-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.sql-config.json` | | SQL_SQL_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SQL_SQL_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -50,22 +51,23 @@ Use sql-lint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/sql_sqlfluff.md b/docs/descriptors/sql_sqlfluff.md index 1b73e029f0d..f27f582b566 100644 --- a/docs/descriptors/sql_sqlfluff.md +++ b/docs/descriptors/sql_sqlfluff.md @@ -15,7 +15,7 @@ description: How to use sqlfluff (configure, ignore files, ignore errors, help & ## sqlfluff documentation -- Version in MegaLinter: **2.1.0** +- Version in MegaLinter: **2.1.2** - 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 isn't found, [.sqlfluff](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.sqlfluff){target=_blank} will be used @@ -38,6 +38,7 @@ description: How to use sqlfluff (configure, ignore files, ignore errors, help & | SQL_SQLFLUFF_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 | | SQL_SQLFLUFF_PRE_COMMANDS | List of bash commands to run before the linter | None | | SQL_SQLFLUFF_POST_COMMANDS | List of bash commands to run after the linter | None | +| SQL_SQLFLUFF_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SQL_SQLFLUFF and its pre/post commands | None | | SQL_SQLFLUFF_CONFIG_FILE | sqlfluff configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.sqlfluff` | | SQL_SQLFLUFF_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SQL_SQLFLUFF_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -48,22 +49,23 @@ description: How to use sqlfluff (configure, ignore files, ignore errors, help & This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![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 473cc6144f5..c80219347d8 100644 --- a/docs/descriptors/sql_tsqllint.md +++ b/docs/descriptors/sql_tsqllint.md @@ -32,6 +32,7 @@ description: How to use tsqllint (configure, ignore files, ignore errors, help & | SQL_TSQLLINT_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 | | SQL_TSQLLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SQL_TSQLLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SQL_TSQLLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SQL_TSQLLINT and its pre/post commands | None | | SQL_TSQLLINT_CONFIG_FILE | tsqllint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.tsqllintrc` | | SQL_TSQLLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SQL_TSQLLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -50,10 +51,11 @@ Use tsqllint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/swift_swiftlint.md b/docs/descriptors/swift_swiftlint.md index 517bc10b5de..f0624b0760f 100644 --- a/docs/descriptors/swift_swiftlint.md +++ b/docs/descriptors/swift_swiftlint.md @@ -9,7 +9,7 @@ description: How to use swiftlint (configure, ignore files, ignore errors, help ## swiftlint documentation -- Version in MegaLinter: **0.52.2** +- Version in MegaLinter: **0.52.4** - Visit [Official Web Site](https://github.com/realm/SwiftLint#readme){target=_blank} - Docker image: [norionomura/swiftlint:latest](https://hub.docker.com/r/norionomura/swiftlint){target=_blank} - arguments: `-v {{WORKSPACE}}:/tmp/lint:rw` @@ -34,6 +34,7 @@ description: How to use swiftlint (configure, ignore files, ignore errors, help | SWIFT_SWIFTLINT_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 | | SWIFT_SWIFTLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | SWIFT_SWIFTLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| SWIFT_SWIFTLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling SWIFT_SWIFTLINT and its pre/post commands | None | | SWIFT_SWIFTLINT_CONFIG_FILE | swiftlint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.swiftlint.yml` | | SWIFT_SWIFTLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | SWIFT_SWIFTLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -56,9 +57,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | ## Behind the scenes diff --git a/docs/descriptors/tekton_tekton_lint.md b/docs/descriptors/tekton_tekton_lint.md index 76f24c0f647..6f74f2f7af6 100644 --- a/docs/descriptors/tekton_tekton_lint.md +++ b/docs/descriptors/tekton_tekton_lint.md @@ -31,6 +31,7 @@ description: How to use tekton-lint (configure, ignore files, ignore errors, hel | TEKTON_TEKTON_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 | | TEKTON_TEKTON_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | TEKTON_TEKTON_LINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| TEKTON_TEKTON_LINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TEKTON_TEKTON_LINT and its pre/post commands | None | | TEKTON_TEKTON_LINT_CONFIG_FILE | tekton-lint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.tektonlintrc.yaml` | | TEKTON_TEKTON_LINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TEKTON_TEKTON_LINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -41,21 +42,22 @@ description: How to use tekton-lint (configure, ignore files, ignore errors, hel This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/terraform.md b/docs/descriptors/terraform.md index 79efadcb64d..25f9ffe3e35 100644 --- a/docs/descriptors/terraform.md +++ b/docs/descriptors/terraform.md @@ -1,6 +1,6 @@ --- title: TERRAFORM linters in MegaLinter -description: tflint, terrascan, terragrunt, terraform-fmt, kics are available to analyze TERRAFORM files in MegaLinter +description: tflint, terrascan, terragrunt, terraform-fmt are available to analyze TERRAFORM files in MegaLinter --- @@ -12,10 +12,9 @@ description: tflint, terrascan, terragrunt, terraform-fmt, kics are available to | Linter | Additional | |-------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [**tflint**](terraform_tflint.md)
[_TERRAFORM_TFLINT_](terraform_tflint.md) | [![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**](terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**terrascan**](terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | | [**terragrunt**](terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](terraform_terragrunt.md) | [![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**](terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | -| [**kics**](terraform_kics.md)
[_TERRAFORM_KICS_](terraform_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ## Linted files diff --git a/docs/descriptors/terraform_terraform_fmt.md b/docs/descriptors/terraform_terraform_fmt.md index 5b8820f56ad..11124f48910 100644 --- a/docs/descriptors/terraform_terraform_fmt.md +++ b/docs/descriptors/terraform_terraform_fmt.md @@ -6,8 +6,8 @@ description: How to use terraform-fmt (configure, ignore files, ignore errors, h @@ -15,8 +15,8 @@ description: How to use terraform-fmt (configure, ignore files, ignore errors, h ## terraform-fmt documentation -- Version in MegaLinter: **1.4.6** -- Visit [Official Web Site](https://www.terraform.io/docs/cli/commands/fmt.html){target=_blank} +- Version in MegaLinter: **1.5.3** +- Visit [Official Web Site](https://developer.hashicorp.com/terraform/cli/commands/fmt){target=_blank} [![terraform - GitHub](https://gh-card.dev/repos/hashicorp/terraform.svg?fullname=)](https://github.com/hashicorp/terraform){target=_blank} @@ -37,6 +37,7 @@ description: How to use terraform-fmt (configure, ignore files, ignore errors, h | TERRAFORM_TERRAFORM_FMT_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 | | TERRAFORM_TERRAFORM_FMT_PRE_COMMANDS | List of bash commands to run before the linter | None | | TERRAFORM_TERRAFORM_FMT_POST_COMMANDS | List of bash commands to run after the linter | None | +| TERRAFORM_TERRAFORM_FMT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TERRAFORM_TERRAFORM_FMT and its pre/post commands | None | | TERRAFORM_TERRAFORM_FMT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | TERRAFORM_TERRAFORM_FMT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | TERRAFORM_TERRAFORM_FMT_CLI_EXECUTABLE | Override CLI executable | `['terraform']` | @@ -58,9 +59,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/terraform_terragrunt.md b/docs/descriptors/terraform_terragrunt.md index 120eac353e1..c3e693b4229 100644 --- a/docs/descriptors/terraform_terragrunt.md +++ b/docs/descriptors/terraform_terragrunt.md @@ -9,7 +9,7 @@ description: How to use terragrunt (configure, ignore files, ignore errors, help ## terragrunt documentation -- Version in MegaLinter: **0.45.11** +- Version in MegaLinter: **0.48.1** - Visit [Official Web Site](https://terragrunt.gruntwork.io){target=_blank} - See [How to configure terragrunt rules](https://terragrunt.gruntwork.io/docs/getting-started/configuration/#terragrunt-configuration-file){target=_blank} @@ -32,6 +32,7 @@ description: How to use terragrunt (configure, ignore files, ignore errors, help | TERRAFORM_TERRAGRUNT_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 | | TERRAFORM_TERRAGRUNT_PRE_COMMANDS | List of bash commands to run before the linter | None | | TERRAFORM_TERRAGRUNT_POST_COMMANDS | List of bash commands to run after the linter | None | +| TERRAFORM_TERRAGRUNT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TERRAFORM_TERRAGRUNT and its pre/post commands | None | | TERRAFORM_TERRAGRUNT_CONFIG_FILE | terragrunt configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `terragrunt.hcl` | | TERRAFORM_TERRAGRUNT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TERRAFORM_TERRAGRUNT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -44,10 +45,10 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -124,7 +125,7 @@ GLOBAL OPTIONS: terragrunt-include-module-prefix When this flag is set output from Terraform sub-commands is prefixed with module path. VERSION: - v0.45.11 + v0.48.1 AUTHOR(S): Gruntwork diff --git a/docs/descriptors/terraform_terrascan.md b/docs/descriptors/terraform_terrascan.md index d3b0e4934b7..35cc296d2bb 100644 --- a/docs/descriptors/terraform_terrascan.md +++ b/docs/descriptors/terraform_terrascan.md @@ -6,21 +6,21 @@ description: How to use terrascan (configure, ignore files, ignore errors, help -[![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/accurics/terrascan?sort=semver)](https://github.com/accurics/terrascan/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/accurics/terrascan)](https://github.com/accurics/terrascan/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/accurics/terrascan)](https://github.com/accurics/terrascan/graphs/contributors/) +[![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/tenable/terrascan?sort=semver)](https://github.com/tenable/terrascan/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/tenable/terrascan)](https://github.com/tenable/terrascan/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/tenable/terrascan)](https://github.com/tenable/terrascan/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/tenable/terrascan)](https://github.com/tenable/terrascan/graphs/contributors/) ## terrascan documentation - Version in MegaLinter: **1.18.1** -- Visit [Official Web Site](https://www.accurics.com/products/terrascan/){target=_blank} -- See [How to configure terrascan rules](https://docs.accurics.com/projects/accurics-terrascan/en/latest/policies/){target=_blank} -- See [Index of problems detected by terrascan](https://docs.accurics.com/projects/accurics-terrascan/en/latest/policies/){target=_blank} +- Visit [Official Web Site](https://runterrascan.io/){target=_blank} +- See [How to configure terrascan rules](https://runterrascan.io/docs/usage/config_options/){target=_blank} +- See [Index of problems detected by terrascan](https://runterrascan.io/docs/usage/){target=_blank} -[![terrascan - GitHub](https://gh-card.dev/repos/accurics/terrascan.svg?fullname=)](https://github.com/accurics/terrascan){target=_blank} +[![terrascan - GitHub](https://gh-card.dev/repos/tenable/terrascan.svg?fullname=)](https://github.com/tenable/terrascan){target=_blank} ## Configuration in MegaLinter @@ -34,6 +34,7 @@ description: How to use terrascan (configure, ignore files, ignore errors, help | TERRAFORM_TERRASCAN_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 | | TERRAFORM_TERRASCAN_PRE_COMMANDS | List of bash commands to run before the linter | None | | TERRAFORM_TERRASCAN_POST_COMMANDS | List of bash commands to run after the linter | None | +| TERRAFORM_TERRASCAN_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TERRAFORM_TERRASCAN and its pre/post commands | None | | TERRAFORM_TERRASCAN_CONFIG_FILE | terrascan configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `terrascan-config.toml` | | TERRAFORM_TERRASCAN_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TERRAFORM_TERRASCAN_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -46,10 +47,10 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/terraform_tflint.md b/docs/descriptors/terraform_tflint.md index 09fb1cc75da..b1cb7bba9a9 100644 --- a/docs/descriptors/terraform_tflint.md +++ b/docs/descriptors/terraform_tflint.md @@ -7,9 +7,11 @@ description: How to use tflint (configure, ignore files, ignore errors, help & v # 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) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/terraform-linters/tflint?sort=semver)](https://github.com/terraform-linters/tflint/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/graphs/contributors/) +> If you are using the GitHub action please use the `TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES: GITHUB_TOKEN` to prevent plugin download issues + ## tflint documentation -- Version in MegaLinter: **0.46.1** +- Version in MegaLinter: **0.47.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 isn't found, [.tflint.hcl](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.tflint.hcl){target=_blank} will be used @@ -25,14 +27,13 @@ description: How to use tflint (configure, ignore files, ignore errors, help & v | Variable | Description | Default value | |----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| TERRAFORM_TFLINT_SECURED_ENV | Allows to send the full env to **tflint --init**. Initialized with default value `true`. Set to `false` to allow `tflint --init` to access your env vars. | `True` | | TERRAFORM_TFLINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| TERRAFORM_TFLINT_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | -| TERRAFORM_TFLINT_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| TERRAFORM_TFLINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `project`: Call the linter from the root of the project | `file` | | TERRAFORM_TFLINT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".tf"]` | | TERRAFORM_TFLINT_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 | | TERRAFORM_TFLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | TERRAFORM_TFLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TERRAFORM_TFLINT and its pre/post commands | None | | TERRAFORM_TFLINT_CONFIG_FILE | tflint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.tflint.hcl` | | TERRAFORM_TFLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TERRAFORM_TFLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -45,10 +46,10 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -60,16 +61,19 @@ This linter is available in the following flavours ### How the linting is performed -- tflint is called one time by identified file (`file` CLI lint mode) +tflint is called once on the whole project directory (`project` CLI lint mode) + +- filtering can not be done using MegaLinter configuration variables,it must be done using tflint configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` doesn't make tflint analyze only updated files ### Example calls ```shell -tflint myfile.tf +tflint ``` ```shell -tflint -c .tflint.hcl myfile.tf +tflint -c .tflint.hcl ``` @@ -142,6 +146,8 @@ Application Options: colorized output --no-color Disable colorized output + --fix Fix issues + automatically Help Options: -h, --help Show this help @@ -153,7 +159,7 @@ Help Options: - Dockerfile commands : ```dockerfile -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ ``` diff --git a/docs/descriptors/tsx_eslint.md b/docs/descriptors/tsx_eslint.md index 5409fcf64be..491dd641c7d 100644 --- a/docs/descriptors/tsx_eslint.md +++ b/docs/descriptors/tsx_eslint.md @@ -19,7 +19,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.40.0** +- Version in MegaLinter: **8.45.0** - Visit [Official Web Site](https://github.com/jsx-eslint/eslint-plugin-react#readme){target=_blank} - See [How to configure eslint rules](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc){target=_blank} - See [How to disable eslint rules in files](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments){target=_blank} @@ -46,6 +46,7 @@ You can create it by typing `npx eslint --init` in the root of your repository | TSX_ESLINT_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 | | TSX_ESLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | TSX_ESLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| TSX_ESLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TSX_ESLINT and its pre/post commands | None | | TSX_ESLINT_CONFIG_FILE | eslint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.eslintrc.json` | | TSX_ESLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TSX_ESLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -59,7 +60,7 @@ 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} | +| | [Brackets](https://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) | | @@ -72,11 +73,12 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/typescript.md b/docs/descriptors/typescript.md index 458f6f802d3..bf62167979c 100644 --- a/docs/descriptors/typescript.md +++ b/docs/descriptors/typescript.md @@ -1,6 +1,6 @@ --- title: TYPESCRIPT linters in MegaLinter -description: eslint, standard, prettier are available to analyze TYPESCRIPT files in MegaLinter +description: eslint, ts-standard, prettier are available to analyze TYPESCRIPT files in MegaLinter --- @@ -9,11 +9,11 @@ description: eslint, standard, prettier are available to analyze TYPESCRIPT file ## Linters -| Linter | Additional | -|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [**eslint**](typescript_eslint.md)
[_TYPESCRIPT_ES_](typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | -| [**standard**](typescript_standard.md)
[_TYPESCRIPT_STANDARD_](typescript_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | -| [**prettier**](typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| Linter | Additional | +|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [**eslint**](typescript_eslint.md)
[_TYPESCRIPT_ES_](typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| [**ts-standard**](typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](typescript_ts_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | +| [**prettier**](typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | ## Linted files diff --git a/docs/descriptors/typescript_eslint.md b/docs/descriptors/typescript_eslint.md index 21c2025e911..b171cdb37e9 100644 --- a/docs/descriptors/typescript_eslint.md +++ b/docs/descriptors/typescript_eslint.md @@ -19,7 +19,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.40.0** +- Version in MegaLinter: **8.45.0** - Visit [Official Web Site](https://typescript-eslint.io/){target=_blank} - See [How to configure eslint rules](https://typescript-eslint.io/getting-started/#configuration-values){target=_blank} - See [How to disable eslint rules in files](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments){target=_blank} @@ -46,6 +46,7 @@ You can create it by typing `npx eslint --init` in the root of your repository | TYPESCRIPT_ES_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 | | TYPESCRIPT_ES_PRE_COMMANDS | List of bash commands to run before the linter | None | | TYPESCRIPT_ES_POST_COMMANDS | List of bash commands to run after the linter | None | +| TYPESCRIPT_ES_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TYPESCRIPT_ES and its pre/post commands | None | | TYPESCRIPT_ES_CONFIG_FILE | eslint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.eslintrc.json` | | TYPESCRIPT_ES_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TYPESCRIPT_ES_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -58,8 +59,7 @@ 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} | +| | [Brackets](https://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) | | @@ -72,11 +72,12 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/typescript_prettier.md b/docs/descriptors/typescript_prettier.md index d3d915230b8..8e0197e6138 100644 --- a/docs/descriptors/typescript_prettier.md +++ b/docs/descriptors/typescript_prettier.md @@ -15,7 +15,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & ## prettier documentation -- Version in MegaLinter: **2.8.8** +- Version in MegaLinter: **3.0.0** - Visit [Official Web Site](https://prettier.io/){target=_blank} - See [How to configure prettier rules](https://prettier.io/docs/en/configuration.html){target=_blank} - See [How to disable prettier rules in files](https://prettier.io/docs/en/ignore.html#javascript){target=_blank} @@ -41,6 +41,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & | TYPESCRIPT_PRETTIER_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 | | TYPESCRIPT_PRETTIER_PRE_COMMANDS | List of bash commands to run before the linter | None | | TYPESCRIPT_PRETTIER_POST_COMMANDS | List of bash commands to run after the linter | None | +| TYPESCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TYPESCRIPT_PRETTIER and its pre/post commands | None | | TYPESCRIPT_PRETTIER_CONFIG_FILE | prettier configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.prettierrc.json` | | TYPESCRIPT_PRETTIER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | TYPESCRIPT_PRETTIER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -53,9 +54,6 @@ 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} | @@ -69,11 +67,12 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -154,9 +153,9 @@ Format options: Defaults to false. --tab-width Number of spaces per indentation level. Defaults to 2. - --trailing-comma + --trailing-comma Print trailing commas wherever possible when multi-line. - Defaults to es5. + Defaults to all. --use-tabs Indent with tabs instead of spaces. Defaults to false. --vue-indent-script-and-style @@ -174,13 +173,9 @@ Config options: --find-config-path Find and print the path to a configuration file for the given input file. --ignore-path Path to a file with patterns describing files to ignore. - Defaults to .prettierignore. - --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. - Defaults to []. - --plugin-search-dir - Custom directory that contains prettier plugins in node_modules subdirectory. - Overrides default behavior when plugins are searched relatively to the location of Prettier. Multiple values are accepted. + Defaults to [.gitignore, .prettierignore]. + --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. Defaults to []. --with-node-modules Process files inside 'node_modules' directory. @@ -216,10 +211,9 @@ Other options: -u, --ignore-unknown Ignore unknown files. --insert-pragma Insert @format pragma into file's first docblock comment. Defaults to false. - --loglevel + --log-level What level of logs to report. Defaults to log. - --no-plugin-search Disable plugin autoloading. --require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted. Defaults to false. diff --git a/docs/descriptors/typescript_standard.md b/docs/descriptors/typescript_standard.md index 2e5686e4ad7..734b578e002 100644 --- a/docs/descriptors/typescript_standard.md +++ b/docs/descriptors/typescript_standard.md @@ -1,36 +1,36 @@ --- -title: standard configuration in MegaLinter -description: How to use standard (configure, ignore files, ignore errors, help & version documentations) to analyze TYPESCRIPT files +title: ts-standard configuration in MegaLinter +description: How to use ts-standard (configure, ignore files, ignore errors, help & version documentations) to analyze TYPESCRIPT files --- -[![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/standard/standard?sort=semver)](https://github.com/standard/standard/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/standard/standard)](https://github.com/standard/standard/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/standard/standard)](https://github.com/standard/standard/graphs/contributors/) +[![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/standard/ts-standard?sort=semver)](https://github.com/standard/ts-standard/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/standard/ts-standard)](https://github.com/standard/ts-standard/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/standard/ts-standard)](https://github.com/standard/ts-standard/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/standard/ts-standard)](https://github.com/standard/ts-standard/graphs/contributors/) -## standard documentation +## ts-standard documentation -- Version in MegaLinter: **17.0.0** +- Version in MegaLinter: **12.0.2** - Visit [Official Web Site](https://standardjs.com/){target=_blank} -- See [Index of problems detected by standard](https://standardjs.com/rules.html){target=_blank} +- See [Index of problems detected by ts-standard](https://standardjs.com/rules.html){target=_blank} -[![standard - GitHub](https://gh-card.dev/repos/standard/standard.svg?fullname=)](https://github.com/standard/standard){target=_blank} +[![ts-standard - GitHub](https://gh-card.dev/repos/standard/ts-standard.svg?fullname=)](https://github.com/standard/ts-standard){target=_blank} ## Configuration in MegaLinter -- Enable standard by adding `TYPESCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) -- Disable standard by adding `TYPESCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Enable ts-standard by adding `TYPESCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable ts-standard by adding `TYPESCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) - Enable **autofixes** by adding `TYPESCRIPT_STANDARD` in [APPLY_FIXES variable](https://megalinter.io/beta/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| -| JAVASCRIPT_DEFAULT_STYLE | For standard to be active, JAVASCRIPT_DEFAULT_STYLE must be `standard` | `standard` | +| TYPESCRIPT_STANDARD | For ts-standard to be active, TYPESCRIPT_STANDARD must be `ts-standard` | `ts-standard` | | TYPESCRIPT_STANDARD_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | | TYPESCRIPT_STANDARD_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | TYPESCRIPT_STANDARD_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | @@ -39,24 +39,21 @@ description: How to use standard (configure, ignore files, ignore errors, help & | TYPESCRIPT_STANDARD_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 | | TYPESCRIPT_STANDARD_PRE_COMMANDS | List of bash commands to run before the linter | None | | TYPESCRIPT_STANDARD_POST_COMMANDS | List of bash commands to run after the linter | None | +| TYPESCRIPT_STANDARD_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TYPESCRIPT_STANDARD and its pre/post commands | None | | TYPESCRIPT_STANDARD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | TYPESCRIPT_STANDARD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | -| TYPESCRIPT_STANDARD_CLI_EXECUTABLE | Override CLI executable | `['standard']` | +| TYPESCRIPT_STANDARD_CLI_EXECUTABLE | Override CLI executable | `['ts-standard']` | ## IDE Integration -Use standard in your favorite IDE to catch errors before MegaLinter ! +Use ts-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=standard.vscode-standard](vscode-standard) | [Visit Web Site](vscode-standard){target=_blank} | +| | IDE | Extension Name | Install | +|:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------:| +| | [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=standard.vscode-standard](vscode-standard) | [Visit Web Site](vscode-standard){target=_blank} | ## MegaLinter Flavours @@ -64,9 +61,9 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 114 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 82 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 57 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -78,47 +75,48 @@ This linter is available in the following flavours ### How the linting is performed -- standard is called once with the list of files as arguments (`list_of_files` CLI lint mode) +- ts-standard is called once with the list of files as arguments (`list_of_files` CLI lint mode) ### Example calls ```shell -standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin myfile.ts +ts-standard myfile.ts ``` ```shell -standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin --fix myfile.ts +ts-standard --fix myfile.ts ``` ### Help content ```shell -standard - Use JavaScript Standard Style (https://standardjs.com) +ts-standard - Standard for TypeScript! (https://github.com/standard/ts-standard) Usage: - standard [FILES...] + ts-standard [FILES...] - If FILES is omitted, all JavaScript source files (*.js, *.jsx, *.mjs, *.cjs) - in the current working directory are checked, recursively. + If FILES is omitted, all JavaScript/TypeScript source files (*.js, *.jsx, *.mjs, *.cjs, *.ts, *.tsx) + in the current working directory are checked, recursively. - Certain paths (node_modules/, coverage/, vendor/, *.min.js, and - files/folders that begin with '.' like .git/) are automatically ignored. + Certain paths (node_modules/, coverage/, vendor/, *.min.js, and + files/folders that begin with '.' like .git/) are automatically ignored. - Paths in a project's root .gitignore file are also automatically ignored. + Paths in a project's root .gitignore file are also automatically ignored. Flags: - --fix Automatically fix problems - --version Show current version - -h, --help Show usage information + --fix Automatically fix problems + -p, --project Specify ts-config location (default: ./tsconfig.eslint.json or ./tsconfig.json) + --version Show current version + -h, --help Show usage information Flags (advanced): - --stdin Read file text from stdin - --ext Specify JavaScript file extensions - --global Declare global variable - --plugin Use custom eslint plugin - --env Use custom eslint environment - --parser Use custom js parser (e.g. babel-eslint) + --stdin Read file text from stdin + --ext Specify JavaScript/TypeScript file extensions + --global Declare global variable + --plugin Use custom eslint plugin + --env Use custom eslint environment + --parser Use custom ts/js parser (default: @typescript-eslint/parser) ``` @@ -126,6 +124,4 @@ Flags (advanced): - NPM packages (node.js): - [typescript](https://www.npmjs.com/package/typescript) - - [standard](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) + - [ts-standard](https://www.npmjs.com/package/ts-standard) diff --git a/docs/descriptors/typescript_ts_standard.md b/docs/descriptors/typescript_ts_standard.md new file mode 100644 index 00000000000..94dda5ee5f4 --- /dev/null +++ b/docs/descriptors/typescript_ts_standard.md @@ -0,0 +1,128 @@ +--- +title: ts-standard configuration in MegaLinter +description: How to use ts-standard (configure, ignore files, ignore errors, help & version documentations) to analyze TYPESCRIPT files +--- + + + + + +[![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/standard/ts-standard?sort=semver)](https://github.com/standard/ts-standard/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/standard/ts-standard)](https://github.com/standard/ts-standard/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/standard/ts-standard)](https://github.com/standard/ts-standard/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/standard/ts-standard)](https://github.com/standard/ts-standard/graphs/contributors/) + +## ts-standard documentation + +- Version in MegaLinter: **12.0.2** +- Visit [Official Web Site](https://standardjs.com/){target=_blank} +- See [Index of problems detected by ts-standard](https://standardjs.com/rules.html){target=_blank} + +[![ts-standard - GitHub](https://gh-card.dev/repos/standard/ts-standard.svg?fullname=)](https://github.com/standard/ts-standard){target=_blank} + +## Configuration in MegaLinter + +- Enable ts-standard by adding `TYPESCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable ts-standard by adding `TYPESCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +- Enable **autofixes** by adding `TYPESCRIPT_STANDARD` in [APPLY_FIXES variable](https://megalinter.io/beta/configuration/#apply-fixes) + +| Variable | Description | Default value | +|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| TYPESCRIPT_STANDARD | For ts-standard to be active, TYPESCRIPT_STANDARD must be `ts-standard` | `ts-standard` | +| TYPESCRIPT_STANDARD_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| TYPESCRIPT_STANDARD_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | +| TYPESCRIPT_STANDARD_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | +| TYPESCRIPT_STANDARD_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` | +| TYPESCRIPT_STANDARD_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".ts"]` | +| TYPESCRIPT_STANDARD_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 | +| TYPESCRIPT_STANDARD_PRE_COMMANDS | List of bash commands to run before the linter | None | +| TYPESCRIPT_STANDARD_POST_COMMANDS | List of bash commands to run after the linter | None | +| TYPESCRIPT_STANDARD_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling TYPESCRIPT_STANDARD and its pre/post commands | None | +| TYPESCRIPT_STANDARD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| TYPESCRIPT_STANDARD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| TYPESCRIPT_STANDARD_CLI_EXECUTABLE | Override CLI executable | `['ts-standard']` | + +## IDE Integration + +Use ts-standard in your favorite IDE to catch errors before MegaLinter ! + +| | IDE | Extension Name | Install | +|:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------:| +| | [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=standard.vscode-standard](vscode-standard) | [Visit Web Site](vscode-standard){target=_blank} | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | + +## Behind the scenes + +### How are identified applicable files + +- File extensions: `.ts` + + + +### How the linting is performed + +- ts-standard is called once with the list of files as arguments (`list_of_files` CLI lint mode) + +### Example calls + +```shell +ts-standard myfile.ts +``` + +```shell +ts-standard --fix myfile.ts +``` + + +### Help content + +```shell +ts-standard - Standard for TypeScript! (https://github.com/standard/ts-standard) + +Usage: + ts-standard [FILES...] + + If FILES is omitted, all JavaScript/TypeScript source files (*.js, *.jsx, *.mjs, *.cjs, *.ts, *.tsx) + in the current working directory are checked, recursively. + + Certain paths (node_modules/, coverage/, vendor/, *.min.js, and + files/folders that begin with '.' like .git/) are automatically ignored. + + Paths in a project's root .gitignore file are also automatically ignored. + +Flags: + --fix Automatically fix problems + -p, --project Specify ts-config location (default: ./tsconfig.eslint.json or ./tsconfig.json) + --version Show current version + -h, --help Show usage information + +Flags (advanced): + --stdin Read file text from stdin + --ext Specify JavaScript/TypeScript file extensions + --global Declare global variable + --plugin Use custom eslint plugin + --env Use custom eslint environment + --parser Use custom ts/js parser (default: @typescript-eslint/parser) + +``` + +### Installation on mega-linter Docker image + +- NPM packages (node.js): + - [typescript](https://www.npmjs.com/package/typescript) + - [ts-standard](https://www.npmjs.com/package/ts-standard) diff --git a/docs/descriptors/vbdotnet_dotnet_format.md b/docs/descriptors/vbdotnet_dotnet_format.md index ec288969594..e6d902cde06 100644 --- a/docs/descriptors/vbdotnet_dotnet_format.md +++ b/docs/descriptors/vbdotnet_dotnet_format.md @@ -11,7 +11,7 @@ dotnet-format requires a `.sln` or `.vbproj` file to run correctly. ## dotnet-format documentation -- Version in MegaLinter: **6.0.408** +- Version in MegaLinter: **6.0.412** - Visit [Official Web Site](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format){target=_blank} [![format - GitHub](https://gh-card.dev/repos/dotnet/format.svg?fullname=)](https://github.com/dotnet/format){target=_blank} @@ -33,6 +33,7 @@ dotnet-format requires a `.sln` or `.vbproj` file to run correctly. | VBDOTNET_DOTNET_FORMAT_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 | | VBDOTNET_DOTNET_FORMAT_PRE_COMMANDS | List of bash commands to run before the linter | None | | VBDOTNET_DOTNET_FORMAT_POST_COMMANDS | List of bash commands to run after the linter | None | +| VBDOTNET_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling VBDOTNET_DOTNET_FORMAT and its pre/post commands | None | | VBDOTNET_DOTNET_FORMAT_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | | VBDOTNET_DOTNET_FORMAT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | VBDOTNET_DOTNET_FORMAT_CLI_EXECUTABLE | Override CLI executable | `['dotnet']` | @@ -41,10 +42,11 @@ dotnet-format requires a `.sln` or `.vbproj` file to run correctly. This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:----------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------|:---------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | ## Behind the scenes diff --git a/docs/descriptors/xml_xmllint.md b/docs/descriptors/xml_xmllint.md index 3821a397df2..466e8761afb 100644 --- a/docs/descriptors/xml_xmllint.md +++ b/docs/descriptors/xml_xmllint.md @@ -34,6 +34,7 @@ To apply file formatting you must set `XML_XMLLINT_CLI_LINT_MODE: file` and `XML | XML_XMLLINT_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 | | XML_XMLLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | XML_XMLLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| XML_XMLLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling XML_XMLLINT and its pre/post commands | None | | XML_XMLLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | XML_XMLLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | | XML_XMLLINT_CLI_EXECUTABLE | Override CLI executable | `['xmllint']` | @@ -44,21 +45,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/yaml_prettier.md b/docs/descriptors/yaml_prettier.md index 154d5462375..ffef98a0a75 100644 --- a/docs/descriptors/yaml_prettier.md +++ b/docs/descriptors/yaml_prettier.md @@ -15,7 +15,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & ## prettier documentation -- Version in MegaLinter: **2.8.8** +- Version in MegaLinter: **3.0.0** - Visit [Official Web Site](https://prettier.io/){target=_blank} - See [How to configure prettier rules](https://prettier.io/docs/en/configuration.html){target=_blank} - See [How to disable prettier rules in files](https://prettier.io/docs/en/ignore.html#yaml){target=_blank} @@ -40,6 +40,7 @@ description: How to use prettier (configure, ignore files, ignore errors, help & | YAML_PRETTIER_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_PRETTIER_PRE_COMMANDS | List of bash commands to run before the linter | None | | YAML_PRETTIER_POST_COMMANDS | List of bash commands to run after the linter | None | +| YAML_PRETTIER_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling YAML_PRETTIER and its pre/post commands | None | | YAML_PRETTIER_CONFIG_FILE | prettier configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.prettierrc.json` | | YAML_PRETTIER_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | YAML_PRETTIER_DISABLE_ERRORS | Run linter but consider errors as warnings | `true` | @@ -70,21 +71,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -165,9 +167,9 @@ Format options: Defaults to false. --tab-width Number of spaces per indentation level. Defaults to 2. - --trailing-comma + --trailing-comma Print trailing commas wherever possible when multi-line. - Defaults to es5. + Defaults to all. --use-tabs Indent with tabs instead of spaces. Defaults to false. --vue-indent-script-and-style @@ -185,13 +187,9 @@ Config options: --find-config-path Find and print the path to a configuration file for the given input file. --ignore-path Path to a file with patterns describing files to ignore. - Defaults to .prettierignore. - --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. - Defaults to []. - --plugin-search-dir - Custom directory that contains prettier plugins in node_modules subdirectory. - Overrides default behavior when plugins are searched relatively to the location of Prettier. Multiple values are accepted. + Defaults to [.gitignore, .prettierignore]. + --plugin Add a plugin. Multiple plugins can be passed as separate `--plugin`s. Defaults to []. --with-node-modules Process files inside 'node_modules' directory. @@ -227,10 +225,9 @@ Other options: -u, --ignore-unknown Ignore unknown files. --insert-pragma Insert @format pragma into file's first docblock comment. Defaults to false. - --loglevel + --log-level What level of logs to report. Defaults to log. - --no-plugin-search Disable plugin autoloading. --require-pragma Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted. Defaults to false. diff --git a/docs/descriptors/yaml_v8r.md b/docs/descriptors/yaml_v8r.md index fa7e89303ea..5e8c3370823 100644 --- a/docs/descriptors/yaml_v8r.md +++ b/docs/descriptors/yaml_v8r.md @@ -32,6 +32,7 @@ v8r checks the validity of JSON/YAML files if they have a matching schema define | 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 | | YAML_V8R_POST_COMMANDS | List of bash commands to run after the linter | None | +| YAML_V8R_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling YAML_V8R and its pre/post commands | None | | YAML_V8R_CONFIG_FILE | v8r configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.v8rrc.yml` | | YAML_V8R_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | YAML_V8R_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -55,21 +56,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/yaml_yamllint.md b/docs/descriptors/yaml_yamllint.md index 8b7b2b6e821..e51f521e0aa 100644 --- a/docs/descriptors/yaml_yamllint.md +++ b/docs/descriptors/yaml_yamllint.md @@ -9,7 +9,7 @@ description: How to use yamllint (configure, ignore files, ignore errors, help & ## yamllint documentation -- Version in MegaLinter: **1.31.0** +- Version in MegaLinter: **1.32.0** - 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 isn't found, [.yamllint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.yamllint.yml){target=_blank} will be used @@ -32,6 +32,7 @@ description: How to use yamllint (configure, ignore files, ignore errors, help & | YAML_YAMLLINT_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_YAMLLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | YAML_YAMLLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| YAML_YAMLLINT_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling YAML_YAMLLINT and its pre/post commands | None | | YAML_YAMLLINT_CONFIG_FILE | yamllint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.yamllint.yml` | | YAML_YAMLLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | YAML_YAMLLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | @@ -53,21 +54,22 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://megalinter.io/beta/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](https://megalinter.io/beta/flavors/cupcake/) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/flavors.md b/docs/flavors.md index b2f2232d7bb..cf86ecc0bdb 100644 --- a/docs/flavors.md +++ b/docs/flavors.md @@ -18,22 +18,23 @@ _The following table doesn't display docker pulls from [MegaLinter v4 & v5 image | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 113 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | -| | [ci_light](flavors/ci_light.md) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 19 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | -| | [cupcake](flavors/cupcake.md) | MegaLinter for the most commonly used languages | 81 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | -| | [documentation](flavors/documentation.md) | MegaLinter for documentation projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | -| | [dotnet](flavors/dotnet.md) | Optimized for C, C++, C# or VB based projects | 59 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | -| | [go](flavors/go.md) | Optimized for GO based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | -| | [java](flavors/java.md) | Optimized for JAVA based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | -| | [javascript](flavors/javascript.md) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | -| | [php](flavors/php.md) | Optimized for PHP based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | -| | [python](flavors/python.md) | Optimized for PYTHON based projects | 58 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | -| | [ruby](flavors/ruby.md) | Optimized for RUBY based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | -| | [rust](flavors/rust.md) | Optimized for RUST based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | -| | [salesforce](flavors/salesforce.md) | Optimized for Salesforce based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | -| | [security](flavors/security.md) | Optimized for security | 21 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | -| | [swift](flavors/swift.md) | Optimized for SWIFT based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | -| | [terraform](flavors/terraform.md) | Optimized for TERRAFORM based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 117 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](flavors/ci_light.md) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 22 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [cupcake](flavors/cupcake.md) | MegaLinter for the most commonly used languages | 85 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-cupcake/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-cupcake) | +| | [documentation](flavors/documentation.md) | MegaLinter for documentation projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](flavors/dotnet.md) | Optimized for C, C++, C# or VB based projects | 63 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](flavors/dotnetweb.md) | Optimized for C, C++, C# or VB based projects with JS/TS | 72 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](flavors/go.md) | Optimized for GO based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](flavors/java.md) | Optimized for JAVA based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](flavors/javascript.md) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 60 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](flavors/php.md) | Optimized for PHP based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](flavors/python.md) | Optimized for PYTHON based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](flavors/ruby.md) | Optimized for RUBY based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](flavors/rust.md) | Optimized for RUST based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](flavors/salesforce.md) | Optimized for Salesforce based projects | 54 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](flavors/security.md) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](flavors/swift.md) | Optimized for SWIFT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](flavors/terraform.md) | Optimized for TERRAFORM based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | If you need a new flavor, [post an issue](https://github.com/oxsecurity/megalinter/issues) :wink: diff --git a/docs/flavors/ci_light.md b/docs/flavors/ci_light.md index 2cf41435fa8..18329705361 100644 --- a/docs/flavors/ci_light.md +++ b/docs/flavors/ci_light.md @@ -50,11 +50,14 @@ Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | diff --git a/docs/flavors/cupcake.md b/docs/flavors/cupcake.md index f9e7ef94ecc..2ebb6e68ea3 100644 --- a/docs/flavors/cupcake.md +++ b/docs/flavors/cupcake.md @@ -30,7 +30,7 @@ MegaLinter for the most commonly used languages | | [**CLOJURE**](https://megalinter.io/beta/descriptors/clojure/) | [**clj-kondo**](https://megalinter.io/beta/descriptors/clojure_clj_kondo/)
[_CLOJURE_CLJ_KONDO_](https://megalinter.io/beta/descriptors/clojure_clj_kondo/) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | | | [**CLOJURE**](https://megalinter.io/beta/descriptors/clojure/) | [**cljstyle**](https://megalinter.io/beta/descriptors/clojure_cljstyle/)
[_CLOJURE_CLJSTYLE_](https://megalinter.io/beta/descriptors/clojure_cljstyle/) | [![GitHub stars](https://img.shields.io/github/stars/greglook/cljstyle?cacheSeconds=3600)](https://github.com/greglook/cljstyle) ![autofix](https://shields.io/badge/-autofix-green) | | | [**C++** (CPP)](https://megalinter.io/beta/descriptors/cpp/) | [**cpplint**](https://megalinter.io/beta/descriptors/cpp_cpplint/)
[_CPP_CPPLINT_](https://megalinter.io/beta/descriptors/cpp_cpplint/) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | -| | [**GO**](https://megalinter.io/beta/descriptors/go/) | [**golangci-lint**](https://megalinter.io/beta/descriptors/go_golangci_lint/)
[_GO_GOLANGCI_LINT_](https://megalinter.io/beta/descriptors/go_golangci_lint/) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](https://megalinter.io/beta/descriptors/go/) | [**golangci-lint**](https://megalinter.io/beta/descriptors/go_golangci_lint/)
[_GO_GOLANGCI_LINT_](https://megalinter.io/beta/descriptors/go_golangci_lint/) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](https://megalinter.io/beta/descriptors/go/) | [**revive**](https://megalinter.io/beta/descriptors/go_revive/)
[_GO_REVIVE_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/groovy/) | [**npm-groovy-lint**](https://megalinter.io/beta/descriptors/groovy_npm_groovy_lint/)
[_GROOVY_NPM_GROOVY_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/java/) | [**checkstyle**](https://megalinter.io/beta/descriptors/java_checkstyle/)
[_JAVA_CHECKSTYLE_](https://megalinter.io/beta/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) | @@ -56,10 +56,10 @@ MegaLinter for the most commonly used languages | | [**RUST**](https://megalinter.io/beta/descriptors/rust/) | [**clippy**](https://megalinter.io/beta/descriptors/rust_clippy/)
[_RUST_CLIPPY_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/sql/) | [**sql-lint**](https://megalinter.io/beta/descriptors/sql_sql_lint/)
[_SQL_SQL_LINT_](https://megalinter.io/beta/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | | | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sqlfluff**](https://megalinter.io/beta/descriptors/sql_sqlfluff/)
[_SQL_SQLFLUFF_](https://megalinter.io/beta/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | -| | [**SWIFT**](https://megalinter.io/beta/descriptors/swift/) | [**swiftlint**](https://megalinter.io/beta/descriptors/swift_swiftlint/)
[_SWIFT_SWIFTLINT_](https://megalinter.io/beta/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) | +| | [**SWIFT**](https://megalinter.io/beta/descriptors/swift/) | [**swiftlint**](https://megalinter.io/beta/descriptors/swift_swiftlint/)
[_SWIFT_SWIFTLINT_](https://megalinter.io/beta/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) | | | [**TSX**](https://megalinter.io/beta/descriptors/tsx/) | [**eslint**](https://megalinter.io/beta/descriptors/tsx_eslint/)
[_TSX_ESLINT_](https://megalinter.io/beta/descriptors/tsx_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**eslint**](https://megalinter.io/beta/descriptors/typescript_eslint/)
[_TYPESCRIPT_ES_](https://megalinter.io/beta/descriptors/typescript_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**standard**](https://megalinter.io/beta/descriptors/typescript_standard/)
[_TYPESCRIPT_STANDARD_](https://megalinter.io/beta/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) | +| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**ts-standard**](https://megalinter.io/beta/descriptors/typescript_ts_standard/)
[_TYPESCRIPT_STANDARD_](https://megalinter.io/beta/descriptors/typescript_ts_standard/) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**prettier**](https://megalinter.io/beta/descriptors/typescript_prettier/)
[_TYPESCRIPT_PRETTIER_](https://megalinter.io/beta/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 @@ -90,33 +90,37 @@ MegaLinter for the most commonly used languages ### Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**CLOUDFORMATION**](https://megalinter.io/beta/descriptors/cloudformation/) | [**cfn-lint**](https://megalinter.io/beta/descriptors/cloudformation_cfn_lint/)
[_CLOUDFORMATION_CFN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/terraform/) | [**terraform-fmt**](https://megalinter.io/beta/descriptors/terraform_terraform_fmt/)
[_TERRAFORM_TERRAFORM_FMT_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**kics**](https://megalinter.io/beta/descriptors/terraform_kics/)
[_TERRAFORM_KICS_](https://megalinter.io/beta/descriptors/terraform_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**CLOUDFORMATION**](https://megalinter.io/beta/descriptors/cloudformation/) | [**cfn-lint**](https://megalinter.io/beta/descriptors/cloudformation_cfn_lint/)
[_CLOUDFORMATION_CFN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/descriptors/terraform_terrascan/) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/terraform/) | [**terraform-fmt**](https://megalinter.io/beta/descriptors/terraform_terraform_fmt/)
[_TERRAFORM_TERRAFORM_FMT_](https://megalinter.io/beta/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) | ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**kics**](https://megalinter.io/beta/descriptors/repository_kics/)
[_REPOSITORY_KICS_](https://megalinter.io/beta/descriptors/repository_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/documentation.md b/docs/flavors/documentation.md index 6429004c66d..5f0b84dc75c 100644 --- a/docs/flavors/documentation.md +++ b/docs/flavors/documentation.md @@ -57,32 +57,36 @@ MegaLinter for documentation projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/dotnet.md b/docs/flavors/dotnet.md index 024190fd0bb..db40f8bc843 100644 --- a/docs/flavors/dotnet.md +++ b/docs/flavors/dotnet.md @@ -66,35 +66,39 @@ Optimized for C, C++, C# or VB based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**ARM**](https://megalinter.io/beta/descriptors/arm/) | [**arm-ttk**](https://megalinter.io/beta/descriptors/arm_arm_ttk/)
[_ARM_ARM_TTK_](https://megalinter.io/beta/descriptors/arm_arm_ttk/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | -| | [**BICEP**](https://megalinter.io/beta/descriptors/bicep/) | [**bicep_linter**](https://megalinter.io/beta/descriptors/bicep_bicep_linter/)
[_BICEP_BICEP_LINTER_](https://megalinter.io/beta/descriptors/bicep_bicep_linter/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/gherkin/) | [**gherkin-lint**](https://megalinter.io/beta/descriptors/gherkin_gherkin_lint/)
[_GHERKIN_GHERKIN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](https://megalinter.io/beta/descriptors/arm/) | [**arm-ttk**](https://megalinter.io/beta/descriptors/arm_arm_ttk/)
[_ARM_ARM_TTK_](https://megalinter.io/beta/descriptors/arm_arm_ttk/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](https://megalinter.io/beta/descriptors/bicep/) | [**bicep_linter**](https://megalinter.io/beta/descriptors/bicep_bicep_linter/)
[_BICEP_BICEP_LINTER_](https://megalinter.io/beta/descriptors/bicep_bicep_linter/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/gherkin/) | [**gherkin-lint**](https://megalinter.io/beta/descriptors/gherkin_gherkin_lint/)
[_GHERKIN_GHERKIN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/dotnetweb.md b/docs/flavors/dotnetweb.md new file mode 100644 index 00000000000..cd2147db8e4 --- /dev/null +++ b/docs/flavors/dotnetweb.md @@ -0,0 +1,113 @@ +--- +title: dotnetweb flavor in MegaLinter +description: dotnetweb flavor is an optimized MegaLinter with only linters related to dotnetweb projects +--- +# dotnetweb MegaLinter Flavor + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) + +## Description + +Optimized for C, C++, C# or VB based projects with JS/TS + +## Usage + +- [GitHub Action](https://megalinter.io/beta/installation/#github-action): **oxsecurity/megalinter/flavors/dotnetweb@beta** +- Docker image: **oxsecurity/megalinter-dotnetweb:beta** +- [mega-linter-runner](https://megalinter.io/beta/mega-linter-runner/): `mega-linter-runner --flavor dotnetweb` + +## Embedded linters + +### Languages + +| | Language | Linter | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**bash-exec**](https://megalinter.io/beta/descriptors/bash_bash_exec/)
[_BASH_EXEC_](https://megalinter.io/beta/descriptors/bash_bash_exec/) | | +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shellcheck**](https://megalinter.io/beta/descriptors/bash_shellcheck/)
[_BASH_SHELLCHECK_](https://megalinter.io/beta/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shfmt**](https://megalinter.io/beta/descriptors/bash_shfmt/)
[_BASH_SHFMT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/c/) | [**cpplint**](https://megalinter.io/beta/descriptors/c_cpplint/)
[_C_CPPLINT_](https://megalinter.io/beta/descriptors/c_cpplint/) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**COFFEE**](https://megalinter.io/beta/descriptors/coffee/) | [**coffeelint**](https://megalinter.io/beta/descriptors/coffee_coffeelint/)
[_COFFEE_COFFEELINT_](https://megalinter.io/beta/descriptors/coffee_coffeelint/) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**C++** (CPP)](https://megalinter.io/beta/descriptors/cpp/) | [**cpplint**](https://megalinter.io/beta/descriptors/cpp_cpplint/)
[_CPP_CPPLINT_](https://megalinter.io/beta/descriptors/cpp_cpplint/) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](https://megalinter.io/beta/descriptors/csharp/) | [**dotnet-format**](https://megalinter.io/beta/descriptors/csharp_dotnet_format/)
[_CSHARP_DOTNET_FORMAT_](https://megalinter.io/beta/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) | +| | [**C#** (CSHARP)](https://megalinter.io/beta/descriptors/csharp/) | [**csharpier**](https://megalinter.io/beta/descriptors/csharp_csharpier/)
[_CSHARP_CSHARPIER_](https://megalinter.io/beta/descriptors/csharp_csharpier/) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://megalinter.io/beta/descriptors/groovy/) | [**npm-groovy-lint**](https://megalinter.io/beta/descriptors/groovy_npm_groovy_lint/)
[_GROOVY_NPM_GROOVY_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/javascript/) | [**eslint**](https://megalinter.io/beta/descriptors/javascript_eslint/)
[_JAVASCRIPT_ES_](https://megalinter.io/beta/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) | +| | [**JAVASCRIPT**](https://megalinter.io/beta/descriptors/javascript/) | [**standard**](https://megalinter.io/beta/descriptors/javascript_standard/)
[_JAVASCRIPT_STANDARD_](https://megalinter.io/beta/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) | +| | [**JAVASCRIPT**](https://megalinter.io/beta/descriptors/javascript/) | [**prettier**](https://megalinter.io/beta/descriptors/javascript_prettier/)
[_JAVASCRIPT_PRETTIER_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/jsx/) | [**eslint**](https://megalinter.io/beta/descriptors/jsx_eslint/)
[_JSX_ESLINT_](https://megalinter.io/beta/descriptors/jsx_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/yannickcr/eslint-plugin-react?cacheSeconds=3600)](https://github.com/yannickcr/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](https://megalinter.io/beta/descriptors/kotlin/) | [**ktlint**](https://megalinter.io/beta/descriptors/kotlin_ktlint/)
[_KOTLIN_KTLINT_](https://megalinter.io/beta/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) | +| | [**MAKEFILE**](https://megalinter.io/beta/descriptors/makefile/) | [**checkmake**](https://megalinter.io/beta/descriptors/makefile_checkmake/)
[_MAKEFILE_CHECKMAKE_](https://megalinter.io/beta/descriptors/makefile_checkmake/) | [![GitHub stars](https://img.shields.io/github/stars/mrtazz/checkmake?cacheSeconds=3600)](https://github.com/mrtazz/checkmake) | +| | [**POWERSHELL**](https://megalinter.io/beta/descriptors/powershell/) | [**powershell**](https://megalinter.io/beta/descriptors/powershell_powershell/)
[_POWERSHELL_POWERSHELL_](https://megalinter.io/beta/descriptors/powershell_powershell/) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**POWERSHELL**](https://megalinter.io/beta/descriptors/powershell/) | [**powershell_formatter**](https://megalinter.io/beta/descriptors/powershell_powershell_formatter/)
[_POWERSHELL_POWERSHELL_FORMATTER_](https://megalinter.io/beta/descriptors/powershell_powershell_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sql-lint**](https://megalinter.io/beta/descriptors/sql_sql_lint/)
[_SQL_SQL_LINT_](https://megalinter.io/beta/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sqlfluff**](https://megalinter.io/beta/descriptors/sql_sqlfluff/)
[_SQL_SQLFLUFF_](https://megalinter.io/beta/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**tsqllint**](https://megalinter.io/beta/descriptors/sql_tsqllint/)
[_SQL_TSQLLINT_](https://megalinter.io/beta/descriptors/sql_tsqllint/) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**TSX**](https://megalinter.io/beta/descriptors/tsx/) | [**eslint**](https://megalinter.io/beta/descriptors/tsx_eslint/)
[_TSX_ESLINT_](https://megalinter.io/beta/descriptors/tsx_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**eslint**](https://megalinter.io/beta/descriptors/typescript_eslint/)
[_TYPESCRIPT_ES_](https://megalinter.io/beta/descriptors/typescript_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**ts-standard**](https://megalinter.io/beta/descriptors/typescript_ts_standard/)
[_TYPESCRIPT_STANDARD_](https://megalinter.io/beta/descriptors/typescript_ts_standard/) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**prettier**](https://megalinter.io/beta/descriptors/typescript_prettier/)
[_TYPESCRIPT_PRETTIER_](https://megalinter.io/beta/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) | +| | [**Visual Basic .NET** (VBDOTNET)](https://megalinter.io/beta/descriptors/vbdotnet/) | [**dotnet-format**](https://megalinter.io/beta/descriptors/vbdotnet_dotnet_format/)
[_VBDOTNET_DOTNET_FORMAT_](https://megalinter.io/beta/descriptors/vbdotnet_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) | + +### Formats + +| | Format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://megalinter.io/beta/descriptors/css/) | [**stylelint**](https://megalinter.io/beta/descriptors/css_stylelint/)
[_CSS_STYLELINT_](https://megalinter.io/beta/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) | +| | [**CSS**](https://megalinter.io/beta/descriptors/css/) | [**scss-lint**](https://megalinter.io/beta/descriptors/css_scss_lint/)
[_CSS_SCSS_LINT_](https://megalinter.io/beta/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.io/beta/descriptors/env/) | [**dotenv-linter**](https://megalinter.io/beta/descriptors/env_dotenv_linter/)
[_ENV_DOTENV_LINTER_](https://megalinter.io/beta/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.io/beta/descriptors/graphql/) | [**graphql-schema-linter**](https://megalinter.io/beta/descriptors/graphql_graphql_schema_linter/)
[_GRAPHQL_GRAPHQL_SCHEMA_LINTER_](https://megalinter.io/beta/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.io/beta/descriptors/html/) | [**djlint**](https://megalinter.io/beta/descriptors/html_djlint/)
[_HTML_DJLINT_](https://megalinter.io/beta/descriptors/html_djlint/) | [![GitHub stars](https://img.shields.io/github/stars/Riverside-Healthcare/djlint?cacheSeconds=3600)](https://github.com/Riverside-Healthcare/djlint) | +| | [**HTML**](https://megalinter.io/beta/descriptors/html/) | [**htmlhint**](https://megalinter.io/beta/descriptors/html_htmlhint/)
[_HTML_HTMLHINT_](https://megalinter.io/beta/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://megalinter.io/beta/descriptors/json/) | [**jsonlint**](https://megalinter.io/beta/descriptors/json_jsonlint/)
[_JSON_JSONLINT_](https://megalinter.io/beta/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/prantlf/jsonlint?cacheSeconds=3600)](https://github.com/prantlf/jsonlint) | +| | [**JSON**](https://megalinter.io/beta/descriptors/json/) | [**eslint-plugin-jsonc**](https://megalinter.io/beta/descriptors/json_eslint_plugin_jsonc/)
[_JSON_ESLINT_PLUGIN_JSONC_](https://megalinter.io/beta/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) | +| | [**JSON**](https://megalinter.io/beta/descriptors/json/) | [**v8r**](https://megalinter.io/beta/descriptors/json_v8r/)
[_JSON_V8R_](https://megalinter.io/beta/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | [**JSON**](https://megalinter.io/beta/descriptors/json/) | [**prettier**](https://megalinter.io/beta/descriptors/json_prettier/)
[_JSON_PRETTIER_](https://megalinter.io/beta/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) | +| | [**JSON**](https://megalinter.io/beta/descriptors/json/) | [**npm-package-json-lint**](https://megalinter.io/beta/descriptors/json_npm_package_json_lint/)
[_JSON_NPM_PACKAGE_JSON_LINT_](https://megalinter.io/beta/descriptors/json_npm_package_json_lint/) | [![GitHub stars](https://img.shields.io/github/stars/tclindner/npm-package-json-lint?cacheSeconds=3600)](https://github.com/tclindner/npm-package-json-lint) | +| | [**MARKDOWN**](https://megalinter.io/beta/descriptors/markdown/) | [**markdownlint**](https://megalinter.io/beta/descriptors/markdown_markdownlint/)
[_MARKDOWN_MARKDOWNLINT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/markdown/) | [**markdown-link-check**](https://megalinter.io/beta/descriptors/markdown_markdown_link_check/)
[_MARKDOWN_MARKDOWN_LINK_CHECK_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/markdown/) | [**markdown-table-formatter**](https://megalinter.io/beta/descriptors/markdown_markdown_table_formatter/)
[_MARKDOWN_MARKDOWN_TABLE_FORMATTER_](https://megalinter.io/beta/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.io/beta/descriptors/protobuf/) | [**protolint**](https://megalinter.io/beta/descriptors/protobuf_protolint/)
[_PROTOBUF_PROTOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/xml/) | [**xmllint**](https://megalinter.io/beta/descriptors/xml_xmllint/)
[_XML_XMLLINT_](https://megalinter.io/beta/descriptors/xml_xmllint/) | ![autofix](https://shields.io/badge/-autofix-green) | +| | [**YAML**](https://megalinter.io/beta/descriptors/yaml/) | [**prettier**](https://megalinter.io/beta/descriptors/yaml_prettier/)
[_YAML_PRETTIER_](https://megalinter.io/beta/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) | +| | [**YAML**](https://megalinter.io/beta/descriptors/yaml/) | [**yamllint**](https://megalinter.io/beta/descriptors/yaml_yamllint/)
[_YAML_YAMLLINT_](https://megalinter.io/beta/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | [**YAML**](https://megalinter.io/beta/descriptors/yaml/) | [**v8r**](https://megalinter.io/beta/descriptors/yaml_v8r/)
[_YAML_V8R_](https://megalinter.io/beta/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 | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](https://megalinter.io/beta/descriptors/arm/) | [**arm-ttk**](https://megalinter.io/beta/descriptors/arm_arm_ttk/)
[_ARM_ARM_TTK_](https://megalinter.io/beta/descriptors/arm_arm_ttk/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](https://megalinter.io/beta/descriptors/bicep/) | [**bicep_linter**](https://megalinter.io/beta/descriptors/bicep_bicep_linter/)
[_BICEP_BICEP_LINTER_](https://megalinter.io/beta/descriptors/bicep_bicep_linter/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/gherkin/) | [**gherkin-lint**](https://megalinter.io/beta/descriptors/gherkin_gherkin_lint/)
[_GHERKIN_GHERKIN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | + diff --git a/docs/flavors/go.md b/docs/flavors/go.md index 03c831bcaf7..04be25f7d40 100644 --- a/docs/flavors/go.md +++ b/docs/flavors/go.md @@ -26,7 +26,7 @@ Optimized for GO based projects | | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**bash-exec**](https://megalinter.io/beta/descriptors/bash_bash_exec/)
[_BASH_EXEC_](https://megalinter.io/beta/descriptors/bash_bash_exec/) | | | | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shellcheck**](https://megalinter.io/beta/descriptors/bash_shellcheck/)
[_BASH_SHELLCHECK_](https://megalinter.io/beta/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shfmt**](https://megalinter.io/beta/descriptors/bash_shfmt/)
[_BASH_SHFMT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/go/) | [**golangci-lint**](https://megalinter.io/beta/descriptors/go_golangci_lint/)
[_GO_GOLANGCI_LINT_](https://megalinter.io/beta/descriptors/go_golangci_lint/) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](https://megalinter.io/beta/descriptors/go/) | [**golangci-lint**](https://megalinter.io/beta/descriptors/go_golangci_lint/)
[_GO_GOLANGCI_LINT_](https://megalinter.io/beta/descriptors/go_golangci_lint/) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](https://megalinter.io/beta/descriptors/go/) | [**revive**](https://megalinter.io/beta/descriptors/go_revive/)
[_GO_REVIVE_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/groovy/) | [**npm-groovy-lint**](https://megalinter.io/beta/descriptors/groovy_npm_groovy_lint/)
[_GROOVY_NPM_GROOVY_LINT_](https://megalinter.io/beta/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.io/beta/descriptors/kotlin/) | [**ktlint**](https://megalinter.io/beta/descriptors/kotlin_ktlint/)
[_KOTLIN_KTLINT_](https://megalinter.io/beta/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) | @@ -59,32 +59,36 @@ Optimized for GO based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/java.md b/docs/flavors/java.md index 485e543e5e7..f81f066fdd9 100644 --- a/docs/flavors/java.md +++ b/docs/flavors/java.md @@ -61,32 +61,36 @@ Optimized for JAVA based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/javascript.md b/docs/flavors/javascript.md index 94a0038974b..5c69e9d33f4 100644 --- a/docs/flavors/javascript.md +++ b/docs/flavors/javascript.md @@ -37,7 +37,7 @@ Optimized for JAVASCRIPT or TYPESCRIPT based projects | | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sqlfluff**](https://megalinter.io/beta/descriptors/sql_sqlfluff/)
[_SQL_SQLFLUFF_](https://megalinter.io/beta/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | | | [**TSX**](https://megalinter.io/beta/descriptors/tsx/) | [**eslint**](https://megalinter.io/beta/descriptors/tsx_eslint/)
[_TSX_ESLINT_](https://megalinter.io/beta/descriptors/tsx_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**eslint**](https://megalinter.io/beta/descriptors/typescript_eslint/)
[_TYPESCRIPT_ES_](https://megalinter.io/beta/descriptors/typescript_eslint/) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**standard**](https://megalinter.io/beta/descriptors/typescript_standard/)
[_TYPESCRIPT_STANDARD_](https://megalinter.io/beta/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) | +| | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**ts-standard**](https://megalinter.io/beta/descriptors/typescript_ts_standard/)
[_TYPESCRIPT_STANDARD_](https://megalinter.io/beta/descriptors/typescript_ts_standard/) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](https://megalinter.io/beta/descriptors/typescript/) | [**prettier**](https://megalinter.io/beta/descriptors/typescript_prettier/)
[_TYPESCRIPT_PRETTIER_](https://megalinter.io/beta/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 @@ -66,32 +66,36 @@ Optimized for JAVASCRIPT or TYPESCRIPT based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/php.md b/docs/flavors/php.md index 7fea7591d6a..d4e9351c88b 100644 --- a/docs/flavors/php.md +++ b/docs/flavors/php.md @@ -60,32 +60,36 @@ Optimized for PHP based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/python.md b/docs/flavors/python.md index 661e57bfd61..e77b779e2b5 100644 --- a/docs/flavors/python.md +++ b/docs/flavors/python.md @@ -68,32 +68,36 @@ Optimized for PYTHON based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/ruby.md b/docs/flavors/ruby.md index 22e75dde8f2..6f1dfed4d13 100644 --- a/docs/flavors/ruby.md +++ b/docs/flavors/ruby.md @@ -57,32 +57,36 @@ Optimized for RUBY based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/rust.md b/docs/flavors/rust.md index 2edbc3c7c65..39fee19af7c 100644 --- a/docs/flavors/rust.md +++ b/docs/flavors/rust.md @@ -57,32 +57,36 @@ Optimized for RUST based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/salesforce.md b/docs/flavors/salesforce.md index 72dad85b4d4..cfd0a229a48 100644 --- a/docs/flavors/salesforce.md +++ b/docs/flavors/salesforce.md @@ -60,32 +60,36 @@ Optimized for Salesforce based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/security.md b/docs/flavors/security.md index 58d091fda30..c75052f01a8 100644 --- a/docs/flavors/security.md +++ b/docs/flavors/security.md @@ -34,29 +34,32 @@ Optimized for security ### Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**CLOUDFORMATION**](https://megalinter.io/beta/descriptors/cloudformation/) | [**cfn-lint**](https://megalinter.io/beta/descriptors/cloudformation_cfn_lint/)
[_CLOUDFORMATION_CFN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/terraform/) | [**kics**](https://megalinter.io/beta/descriptors/terraform_kics/)
[_TERRAFORM_KICS_](https://megalinter.io/beta/descriptors/terraform_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**CLOUDFORMATION**](https://megalinter.io/beta/descriptors/cloudformation/) | [**cfn-lint**](https://megalinter.io/beta/descriptors/cloudformation_cfn_lint/)
[_CLOUDFORMATION_CFN_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/descriptors/terraform_terrascan/) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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) | ### Other -| | Code quality checker | Linter | Additional | -|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**devskim**](https://megalinter.io/beta/descriptors/repository_devskim/)
[_REPOSITORY_DEVSKIM_](https://megalinter.io/beta/descriptors/repository_devskim/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**dustilock**](https://megalinter.io/beta/descriptors/repository_dustilock/)
[_REPOSITORY_DUSTILOCK_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**syft**](https://megalinter.io/beta/descriptors/repository_syft/)
[_REPOSITORY_SYFT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | Code quality checker | Linter | Additional | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**devskim**](https://megalinter.io/beta/descriptors/repository_devskim/)
[_REPOSITORY_DEVSKIM_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**dustilock**](https://megalinter.io/beta/descriptors/repository_dustilock/)
[_REPOSITORY_DUSTILOCK_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**kics**](https://megalinter.io/beta/descriptors/repository_kics/)
[_REPOSITORY_KICS_](https://megalinter.io/beta/descriptors/repository_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**syft**](https://megalinter.io/beta/descriptors/repository_syft/)
[_REPOSITORY_SYFT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | diff --git a/docs/flavors/swift.md b/docs/flavors/swift.md index 1c5af3247a1..1bcec311d28 100644 --- a/docs/flavors/swift.md +++ b/docs/flavors/swift.md @@ -21,16 +21,16 @@ Optimized for SWIFT based projects ### Languages -| | Language | Linter | Additional | -|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**bash-exec**](https://megalinter.io/beta/descriptors/bash_bash_exec/)
[_BASH_EXEC_](https://megalinter.io/beta/descriptors/bash_bash_exec/) | | -| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shellcheck**](https://megalinter.io/beta/descriptors/bash_shellcheck/)
[_BASH_SHELLCHECK_](https://megalinter.io/beta/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shfmt**](https://megalinter.io/beta/descriptors/bash_shfmt/)
[_BASH_SHFMT_](https://megalinter.io/beta/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.io/beta/descriptors/groovy/) | [**npm-groovy-lint**](https://megalinter.io/beta/descriptors/groovy_npm_groovy_lint/)
[_GROOVY_NPM_GROOVY_LINT_](https://megalinter.io/beta/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.io/beta/descriptors/kotlin/) | [**ktlint**](https://megalinter.io/beta/descriptors/kotlin_ktlint/)
[_KOTLIN_KTLINT_](https://megalinter.io/beta/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.io/beta/descriptors/sql/) | [**sql-lint**](https://megalinter.io/beta/descriptors/sql_sql_lint/)
[_SQL_SQL_LINT_](https://megalinter.io/beta/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | -| | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sqlfluff**](https://megalinter.io/beta/descriptors/sql_sqlfluff/)
[_SQL_SQLFLUFF_](https://megalinter.io/beta/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | -| | [**SWIFT**](https://megalinter.io/beta/descriptors/swift/) | [**swiftlint**](https://megalinter.io/beta/descriptors/swift_swiftlint/)
[_SWIFT_SWIFTLINT_](https://megalinter.io/beta/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) | +| | Language | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**bash-exec**](https://megalinter.io/beta/descriptors/bash_bash_exec/)
[_BASH_EXEC_](https://megalinter.io/beta/descriptors/bash_bash_exec/) | | +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shellcheck**](https://megalinter.io/beta/descriptors/bash_shellcheck/)
[_BASH_SHELLCHECK_](https://megalinter.io/beta/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**BASH**](https://megalinter.io/beta/descriptors/bash/) | [**shfmt**](https://megalinter.io/beta/descriptors/bash_shfmt/)
[_BASH_SHFMT_](https://megalinter.io/beta/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.io/beta/descriptors/groovy/) | [**npm-groovy-lint**](https://megalinter.io/beta/descriptors/groovy_npm_groovy_lint/)
[_GROOVY_NPM_GROOVY_LINT_](https://megalinter.io/beta/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.io/beta/descriptors/kotlin/) | [**ktlint**](https://megalinter.io/beta/descriptors/kotlin_ktlint/)
[_KOTLIN_KTLINT_](https://megalinter.io/beta/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.io/beta/descriptors/sql/) | [**sql-lint**](https://megalinter.io/beta/descriptors/sql_sql_lint/)
[_SQL_SQL_LINT_](https://megalinter.io/beta/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | [**SQL**](https://megalinter.io/beta/descriptors/sql/) | [**sqlfluff**](https://megalinter.io/beta/descriptors/sql_sqlfluff/)
[_SQL_SQLFLUFF_](https://megalinter.io/beta/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | [**SWIFT**](https://megalinter.io/beta/descriptors/swift/) | [**swiftlint**](https://megalinter.io/beta/descriptors/swift_swiftlint/)
[_SWIFT_SWIFTLINT_](https://megalinter.io/beta/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 @@ -57,32 +57,36 @@ Optimized for SWIFT based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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 | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/flavors/terraform.md b/docs/flavors/terraform.md index 16f5ec6bc71..813b155bba9 100644 --- a/docs/flavors/terraform.md +++ b/docs/flavors/terraform.md @@ -56,37 +56,41 @@ Optimized for TERRAFORM based projects ### Tooling formats -| | Tooling format | Linter | Additional | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/terraform/) | [**terraform-fmt**](https://megalinter.io/beta/descriptors/terraform_terraform_fmt/)
[_TERRAFORM_TERRAFORM_FMT_](https://megalinter.io/beta/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) | -| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**kics**](https://megalinter.io/beta/descriptors/terraform_kics/)
[_TERRAFORM_KICS_](https://megalinter.io/beta/descriptors/terraform_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/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.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/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.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![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://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/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://megalinter.io/beta/descriptors/terraform/) | [**tflint**](https://megalinter.io/beta/descriptors/terraform_tflint/)
[_TERRAFORM_TFLINT_](https://megalinter.io/beta/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) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terrascan**](https://megalinter.io/beta/descriptors/terraform_terrascan/)
[_TERRAFORM_TERRASCAN_](https://megalinter.io/beta/descriptors/terraform_terrascan/) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://megalinter.io/beta/descriptors/terraform/) | [**terragrunt**](https://megalinter.io/beta/descriptors/terraform_terragrunt/)
[_TERRAFORM_TERRAGRUNT_](https://megalinter.io/beta/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**](https://megalinter.io/beta/descriptors/terraform/) | [**terraform-fmt**](https://megalinter.io/beta/descriptors/terraform_terraform_fmt/)
[_TERRAFORM_TERRAFORM_FMT_](https://megalinter.io/beta/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) | ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | -| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.io/beta/descriptors/copypaste/) | [**jscpd**](https://megalinter.io/beta/descriptors/copypaste_jscpd/)
[_COPYPASTE_JSCPD_](https://megalinter.io/beta/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**checkov**](https://megalinter.io/beta/descriptors/repository_checkov/)
[_REPOSITORY_CHECKOV_](https://megalinter.io/beta/descriptors/repository_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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**git_diff**](https://megalinter.io/beta/descriptors/repository_git_diff/)
[_REPOSITORY_GIT_DIFF_](https://megalinter.io/beta/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**gitleaks**](https://megalinter.io/beta/descriptors/repository_gitleaks/)
[_REPOSITORY_GITLEAKS_](https://megalinter.io/beta/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**grype**](https://megalinter.io/beta/descriptors/repository_grype/)
[_REPOSITORY_GRYPE_](https://megalinter.io/beta/descriptors/repository_grype/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**kics**](https://megalinter.io/beta/descriptors/repository_kics/)
[_REPOSITORY_KICS_](https://megalinter.io/beta/descriptors/repository_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**secretlint**](https://megalinter.io/beta/descriptors/repository_secretlint/)
[_REPOSITORY_SECRETLINT_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**semgrep**](https://megalinter.io/beta/descriptors/repository_semgrep/)
[_REPOSITORY_SEMGREP_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy**](https://megalinter.io/beta/descriptors/repository_trivy/)
[_REPOSITORY_TRIVY_](https://megalinter.io/beta/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) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trivy-sbom**](https://megalinter.io/beta/descriptors/repository_trivy_sbom/)
[_REPOSITORY_TRIVY_SBOM_](https://megalinter.io/beta/descriptors/repository_trivy_sbom/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://megalinter.io/beta/descriptors/repository/) | [**trufflehog**](https://megalinter.io/beta/descriptors/repository_trufflehog/)
[_REPOSITORY_TRUFFLEHOG_](https://megalinter.io/beta/descriptors/repository_trufflehog/) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**cspell**](https://megalinter.io/beta/descriptors/spell_cspell/)
[_SPELL_CSPELL_](https://megalinter.io/beta/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**proselint**](https://megalinter.io/beta/descriptors/spell_proselint/)
[_SPELL_PROSELINT_](https://megalinter.io/beta/descriptors/spell_proselint/) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**vale**](https://megalinter.io/beta/descriptors/spell_vale/)
[_SPELL_VALE_](https://megalinter.io/beta/descriptors/spell_vale/) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://megalinter.io/beta/descriptors/spell/) | [**lychee**](https://megalinter.io/beta/descriptors/spell_lychee/)
[_SPELL_LYCHEE_](https://megalinter.io/beta/descriptors/spell_lychee/) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/how-to-contribute.md b/docs/how-to-contribute.md index d6d3c2a077a..e4eb4ce38d1 100644 --- a/docs/how-to-contribute.md +++ b/docs/how-to-contribute.md @@ -16,6 +16,6 @@ To help, you can also: - [:star: star the repository](https://github.com/oxsecurity/megalinter/stargazers) - [:beer: offer a beer !](https://github.com/sponsors/nvuillam) - [report problems and request new features](https://github.com/oxsecurity/megalinter/issues) -- [share on twitter](http://twitter.com/intent/tweet/?text=MegaLinter:%2070%20linters%20aggregator%20easy%20to%20use%20for%20all%20your%20projects&url=http://megalinter.io/&via=nvuillam){target=_blank} +- [share on twitter](https://twitter.com/intent/tweet/?text=MegaLinter:%2070%20linters%20aggregator%20easy%20to%20use%20for%20all%20your%20projects&url=http://megalinter.io/&via=nvuillam){target=_blank} diff --git a/docs/index.md b/docs/index.md index eae6f508c61..3a765c82cf4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,7 +17,7 @@ ![GitHub release](https://img.shields.io/github/v/release/oxsecurity/megalinter?sort=semver&color=%23FD80CD) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.3M-blue?color=%23FD80CD)](https://megalinter.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.6M-blue?color=%23FD80CD)](https://megalinter.io/flavors/) [![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg?color=%23FD80CD)](https://npmjs.org/package/mega-linter-runner) [![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?cacheSeconds=3600&color=%23FD80CD)](https://github.com/oxsecurity/megalinter/stargazers/) [![Dependents](https://img.shields.io/static/v1?label=Used%20by&message=2180&color=%23FD80CD&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) @@ -28,9 +28,11 @@ 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/?ref=megalinter). -Supporting [**55** languages](supported-linters.md#languages), [**24** 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 [**55** languages](supported-linters.md#languages), [**24** 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**. -[**Upgrade to MegaLinter v7 !**] +[**Switch to MegaLinter v7 !**](https://github.com/oxsecurity/megalinter/issues/2692) + +[![Upgrade to v7 Video](https://img.youtube.com/vi/6NSBzq01S9g/0.jpg)](https://www.youtube.com/watch?v=6NSBzq01S9g) @@ -82,9 +84,9 @@ 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're using - [**MegaLinter documentation**](https://megalinter.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**](config-apply-fixes.md) or [**provided in reports**](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.io/mega-linter-runner/): **no need to authorize an external application**, and **your code base never leaves your tooling ecosystem** +- MegaLinter can run on [**any CI tool**](install-assisted.md) and be [**run locally**](https://megalinter.io/mega-linter-runner/): **no need to authorize an external application**, and **your code base never leaves your tooling ecosystem** @@ -118,7 +120,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**C#** (CSHARP)](descriptors/csharp.md) | [**dotnet-format**](descriptors/csharp_dotnet_format.md)
[_CSHARP_DOTNET_FORMAT_](descriptors/csharp_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | | | [**C#** (CSHARP)](descriptors/csharp.md) | [**csharpier**](descriptors/csharp_csharpier.md)
[_CSHARP_CSHARPIER_](descriptors/csharp_csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**DART**](descriptors/dart.md) | [**dartanalyzer**](descriptors/dart_dartanalyzer.md)
[_DART_DARTANALYZER_](descriptors/dart_dartanalyzer.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | -| | [**GO**](descriptors/go.md) | [**golangci-lint**](descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](descriptors/go.md) | [**golangci-lint**](descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](descriptors/go.md) | [**revive**](descriptors/go_revive.md)
[_GO_REVIVE_](descriptors/go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**GROOVY**](descriptors/groovy.md) | [**npm-groovy-lint**](descriptors/groovy_npm_groovy_lint.md)
[_GROOVY_NPM_GROOVY_LINT_](descriptors/groovy_npm_groovy_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**JAVA**](descriptors/java.md) | [**checkstyle**](descriptors/java_checkstyle.md)
[_JAVA_CHECKSTYLE_](descriptors/java_checkstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -156,10 +158,10 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**SQL**](descriptors/sql.md) | [**sql-lint**](descriptors/sql_sql_lint.md)
[_SQL_SQL_LINT_](descriptors/sql_sql_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | | | [**SQL**](descriptors/sql.md) | [**sqlfluff**](descriptors/sql_sqlfluff.md)
[_SQL_SQLFLUFF_](descriptors/sql_sqlfluff.md) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | | | [**SQL**](descriptors/sql.md) | [**tsqllint**](descriptors/sql_tsqllint.md)
[_SQL_TSQLLINT_](descriptors/sql_tsqllint.md) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | -| | [**SWIFT**](descriptors/swift.md) | [**swiftlint**](descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](descriptors/swift_swiftlint.md) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SWIFT**](descriptors/swift.md) | [**swiftlint**](descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](descriptors/swift_swiftlint.md) | [![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) | [**eslint**](descriptors/tsx_eslint.md)
[_TSX_ESLINT_](descriptors/tsx_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**TYPESCRIPT**](descriptors/typescript.md) | [**eslint**](descriptors/typescript_eslint.md)
[_TYPESCRIPT_ES_](descriptors/typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TYPESCRIPT**](descriptors/typescript.md) | [**standard**](descriptors/typescript_standard.md)
[_TYPESCRIPT_STANDARD_](descriptors/typescript_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TYPESCRIPT**](descriptors/typescript.md) | [**ts-standard**](descriptors/typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](descriptors/typescript_ts_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](descriptors/typescript.md) | [**prettier**](descriptors/typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](descriptors/typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md) | [**dotnet-format**](descriptors/vbdotnet_dotnet_format.md)
[_VBDOTNET_DOTNET_FORMAT_](descriptors/vbdotnet_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | @@ -194,47 +196,51 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ### Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | -| | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | -| | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](descriptors/gherkin_gherkin_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | -| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](descriptors/tekton_tekton_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**tflint**](descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](descriptors/terraform_tflint.md) | [![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) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**terrascan**](descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**terragrunt**](descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](descriptors/terraform_terragrunt.md) | [![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**](descriptors/terraform.md) | [**terraform-fmt**](descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**kics**](descriptors/terraform_kics.md)
[_TERRAFORM_KICS_](descriptors/terraform_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](descriptors/gherkin_gherkin_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](descriptors/tekton_tekton_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**tflint**](descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](descriptors/terraform_tflint.md) | [![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) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**terrascan**](descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**terragrunt**](descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](descriptors/terraform_terragrunt.md) | [![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**](descriptors/terraform.md) | [**terraform-fmt**](descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](descriptors/copypaste.md) | [**jscpd**](descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](descriptors/copypaste_jscpd.md) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](descriptors/repository.md) | [**checkov**](descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**devskim**](descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](descriptors/repository_devskim.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**dustilock**](descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**git_diff**](descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](descriptors/repository.md) | [**gitleaks**](descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**secretlint**](descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**semgrep**](descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**syft**](descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**trivy**](descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](descriptors/repository_trivy.md) | [![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) | [**cspell**](descriptors/spell_cspell.md)
[_SPELL_CSPELL_](descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](descriptors/spell.md) | [**proselint**](descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](descriptors/spell.md) | [**vale**](descriptors/spell_vale.md)
[_SPELL_VALE_](descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](descriptors/copypaste.md) | [**jscpd**](descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](descriptors/copypaste_jscpd.md) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](descriptors/repository.md) | [**checkov**](descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**devskim**](descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](descriptors/repository_devskim.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**dustilock**](descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**git_diff**](descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](descriptors/repository.md) | [**gitleaks**](descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**grype**](descriptors/repository_grype.md)
[_REPOSITORY_GRYPE_](descriptors/repository_grype.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**kics**](descriptors/repository_kics.md)
[_REPOSITORY_KICS_](descriptors/repository_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**secretlint**](descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**semgrep**](descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**syft**](descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trivy**](descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](descriptors/repository_trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trivy-sbom**](descriptors/repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](descriptors/repository_trivy_sbom.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trufflehog**](descriptors/repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](descriptors/repository_trufflehog.md) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](descriptors/spell.md) | [**cspell**](descriptors/spell_cspell.md)
[_SPELL_CSPELL_](descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](descriptors/spell.md) | [**proselint**](descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](descriptors/spell.md) | [**vale**](descriptors/spell_vale.md)
[_SPELL_VALE_](descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](descriptors/spell.md) | [**lychee**](descriptors/spell_lychee.md)
[_SPELL_LYCHEE_](descriptors/spell_lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | @@ -286,24 +292,3 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c - -## V4 versus V5 - -- Tool to upgrade user repos configuration files using `npx mega-linter-runner --upgrade` (will upgrade references to _nvuillam/mega-linter_ into _oxsecurity/megalinter_) - -- Migration from github individual repo **nvuillam/mega-linter** to github organization repo **oxsecurity/megalinter** - -- Migration from docker hub space **nvuillam** to space **megalinter** - - Docker images are now **oxsecurity/megalinter** or **oxsecurity/megalinter-FLAVOR** - -- Documentation is now hosted at - -- Version management: Now mega-linter docker images, github action and mega-linter-runner versions are aligned - - **latest** for latest official release - - **beta** for current content of main branch - - **alpha** for current content of alpha branch - - docker image, github action and mega-linter-runner can still be called with exact version number - -- Being more inclusive: rename `master` branch into `main` - -- **IGNORE_GITIGNORED_FILES** parameter default to `true` diff --git a/docs/install-assisted.md b/docs/install-assisted.md new file mode 100644 index 00000000000..95290f4caf0 --- /dev/null +++ b/docs/install-assisted.md @@ -0,0 +1,16 @@ +--- +title: Install mega-linter with automated setup +description: Setup MegaLinter in 5 minutes thanks to its assisted installation tool +--- + + + + +# Assisted installation + +Just run `npx mega-linter-runner --install` at the root of your repository and answer questions, it will generate ready to use configuration files for MegaLinter :) + +![Runner Install](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/mega-linter-runner-generator.gif?raw=true) + + + diff --git a/docs/install-azure.md b/docs/install-azure.md new file mode 100644 index 00000000000..6f8872a45fc --- /dev/null +++ b/docs/install-azure.md @@ -0,0 +1,49 @@ +--- +title: Install MegaLinter on Azure Pipelines +description: Manual instructions to setup MegaLinter as an Azure Pipelines job +--- + + + + +# Azure Pipelines + +Use the following Azure Pipelines [YAML template](https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema) + +Add the following job in your `azure-pipelines.yaml` file + +```yaml + # Run MegaLinter to detect linting and security issues + - job: MegaLinter + pool: + vmImage: ubuntu-latest + steps: + # Checkout repo + - checkout: self + + # Pull MegaLinter docker image + - script: docker pull oxsecurity/megalinter:v7 + displayName: Pull MegaLinter + + # Run MegaLinter + - script: | + docker run -v $(System.DefaultWorkingDirectory):/tmp/lint \ + --env-file <(env | grep -e SYSTEM_ -e BUILD_ -e TF_ -e AGENT_) \ + -e SYSTEM_ACCESSTOKEN=$(System.AccessToken) \ + -e GIT_AUTHORIZATION_BEARER=$(System.AccessToken) \ + oxsecurity/megalinter:v7 + displayName: Run MegaLinter + + # Upload MegaLinter reports + - task: PublishPipelineArtifact@1 + condition: succeededOrFailed() + displayName: Upload MegaLinter reports + inputs: + targetPath: "$(System.DefaultWorkingDirectory)/megalinter-reports/" + artifactName: MegaLinterReport +``` + +To benefit from Pull Request comments, please follow [configuration instructions](reporters/AzureCommentReporter.md) + + + diff --git a/docs/install-bitbucket.md b/docs/install-bitbucket.md new file mode 100644 index 00000000000..5721a8b1588 --- /dev/null +++ b/docs/install-bitbucket.md @@ -0,0 +1,30 @@ +--- +title: Install MegaLinter on Bitbucket Pipelines +description: Manual instructions to setup MegaLinter as a Bitbucket Pipelines job +--- + + + + +# Bitbucket Pipelines + +1. Create a `bitbucket-pipelines.yml` file on the root directory of your repository + +2. Copy and paste the following template or add the step to your existing pipeline. + +```yaml +image: atlassian/default-image:3 +pipelines: + default: + - parallel: + - step: + name: Run MegaLinter + image: oxsecurity/megalinter:v7 + script: + - export DEFAULT_WORKSPACE=$BITBUCKET_CLONE_DIR && bash /entrypoint.sh + artifacts: + - megalinter-reports/** +``` + + + diff --git a/docs/install-concourse.md b/docs/install-concourse.md new file mode 100644 index 00000000000..58d75c92a68 --- /dev/null +++ b/docs/install-concourse.md @@ -0,0 +1,110 @@ +--- +title: Install MegaLinter on Concourse +description: Manual instructions to setup MegaLinter as a Concourse job +--- + + + + +# Concourse + +## Pipeline step + +Use the following `job.step` in your pipeline template + +Note: make sure you have `job.plan.get` step which gets `repo` containing your repository as shown in example + +```yaml +--- + + - name: linting + plan: + - get: repo + - task: linting + config: + platform: linux + image_resource: + type: docker-image + source: + repository: oxsecurity/megalinter + tag: v7 + inputs: + - name: repo + run: + path: bash + args: + - -cxe + - | + cd repo + export DEFAULT_WORKSPACE=$(pwd) + bash -ex /entrypoint.sh + ## doing this because concourse doesn't work as other CI systems + # params: + # PARALLEL: true + # DISABLE: SPELL + # APPLY_FIXES: all + # DISABLE_ERRORS: true + # VALIDATE_ALL_CODEBASE: true +``` + +OR + +## Use it as reusable task + +Create reusable concourse task which can be used with multiple pipelines + +1. Create task file `task-linting.yaml` + +```yaml +--- +platform: linux +image_resource: + type: docker-image + source: + repository: oxsecurity/megalinter + tag: v7 + +inputs: +- name: repo + +## uncomment this if you want reports as task output +# output: +# - name: reports +# path: repo/megalinter-reports + +run: + path: bash + args: + - -cxe + - | + cd repo + export DEFAULT_WORKSPACE=$(pwd) + bash -ex /entrypoint.sh +``` + +2. Use that `task-linting.yaml` task in pipeline + +Note: + + 1. make sure `task-linting.yaml` is available in that `repo` input at root + + 2. task `output` is **not** shown here + +```yaml +resources: + + - name: linting + plan: + - get: repo + - task: linting + file: repo/task-linting.yaml + # params: + # PARALLEL: true + # DISABLE: SPELL + # APPLY_FIXES: all + # DISABLE_ERRORS: true + # VALIDATE_ALL_CODEBASE: true +``` + + + diff --git a/docs/install-docker.md b/docs/install-docker.md new file mode 100644 index 00000000000..b08b1a6831b --- /dev/null +++ b/docs/install-docker.md @@ -0,0 +1,23 @@ +--- +title: Run MegaLinter as a Docker image +description: Manual instructions to run MegaLinter as a docker image +--- + + + + +# Docker container + +You can also run megalinter with its Docker container, just execute this command: + +`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v7` + +**No extra arguments are needed,** however, megalinter will lint all of the files inside the `/tmp/lint` folder, so it may be needed to configure your tool of choice to use the `/tmp/lint` folder as workspace. +This can also be changed: + +_Example:_ + +`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/example/folder:rw oxsecurity/megalinter:v7` + + + diff --git a/docs/install-drone.md b/docs/install-drone.md new file mode 100644 index 00000000000..7c171fa25bf --- /dev/null +++ b/docs/install-drone.md @@ -0,0 +1,62 @@ +--- +title: Install MegaLinter on Drone CI +description: Manual instructions to setup MegaLinter as a Drone CI job +--- + + + + +# Drone CI + +**Warning: Drone CI support is experimental and is undergoing heavy modifications (see issue [#2047](https://github.com/oxsecurity/megalinter/issues/2047)).** + +1. Create a `.drone.yml` file on the root directory of your repository + +2. Copy and paste the following template: + +```yaml +kind: pipeline +type: docker +name: MegaLinter + +workspace: + path: /tmp/lint + +steps: + +- name: megalinter + image: oxsecurity/megalinter:v7 + environment: + DEFAULT_WORKSPACE: /tmp/lint +``` + +This uses the [Drone CI docker runner](https://docs.drone.io/pipeline/docker/overview/), so it's needed to install and configure it beforehand on your Drone CI server. + +## (Optional) Adjusting trigger rules + +The Drone CI workflow should trigger automatically for every scenario (push, pull request, sync…) however, you can _optionally_ change this behavior by changing the trigger. For example: + +```yaml +kind: pipeline +type: docker +name: MegaLinter + +workspace: + path: /tmp/lint + +steps: + +- name: megalinter + image: oxsecurity/megalinter:v7 + environment: + DEFAULT_WORKSPACE: /tmp/lint + +trigger: + event: + - push +``` + +The workflow above should only trigger on push, not on any other situation. For more information about how to configure Drone CI trigger rules, [click here](https://docs.drone.io/pipeline/triggers/). + + + diff --git a/docs/install-github.md b/docs/install-github.md new file mode 100644 index 00000000000..284043bd4cf --- /dev/null +++ b/docs/install-github.md @@ -0,0 +1,126 @@ +--- +title: Install MegaLinter on GitHub Actions +description: Manual instructions to setup MegaLinter in a GitHub Action Workflow +--- + + + + +# GitHub Action + +1. Create a new file in your repository called `.github/workflows/mega-linter.yml` +2. Copy the [example workflow from below](https://raw.githubusercontent.com/oxsecurity/megalinter/main/TEMPLATES/mega-linter.yml) into that new file, no extra configuration required +3. Commit that file to a new branch +4. Open up a pull request and observe the action working +5. Enjoy your more _stable_, and _cleaner_ code base + +**NOTES:** + +- If you pass the _Environment_ variable `GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}` in your workflow, then the **MegaLinter** will mark the status of each individual linter run in the Checks section of a pull request. Without this you will only see the overall status of the full run. There is no need to set the **GitHub** Secret as it's automatically set by GitHub, it only needs to be passed to the action. +- You can also **use it outside of GitHub Actions** (CircleCI, Azure Pipelines, Jenkins, GitLab, or even locally with a docker run) , and have status on Github Pull Request if `GITHUB_TARGET_URL` environment variable exists. + +In your repository you should have a `.github/workflows` folder with **GitHub** Action similar to below: + +- `.github/workflows/mega-linter.yml` + +
+This file should have this code + +```yml +--- +# MegaLinter GitHub Action configuration file +# More info at https://megalinter.io +name: MegaLinter + +on: + # Trigger mega-linter at every push. Action will also be visible from Pull Requests to main + push: # Comment this line to trigger action only on pull-requests (not recommended if you don't pay for GH Actions) + pull_request: + branches: [master, main] + +env: # Comment env block if you don't want to apply fixes + # Apply linter fixes configuration + 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_EVENT: pull_request # Decide which event triggers application of fixes in a commit or a PR (pull_request, push, all) + APPLY_FIXES_MODE: commit # If APPLY_FIXES is used, defines if the fixes are directly committed (commit) or posted in a PR (pull_request) + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + build: + name: MegaLinter + runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write + steps: + # Git Checkout + - name: Checkout Code + uses: actions/checkout@v3 + with: + token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} + fetch-depth: 0 # If you use VALIDATE_ALL_CODEBASE = true, you can remove this line to improve performances + + # MegaLinter + - name: MegaLinter + id: ml + # You can override MegaLinter flavor used to have faster performances + # More info at https://megalinter.io/flavors/ + uses: oxsecurity/megalinter@v7 + env: + # All available variables are described in documentation + # https://megalinter.io/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 + # DISABLE: COPYPASTE,SPELL # Uncomment to disable copy-paste and spell checks + + # Upload MegaLinter artifacts + - name: Archive production artifacts + if: ${{ success() }} || ${{ failure() }} + uses: actions/upload-artifact@v3 + with: + name: MegaLinter reports + path: | + megalinter-reports + mega-linter.log + + # Create pull request if applicable (for now works only on PR from same repository, not from forks) + - name: Create Pull Request with applied fixes + id: cpr + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} + commit-message: "[MegaLinter] Apply linters automatic fixes" + title: "[MegaLinter] Apply linters automatic fixes" + labels: bot + - name: Create PR output + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" + + # Push new commit if applicable (for now works only on PR from same repository, not from forks) + - name: Prepare commit + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') + run: sudo chown -Rc $UID .git/ + - name: Commit and push applied linter fixes + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') + uses: stefanzweifel/git-auto-commit-action@v4 + with: + branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }} + commit_message: "[MegaLinter] Apply linters fixes" + commit_user_name: megalinter-bot + commit_user_email: nicolas.vuillamy@ox.security +``` + +
+ + + diff --git a/docs/install-gitlab.md b/docs/install-gitlab.md new file mode 100644 index 00000000000..c2a98d3ad8f --- /dev/null +++ b/docs/install-gitlab.md @@ -0,0 +1,42 @@ +--- +title: Install MegaLinter on Gitlab CI +description: Manual instructions to setup MegaLinter as a Gitlab Pipeline job +--- + + + + +# GitLab CI + +Create or update `.gitlab-ci.yml` file at the root of your repository + +```yaml +# MegaLinter GitLab CI job configuration file +# More info at https://megalinter.io/ + +mega-linter: + stage: test + # You can override MegaLinter flavor used to have faster performances + # More info at https://megalinter.io/flavors/ + image: oxsecurity/megalinter:v7 + script: [ "true" ] # if script: ["true"] doesn't work, you may try -> script: [ "/bin/bash /entrypoint.sh" ] + variables: + # All available variables are described in documentation + # https://megalinter.io/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: + when: always + paths: + - megalinter-reports + expire_in: 1 week +``` + +Create a Gitlab access token and define it in a variable **GITLAB_ACCESS_TOKEN_MEGALINTER** in the project CI/CD masked variables. Make sure your token (e.g. if a project token) as the appropriate [role](https://docs.gitlab.com/ee/user/permissions.html) for commenting a merge request (at least developer). + +![config-gitlab-access-token](https://user-images.githubusercontent.com/17500430/151674446-1bcb1420-d9aa-4ae1-aaae-dcf51afb36ab.gif) + +![Screenshot](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/TextReporter_gitlab_1.jpg?raw=true>) + + + diff --git a/docs/install-jenkins.md b/docs/install-jenkins.md new file mode 100644 index 00000000000..23298683250 --- /dev/null +++ b/docs/install-jenkins.md @@ -0,0 +1,37 @@ +--- +title: Install MegaLinter on Jenkins +description: Manual instructions to setup MegaLinter as a Jenkins job +--- + + + + +# Jenkins + +Add the following stage in your Jenkinsfile + +You may activate [File.io reporter](https://megalinter.io/reporters/FileIoReporter/) or [E-mail reporter](https://megalinter.io/reporters/EmailReporter/) to access detailed logs and fixed source + +```groovy +// Lint with MegaLinter: https://megalinter.io/ +stage('MegaLinter') { + agent { + docker { + image 'oxsecurity/megalinter:v7' + args "-u root -e VALIDATE_ALL_CODEBASE=true -v ${WORKSPACE}:/tmp/lint --entrypoint=''" + reuseNode true + } + } + steps { + sh '/entrypoint.sh' + } + post { + always { + archiveArtifacts allowEmptyArchive: true, artifacts: 'mega-linter.log,megalinter-reports/**/*', defaultExcludes: false, followSymlinks: false + } + } +} +``` + + + diff --git a/docs/install-locally.md b/docs/install-locally.md new file mode 100644 index 00000000000..f715f40c5a2 --- /dev/null +++ b/docs/install-locally.md @@ -0,0 +1,28 @@ +--- +title: Run MegaLinter locally on your computer +description: Manual instructions to run MegaLinter locally on your computer +--- + + + + +# Run MegaLinter locally + +[![Version](https://img.shields.io/npm/v/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) +[![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) +[![Downloads/total](https://img.shields.io/npm/dt/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) + +You can use [mega-linter-runner](https://megalinter.io/mega-linter-runner/) to locally run MegaLinter with the same configuration defined in [.mega-linter.yml](config-file.md) file + +See [mega-linter-runner installation instructions](https://megalinter.io/mega-linter-runner/#installation) + +Example + +```shell +npx mega-linter-runner --flavor salesforce -e "'ENABLE=DOCKERFILE,MARKDOWN,YAML'" -e 'SHOW_ELAPSED_TIME=true' +``` + +Note: You can also use such command line in your custom CI/CD pipelines + + + diff --git a/docs/install-version.md b/docs/install-version.md new file mode 100644 index 00000000000..372f9310e05 --- /dev/null +++ b/docs/install-version.md @@ -0,0 +1,22 @@ +--- +title: Selecting a MegaLinter version to use +description: You can use latest release or beta version of MegaLinter, know the differences ! +--- + + + + +# Which version to use ? + +The following instructions examples are using latest MegaLinter stable version (**v7** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) + +- Docker image: `oxsecurity/megalinter:v7` +- GitHub Action: `oxsecurity/megalinter@v7` + +You can also use **beta** version (corresponding to the content of main branch) + +- Docker image: `oxsecurity/megalinter:beta` +- GitHub Action: `oxsecurity/megalinter@beta` + + + diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index 8cbe4694f5c..00000000000 --- a/docs/installation.md +++ /dev/null @@ -1,425 +0,0 @@ ---- -title: MegaLinter Installation Guide -description: How to install MegaLinter on Github Actions, Gitlab CI, Azure Pipelines, Jenkins, Concourse, Drone CI or to run locally ---- - - - - -# Installation - -## Assisted installation - -Just run `npx mega-linter-runner --install` at the root of your repository and answer questions, it will generate ready to use configuration files for MegaLinter :) - -![Runner Install](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/mega-linter-runner-generator.gif?raw=true) - -## Upgrade to MegaLinter v6 - -- Run `npx mega-linter-runner --upgrade` to automatically upgrade your configuration from v4 or v5 to v6 :) - -## Manual installation - -The following instructions examples are using latest MegaLinter stable version (**v6** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) - -- Docker image: `oxsecurity/megalinter:v6` -- GitHub Action: `oxsecurity/megalinter@v6` - -You can also use **beta** version (corresponding to the content of main branch) - -- Docker image: `oxsecurity/megalinter:beta` -- GitHub Action: `oxsecurity/megalinter@beta` - -## GitHub Action - -1. Create a new file in your repository called `.github/workflows/mega-linter.yml` -2. Copy the [example workflow from below](https://raw.githubusercontent.com/oxsecurity/megalinter/main/TEMPLATES/mega-linter.yml) into that new file, no extra configuration required -3. Commit that file to a new branch -4. Open up a pull request and observe the action working -5. Enjoy your more _stable_, and _cleaner_ code base - -**NOTES:** - -- If you pass the _Environment_ variable `GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}` in your workflow, then the **MegaLinter** will mark the status of each individual linter run in the Checks section of a pull request. Without this you will only see the overall status of the full run. There is no need to set the **GitHub** Secret as it's automatically set by GitHub, it only needs to be passed to the action. -- You can also **use it outside of GitHub Actions** (CircleCI, Azure Pipelines, Jenkins, GitLab, or even locally with a docker run) , and have status on Github Pull Request if `GITHUB_TARGET_URL` environment variable exists. - -In your repository you should have a `.github/workflows` folder with **GitHub** Action similar to below: - -- `.github/workflows/mega-linter.yml` - -
-This file should have this code - -```yml ---- -# MegaLinter GitHub Action configuration file -# More info at https://megalinter.io -name: MegaLinter - -on: - # Trigger mega-linter at every push. Action will also be visible from Pull Requests to main - push: # Comment this line to trigger action only on pull-requests (not recommended if you don't pay for GH Actions) - pull_request: - branches: [master, main] - -env: # Comment env block if you don't want to apply fixes - # Apply linter fixes configuration - 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_EVENT: pull_request # Decide which event triggers application of fixes in a commit or a PR (pull_request, push, all) - APPLY_FIXES_MODE: commit # If APPLY_FIXES is used, defines if the fixes are directly committed (commit) or posted in a PR (pull_request) - -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - -jobs: - build: - name: MegaLinter - runs-on: ubuntu-latest - steps: - # Git Checkout - - name: Checkout Code - uses: actions/checkout@v3 - with: - token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} - fetch-depth: 0 # If you use VALIDATE_ALL_CODEBASE = true, you can remove this line to improve performances - - # MegaLinter - - name: MegaLinter - id: ml - # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.io/flavors/ - uses: oxsecurity/megalinter@v6 - env: - # All available variables are described in documentation - # https://megalinter.io/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 - # DISABLE: COPYPASTE,SPELL # Uncomment to disable copy-paste and spell checks - - # Upload MegaLinter artifacts - - name: Archive production artifacts - if: ${{ success() }} || ${{ failure() }} - uses: actions/upload-artifact@v3 - with: - name: MegaLinter reports - path: | - megalinter-reports - mega-linter.log - - # Create pull request if applicable (for now works only on PR from same repository, not from forks) - - name: Create Pull Request with applied fixes - id: cpr - if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') - uses: peter-evans/create-pull-request@v5 - with: - token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} - commit-message: "[MegaLinter] Apply linters automatic fixes" - title: "[MegaLinter] Apply linters automatic fixes" - labels: bot - - name: Create PR output - if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') - run: | - echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" - echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" - - # Push new commit if applicable (for now works only on PR from same repository, not from forks) - - name: Prepare commit - if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') - run: sudo chown -Rc $UID .git/ - - name: Commit and push applied linter fixes - if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') - uses: stefanzweifel/git-auto-commit-action@v4 - with: - branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }} - commit_message: "[MegaLinter] Apply linters fixes" - commit_user_name: megalinter-bot - commit_user_email: nicolas.vuillamy@ox.security -``` - -
- -## GitLab CI - -Create or update `.gitlab-ci.yml` file at the root of your repository - -```yaml -# MegaLinter GitLab CI job configuration file -# More info at https://megalinter.io/ - -mega-linter: - stage: test - # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.io/flavors/ - image: oxsecurity/megalinter:v6 - script: [ "true" ] # if script: ["true"] doesn't work, you may try -> script: [ "/bin/bash /entrypoint.sh" ] - variables: - # All available variables are described in documentation - # https://megalinter.io/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: - when: always - paths: - - megalinter-reports - expire_in: 1 week -``` - -Create a Gitlab access token and define it in a variable **GITLAB_ACCESS_TOKEN_MEGALINTER** in the project CI/CD masked variables. Make sure your token (e.g. if a project token) as the appropriate [role](https://docs.gitlab.com/ee/user/permissions.html) for commenting a merge request (at least developer). - -![config-gitlab-access-token](https://user-images.githubusercontent.com/17500430/151674446-1bcb1420-d9aa-4ae1-aaae-dcf51afb36ab.gif) - -![Screenshot](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/TextReporter_gitlab_1.jpg?raw=true>) - -## Azure Pipelines - -Use the following Azure Pipelines [YAML template](https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema) - -Add the following job in your `azure-pipelines.yaml` file - -```yaml - # Run MegaLinter to detect linting and security issues - - job: MegaLinter - pool: - vmImage: ubuntu-latest - steps: - # Checkout repo - - checkout: self - - # Pull MegaLinter docker image - - script: docker pull oxsecurity/megalinter:v6 - displayName: Pull MegaLinter - - # Run MegaLinter - - script: | - docker run -v $(System.DefaultWorkingDirectory):/tmp/lint \ - --env-file <(env | grep -e SYSTEM_ -e BUILD_ -e TF_ -e AGENT_) \ - -e SYSTEM_ACCESSTOKEN=$(System.AccessToken) \ - -e GIT_AUTHORIZATION_BEARER=$(System.AccessToken) \ - oxsecurity/megalinter:v6 - displayName: Run MegaLinter - - # Upload MegaLinter reports - - task: PublishPipelineArtifact@1 - condition: succeededOrFailed() - displayName: Upload MegaLinter reports - inputs: - targetPath: "$(System.DefaultWorkingDirectory)/megalinter-reports/" - artifactName: MegaLinterReport -``` - -To benefit from Pull Request comments, please follow [configuration instructions](reporters/AzureCommentReporter.md) - -## Jenkins - -Add the following stage in your Jenkinsfile - -You may activate [File.io reporter](https://megalinter.io/reporters/FileIoReporter/) or [E-mail reporter](https://megalinter.io/reporters/EmailReporter/) to access detailed logs and fixed source - -```groovy -// Lint with MegaLinter: https://megalinter.io/ -stage('MegaLinter') { - agent { - docker { - image 'oxsecurity/megalinter:v6' - args "-u root -e VALIDATE_ALL_CODEBASE=true -v ${WORKSPACE}:/tmp/lint --entrypoint=''" - reuseNode true - } - } - steps { - sh '/entrypoint.sh' - } - post { - always { - archiveArtifacts allowEmptyArchive: true, artifacts: 'mega-linter.log,megalinter-reports/**/*', defaultExcludes: false, followSymlinks: false - } - } -} -``` - -## Concourse - -### Pipeline step - -Use the following `job.step` in your pipeline template - -Note: make sure you have `job.plan.get` step which gets `repo` containing your repository as shown in example - -```yaml ---- - - - name: linting - plan: - - get: repo - - task: linting - config: - platform: linux - image_resource: - type: docker-image - source: - repository: oxsecurity/megalinter - tag: v6 - inputs: - - name: repo - run: - path: bash - args: - - -cxe - - | - cd repo - export DEFAULT_WORKSPACE=$(pwd) - bash -ex /entrypoint.sh - # doing this because concourse doesn't work as other CI systems - # params: - # PARALLEL: true - # DISABLE: SPELL - # APPLY_FIXES: all - # DISABLE_ERRORS: true - # VALIDATE_ALL_CODEBASE: true -``` - -OR - -### Use it as reusable task - -Create reusable concourse task which can be used with multiple pipelines - -1. Create task file `task-linting.yaml` - -```yaml ---- -platform: linux -image_resource: - type: docker-image - source: - repository: oxsecurity/megalinter - tag: v6 - -inputs: -- name: repo - -# uncomment this if you want reports as task output -# output: -# - name: reports -# path: repo/megalinter-reports - -run: - path: bash - args: - - -cxe - - | - cd repo - export DEFAULT_WORKSPACE=$(pwd) - bash -ex /entrypoint.sh -``` - -2. Use that `task-linting.yaml` task in pipeline - -Note: - - 1. make sure `task-linting.yaml` is available in that `repo` input at root - - 2. task `output` is **not** shown here - -```yaml -resources: - - - name: linting - plan: - - get: repo - - task: linting - file: repo/task-linting.yaml - # params: - # PARALLEL: true - # DISABLE: SPELL - # APPLY_FIXES: all - # DISABLE_ERRORS: true - # VALIDATE_ALL_CODEBASE: true -``` - -## Drone CI - -**Warning: Drone CI support is experimental and is undergoing heavy modifications (see issue [#2047](https://github.com/oxsecurity/megalinter/issues/2047)).** - -1. Create a `.drone.yml` file on the root directory of your repository - -2. Copy and paste the following template: - -```yaml -kind: pipeline -type: docker -name: MegaLinter - -workspace: - path: /tmp/lint - -steps: - -- name: megalinter - image: oxsecurity/megalinter:v6 - environment: - DEFAULT_WORKSPACE: /tmp/lint -``` - -This uses the [Drone CI docker runner](https://docs.drone.io/pipeline/docker/overview/), so it's needed to install and configure it beforehand on your Drone CI server. - -### (Optional) Adjusting trigger rules - -The Drone CI workflow should trigger automatically for every scenario (push, pull request, sync…) however, you can _optionally_ change this behavior by changing the trigger. For example: - -```yaml -kind: pipeline -type: docker -name: MegaLinter - -workspace: - path: /tmp/lint - -steps: - -- name: megalinter - image: oxsecurity/megalinter:v6 - environment: - DEFAULT_WORKSPACE: /tmp/lint - -trigger: - event: - - push -``` - -The workflow above should only trigger on push, not on any other situation. For more information about how to configure Drone CI trigger rules, [click here](https://docs.drone.io/pipeline/triggers/). - -## Docker container - -You can also run megalinter with its Docker container, just execute this command: - -`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v6` - -**No extra arguments are needed,** however, megalinter will lint all of the files inside the `/tmp/lint` folder, so it may be needed to configure your tool of choice to use the `/tmp/lint` folder as workspace. -This can also be changed: - -_Example:_ - -`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/example/folder:rw oxsecurity/megalinter:v6` - -## Run MegaLinter locally - -[![Version](https://img.shields.io/npm/v/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) -[![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) -[![Downloads/total](https://img.shields.io/npm/dt/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) - -You can use [mega-linter-runner](https://megalinter.io/mega-linter-runner/) to locally run MegaLinter with the same configuration defined in [.mega-linter.yml](configuration.md) file - -See [mega-linter-runner installation instructions](https://megalinter.io/mega-linter-runner/#installation) - -Example - -```shell -npx mega-linter-runner --flavor salesforce -e "'ENABLE=DOCKERFILE,MARKDOWN,YAML'" -e 'SHOW_ELAPSED_TIME=true' -``` - -Note: You can also use such command line in your custom CI/CD pipelines - - - diff --git a/docs/json-schemas/configuration.html b/docs/json-schemas/configuration.html index ec39c26b713..979388fc3e1 100644 --- a/docs/json-schemas/configuration.html +++ b/docs/json-schemas/configuration.html @@ -119414,4 +119414,4 @@

- \ No newline at end of file + diff --git a/docs/license-explanations.md b/docs/license-explanations.md new file mode 100644 index 00000000000..bb85d2ea886 --- /dev/null +++ b/docs/license-explanations.md @@ -0,0 +1,30 @@ +--- +title: License explanation +description: What you can do and can not do with MegaLinter +--- + + +# Why AGPL V3 License ? + +MegaLinter is an open-source and free tool graciously provided to the developer community. + +We don't earn money with MegaLinter, but it takes a lot of time to maintain it, so we want to avoid companies to make money with it by selling software or services without sharing their sources, like it happened in the past with [ElasticSearch](https://www.elastic.co/blog/why-license-change-aws) or [MongoDB](https://techcrunch.com/2018/10/16/mongodb-switches-up-its-open-source-license/). + +## What you can do + +- Use MegaLinter in public repositories +- Use MegaLinter in private repositories, even commercial ones +- Use MegaLinter to build commercial closed-source applications +- Use MegaLinter on on-premise Git services, like Github Enterprise or Gitlab Community Edition +- Sell professional services to setup and maintain MegaLinter in the repositories of your clients + +## What you can not do + +- Sell MegaLinter +- Expose a closed-source online service that calls MegaLinter in the background + +## What you could do + +If you have a professional use of MegaLinter, you can be nice and support us by [sponsoring us](https://megalinter.io/latest/sponsor/), and ask your clients to sponsor us too :) + +Any questions ? [Contact us](https://www.ox.security/contact/) ! \ No newline at end of file diff --git a/docs/licenses/actionlint.md b/docs/licenses/actionlint.md index 69292aedc91..f339c769732 100644 --- a/docs/licenses/actionlint.md +++ b/docs/licenses/actionlint.md @@ -1,3 +1,8 @@ +--- +title: License info for actionlint within MegaLinter +search: + exclude: true +--- the MIT License Copyright (c) 2021 rhysd diff --git a/docs/licenses/ansible-lint.md b/docs/licenses/ansible-lint.md index 4b48ba22ec0..33f58a104bf 100644 --- a/docs/licenses/ansible-lint.md +++ b/docs/licenses/ansible-lint.md @@ -1,21 +1,679 @@ -Copyright (c) 2013-2018 Will Thames -Copyright (c) 2018 Ansible by Red Hat - - -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. +--- +title: License info for ansible-lint within MegaLinter +search: + exclude: true +--- + 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. + + + Copyright (C) + + 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: + + Copyright (C) + 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/licenses/arm-ttk.md b/docs/licenses/arm-ttk.md index bf21122a16f..864faedf7b7 100644 --- a/docs/licenses/arm-ttk.md +++ b/docs/licenses/arm-ttk.md @@ -1,3 +1,8 @@ +--- +title: License info for arm-ttk within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) Microsoft Corporation. diff --git a/docs/licenses/bandit.md b/docs/licenses/bandit.md index 68c771a0999..4abc5f6c7e5 100644 --- a/docs/licenses/bandit.md +++ b/docs/licenses/bandit.md @@ -1,3 +1,8 @@ +--- +title: License info for bandit within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 @@ -173,4 +178,3 @@ 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. - diff --git a/docs/licenses/bicep_linter.md b/docs/licenses/bicep_linter.md index 9e841e7a26e..07bf093c940 100644 --- a/docs/licenses/bicep_linter.md +++ b/docs/licenses/bicep_linter.md @@ -1,3 +1,8 @@ +--- +title: License info for bicep_linter within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) Microsoft Corporation. diff --git a/docs/licenses/black.md b/docs/licenses/black.md index 7a9b891f713..20d64e6f731 100644 --- a/docs/licenses/black.md +++ b/docs/licenses/black.md @@ -1,3 +1,8 @@ +--- +title: License info for black within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2018 Łukasz Langa diff --git a/docs/licenses/cfn-lint.md b/docs/licenses/cfn-lint.md index fc06cc4fe49..a75ddb4d422 100644 --- a/docs/licenses/cfn-lint.md +++ b/docs/licenses/cfn-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for cfn-lint within MegaLinter +search: + exclude: true +--- MIT No Attribution Permission is hereby granted, free of charge, to any person obtaining a copy of this diff --git a/docs/licenses/checkmake.md b/docs/licenses/checkmake.md index 5db9348de3f..50fe7dd0c15 100644 --- a/docs/licenses/checkmake.md +++ b/docs/licenses/checkmake.md @@ -1,3 +1,8 @@ +--- +title: License info for checkmake within MegaLinter +search: + exclude: true +--- Copyright (C) 2016 Daniel Schauenberg Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/docs/licenses/checkov.md b/docs/licenses/checkov.md index eda91ad16eb..d371851e6f1 100644 --- a/docs/licenses/checkov.md +++ b/docs/licenses/checkov.md @@ -1,3 +1,8 @@ +--- +title: License info for checkov within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ diff --git a/docs/licenses/checkstyle.md b/docs/licenses/checkstyle.md index 19e307187ac..b3882990611 100644 --- a/docs/licenses/checkstyle.md +++ b/docs/licenses/checkstyle.md @@ -1,3 +1,8 @@ +--- +title: License info for checkstyle within MegaLinter +search: + exclude: true +--- GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 diff --git a/docs/licenses/clippy.md b/docs/licenses/clippy.md index abda0bdaa43..75ceb41093b 100644 --- a/docs/licenses/clippy.md +++ b/docs/licenses/clippy.md @@ -1,7 +1,16 @@ +--- +title: License info for clippy within MegaLinter +search: + exclude: true +--- +// REUSE-IgnoreStart + Copyright 2014-2022 The Rust Project Developers Licensed under the Apache License, Version 2.0 > or the MIT license ->, at your +, at your option. All files in the project carrying such notice may not be copied, modified, or distributed except according to those terms. + +// REUSE-IgnoreEnd diff --git a/docs/licenses/clj-kondo.md b/docs/licenses/clj-kondo.md index 11ecb7958c7..59652d6ea8e 100644 --- a/docs/licenses/clj-kondo.md +++ b/docs/licenses/clj-kondo.md @@ -1,3 +1,8 @@ +--- +title: License info for clj-kondo within MegaLinter +search: + exclude: true +--- Eclipse Public License - v 1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC diff --git a/docs/licenses/cljstyle.md b/docs/licenses/cljstyle.md new file mode 100644 index 00000000000..a024ce3cdf2 --- /dev/null +++ b/docs/licenses/cljstyle.md @@ -0,0 +1,209 @@ +--- +title: License info for cljstyle within MegaLinter +search: + exclude: true +--- +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/coffeelint.md b/docs/licenses/coffeelint.md index 65b8dec4aa6..b1441b8937c 100644 --- a/docs/licenses/coffeelint.md +++ b/docs/licenses/coffeelint.md @@ -1,3 +1,8 @@ +--- +title: License info for coffeelint within MegaLinter +search: + exclude: true +--- CoffeeLint Copyright (c) 2011 Matthew Perpick diff --git a/docs/licenses/cpplint.md b/docs/licenses/cpplint.md index af4e42090c1..02dd2d34290 100644 --- a/docs/licenses/cpplint.md +++ b/docs/licenses/cpplint.md @@ -1,3 +1,8 @@ +--- +title: License info for cpplint within MegaLinter +search: + exclude: true +--- cpplint.py and its corresponding unit tests are Copyright (C) 2009 Google Inc. Redistribution and use in source and binary forms, with or without diff --git a/docs/licenses/csharpier.md b/docs/licenses/csharpier.md index 1b6c65e4546..c4194571ba7 100644 --- a/docs/licenses/csharpier.md +++ b/docs/licenses/csharpier.md @@ -1,3 +1,8 @@ +--- +title: License info for csharpier within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2021 belav diff --git a/docs/licenses/cspell.md b/docs/licenses/cspell.md index 61d1e2960dc..cf836d19459 100644 --- a/docs/licenses/cspell.md +++ b/docs/licenses/cspell.md @@ -1,3 +1,8 @@ +--- +title: License info for cspell within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2019 cspell diff --git a/docs/licenses/dartanalyzer.md b/docs/licenses/dartanalyzer.md index fa23d4086ba..225318c2910 100644 --- a/docs/licenses/dartanalyzer.md +++ b/docs/licenses/dartanalyzer.md @@ -1,3 +1,8 @@ +--- +title: License info for dartanalyzer within MegaLinter +search: + exclude: true +--- Copyright 2012, the Dart project authors. Redistribution and use in source and binary forms, with or without diff --git a/docs/licenses/devskim.md b/docs/licenses/devskim.md index 8cb179cdb69..732c4196096 100644 --- a/docs/licenses/devskim.md +++ b/docs/licenses/devskim.md @@ -1,3 +1,8 @@ +--- +title: License info for devskim within MegaLinter +search: + exclude: true +--- Copyright (c) Microsoft Corporation. All rights reserved. MIT License diff --git a/docs/licenses/djlint.md b/docs/licenses/djlint.md index b564c680a3b..3ffc051dcfd 100644 --- a/docs/licenses/djlint.md +++ b/docs/licenses/djlint.md @@ -1,3 +1,8 @@ +--- +title: License info for djlint within MegaLinter +search: + exclude: true +--- ### GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/docs/licenses/dotenv-linter.md b/docs/licenses/dotenv-linter.md index a53e8e23312..5e17fc7ca7a 100644 --- a/docs/licenses/dotenv-linter.md +++ b/docs/licenses/dotenv-linter.md @@ -1,3 +1,8 @@ +--- +title: License info for dotenv-linter within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2019 Grachev Mikhail diff --git a/docs/licenses/dotnet-format.md b/docs/licenses/dotnet-format.md index a616ed188df..c1709c67cc4 100644 --- a/docs/licenses/dotnet-format.md +++ b/docs/licenses/dotnet-format.md @@ -1,3 +1,8 @@ +--- +title: License info for dotnet-format within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) .NET Foundation and Contributors diff --git a/docs/licenses/dustilock.md b/docs/licenses/dustilock.md index d98b758ab17..43eaefda67a 100644 --- a/docs/licenses/dustilock.md +++ b/docs/licenses/dustilock.md @@ -1,3 +1,8 @@ +--- +title: License info for dustilock within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ diff --git a/docs/licenses/editorconfig-checker.md b/docs/licenses/editorconfig-checker.md index 5420ac57f6e..e27af61cc11 100644 --- a/docs/licenses/editorconfig-checker.md +++ b/docs/licenses/editorconfig-checker.md @@ -1,3 +1,8 @@ +--- +title: License info for editorconfig-checker within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2018 Max Strübing diff --git a/docs/licenses/eslint-plugin-jsonc.md b/docs/licenses/eslint-plugin-jsonc.md index 5e4c0401ff0..abc4509a1f8 100644 --- a/docs/licenses/eslint-plugin-jsonc.md +++ b/docs/licenses/eslint-plugin-jsonc.md @@ -1,3 +1,8 @@ +--- +title: License info for eslint-plugin-jsonc within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2020 Yosuke Ota diff --git a/docs/licenses/eslint.md b/docs/licenses/eslint.md index b607bb36e96..45e24a05383 100644 --- a/docs/licenses/eslint.md +++ b/docs/licenses/eslint.md @@ -1,3 +1,8 @@ +--- +title: License info for eslint within MegaLinter +search: + exclude: true +--- Copyright OpenJS Foundation and other contributors, Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/licenses/flake8.md b/docs/licenses/flake8.md index e5e3d6f9400..dcc639ac2b5 100644 --- a/docs/licenses/flake8.md +++ b/docs/licenses/flake8.md @@ -1,3 +1,8 @@ +--- +title: License info for flake8 within MegaLinter +search: + exclude: true +--- == Flake8 License (MIT) == Copyright (C) 2011-2013 Tarek Ziade diff --git a/docs/licenses/gherkin-lint.md b/docs/licenses/gherkin-lint.md index 4f179dc575d..02d485b9ce7 100644 --- a/docs/licenses/gherkin-lint.md +++ b/docs/licenses/gherkin-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for gherkin-lint within MegaLinter +search: + exclude: true +--- Copyright (c) 2016, Vasiliki Siakka Permission to use, copy, modify, and/or distribute this software for any diff --git a/docs/licenses/git_diff.md b/docs/licenses/git_diff.md index 49f237426f7..70331da0d16 100644 --- a/docs/licenses/git_diff.md +++ b/docs/licenses/git_diff.md @@ -1,3 +1,8 @@ +--- +title: License info for git_diff within MegaLinter +search: + exclude: true +--- Note that the only valid version of the GPL as far as this project is concerned is _this_ particular version of the license (ie v2, not diff --git a/docs/licenses/gitleaks.md b/docs/licenses/gitleaks.md index 3c270b36c53..833c3b56f6f 100644 --- a/docs/licenses/gitleaks.md +++ b/docs/licenses/gitleaks.md @@ -1,3 +1,8 @@ +--- +title: License info for gitleaks within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2019 Zachary Rice diff --git a/docs/licenses/golangci-lint.md b/docs/licenses/golangci-lint.md index a23694d0c5e..512f6ecdbc5 100644 --- a/docs/licenses/golangci-lint.md +++ b/docs/licenses/golangci-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for golangci-lint within MegaLinter +search: + exclude: true +--- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/docs/licenses/graphql-schema-linter.md b/docs/licenses/graphql-schema-linter.md index 63dcb620b16..93e6521a20b 100644 --- a/docs/licenses/graphql-schema-linter.md +++ b/docs/licenses/graphql-schema-linter.md @@ -1,3 +1,8 @@ +--- +title: License info for graphql-schema-linter within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2017 Christian Joudrey diff --git a/docs/licenses/grype.md b/docs/licenses/grype.md new file mode 100644 index 00000000000..0b265a76e56 --- /dev/null +++ b/docs/licenses/grype.md @@ -0,0 +1,206 @@ +--- +title: License info for grype within MegaLinter +search: + exclude: true +--- + 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 [yyyy] [name of copyright owner] + + 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. diff --git a/docs/licenses/hadolint.md b/docs/licenses/hadolint.md index 0ecdd39888b..db3555f9382 100644 --- a/docs/licenses/hadolint.md +++ b/docs/licenses/hadolint.md @@ -1,3 +1,8 @@ +--- +title: License info for hadolint within MegaLinter +search: + exclude: true +--- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/docs/licenses/helm.md b/docs/licenses/helm.md index 21c57fae21f..da44f606c80 100644 --- a/docs/licenses/helm.md +++ b/docs/licenses/helm.md @@ -1,3 +1,8 @@ +--- +title: License info for helm within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 diff --git a/docs/licenses/htmlhint.md b/docs/licenses/htmlhint.md index 75d903f33fd..86871ada597 100644 --- a/docs/licenses/htmlhint.md +++ b/docs/licenses/htmlhint.md @@ -1,6 +1,11 @@ +--- +title: License info for htmlhint within MegaLinter +search: + exclude: true +--- MIT License -Copyright (c) 2014-2016 Yanis Wang <> +Copyright (c) 2014-2016 Yanis Wang <yanis.wang@gmail.com> Copyright (c) 2018 David Dias (Thanks to the initial contributor Yanis Wang) diff --git a/docs/licenses/isort.md b/docs/licenses/isort.md index b5083a50d8c..e271fe51e4b 100644 --- a/docs/licenses/isort.md +++ b/docs/licenses/isort.md @@ -1,3 +1,8 @@ +--- +title: License info for isort within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2013 Timothy Edmund Crosley diff --git a/docs/licenses/jscpd.md b/docs/licenses/jscpd.md index f39ab4b5496..4714bb5b91a 100644 --- a/docs/licenses/jscpd.md +++ b/docs/licenses/jscpd.md @@ -1,3 +1,8 @@ +--- +title: License info for jscpd within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2013-2020 Andrey Kucherenko diff --git a/docs/licenses/jsonlint.md b/docs/licenses/jsonlint.md index ae81448f5c9..d8c2e079568 100644 --- a/docs/licenses/jsonlint.md +++ b/docs/licenses/jsonlint.md @@ -1,7 +1,12 @@ +--- +title: License info for jsonlint within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2012-2018 Zachary Carter -Copyright (c) 2019-2022 Ferdinand Prantl +Copyright (c) 2019-2023 Ferdinand Prantl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/licenses/kics.md b/docs/licenses/kics.md index 497df271e95..35e5aa9e376 100644 --- a/docs/licenses/kics.md +++ b/docs/licenses/kics.md @@ -1,3 +1,8 @@ +--- +title: License info for kics within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -198,14 +203,4 @@ 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. - -It is clarified that the Apache License 2.0 shall not apply to any content -generated by KICS which is marked as being “Proprietary to CIS” (the “CIS -Proprietary Content”). The CIS Proprietary Content is exclusively owned by -the Center for Internet Security, Inc. and you are granted a limited, -non-exclusively, non-transferable, non-sublicensable license to view the -CIS Proprietary Content in connection with your use of KICS. You may not, -and may not permit others to modify, create derivative works of, reproduce, -publish, distribute, transfer, publicly display, resell, rent, lease, -sublicense, loan, or lend the CIS Proprietary Content to any third party. + limitations under the License. \ No newline at end of file diff --git a/docs/licenses/ktlint.md b/docs/licenses/ktlint.md index cd5b0ceeabe..d9ede8604cd 100644 --- a/docs/licenses/ktlint.md +++ b/docs/licenses/ktlint.md @@ -1,3 +1,8 @@ +--- +title: License info for ktlint within MegaLinter +search: + exclude: true +--- Copyright 2019 Pinterest, Inc. Copyright 2016-2019 Stanley Shyiko diff --git a/docs/licenses/kubeconform.md b/docs/licenses/kubeconform.md index e2d91223764..26bc521bad4 100644 --- a/docs/licenses/kubeconform.md +++ b/docs/licenses/kubeconform.md @@ -1,12 +1,204 @@ - Kubeconform - Validate Kubernetes configuration files +--- +title: License info for kubeconform within MegaLinter +search: + exclude: true +--- - Copyright (C) 2020 Yann Hamon + 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 2017-2022 Yann Hamon 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 - https://www.apache.org/licenses/LICENSE-2.0 + 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, diff --git a/docs/licenses/kubescape.md b/docs/licenses/kubescape.md new file mode 100644 index 00000000000..e180f0e844d --- /dev/null +++ b/docs/licenses/kubescape.md @@ -0,0 +1,207 @@ +--- +title: License info for kubescape within MegaLinter +search: + exclude: true +--- + + 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 [yyyy] [name of copyright owner] + + 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. diff --git a/docs/licenses/lintr.md b/docs/licenses/lintr.md index 80d496dc7e0..4dfa081b5d4 100644 --- a/docs/licenses/lintr.md +++ b/docs/licenses/lintr.md @@ -1,2 +1,7 @@ +--- +title: License info for lintr within MegaLinter +search: + exclude: true +--- YEAR: 2014-2016 COPYRIGHT HOLDER: James Hester diff --git a/docs/licenses/luacheck.md b/docs/licenses/luacheck.md index c8bbc2ce55e..041a91d6771 100644 --- a/docs/licenses/luacheck.md +++ b/docs/licenses/luacheck.md @@ -1,3 +1,8 @@ +--- +title: License info for luacheck within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2014 - 2018 Peter Melnichenko diff --git a/docs/licenses/lychee.md b/docs/licenses/lychee.md new file mode 100644 index 00000000000..f5bfd7d5f07 --- /dev/null +++ b/docs/licenses/lychee.md @@ -0,0 +1,206 @@ +--- +title: License info for lychee within MegaLinter +search: + exclude: true +--- + 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 2020 The lychee maintainers + +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. diff --git a/docs/licenses/markdown-link-check.md b/docs/licenses/markdown-link-check.md index 53211e76df5..335efaeccac 100644 --- a/docs/licenses/markdown-link-check.md +++ b/docs/licenses/markdown-link-check.md @@ -1,3 +1,8 @@ +--- +title: License info for markdown-link-check within MegaLinter +search: + exclude: true +--- Copyright (c) 2016-2022 Thomas Cort Permission to use, copy, modify, and distribute this software for any diff --git a/docs/licenses/markdown-table-formatter.md b/docs/licenses/markdown-table-formatter.md index 8ae47882c98..236f5766e89 100644 --- a/docs/licenses/markdown-table-formatter.md +++ b/docs/licenses/markdown-table-formatter.md @@ -1,3 +1,8 @@ +--- +title: License info for markdown-table-formatter within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2020 Nicolas Vuillamy diff --git a/docs/licenses/markdownlint.md b/docs/licenses/markdownlint.md index c6990fd4d29..288f50b90fe 100644 --- a/docs/licenses/markdownlint.md +++ b/docs/licenses/markdownlint.md @@ -1,6 +1,11 @@ +--- +title: License info for markdownlint within MegaLinter +search: + exclude: true +--- The MIT License (MIT) -Copyright (c) 2015-2022 David Anson +Copyright (c) David Anson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/licenses/mypy.md b/docs/licenses/mypy.md index 548f1a76d22..cffd45a7309 100644 --- a/docs/licenses/mypy.md +++ b/docs/licenses/mypy.md @@ -1,10 +1,16 @@ +--- +title: License info for mypy within MegaLinter +search: + exclude: true +--- Mypy (and mypyc) are licensed under the terms of the MIT license, reproduced below. = = = = = The MIT License -Copyright (c) 2015-2021 Jukka Lehtosalo and contributors +Copyright (c) 2012-2022 Jukka Lehtosalo and contributors +Copyright (c) 2015-2022 Dropbox, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -207,21 +213,21 @@ bound by the terms and conditions of this License Agreement. CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 -------------------------------------------------- -Copyright (c) 1991 - 1995, Stitching Mathematics Centrum Amsterdam, +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Stitching Mathematics +supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. -STITCHING MATHEMATICS CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STITCHING MATHEMATICS CENTRUM BE LIABLE +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, 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 diff --git a/docs/licenses/npm-groovy-lint.md b/docs/licenses/npm-groovy-lint.md index 4e9da35d77d..8b11830d568 100644 --- a/docs/licenses/npm-groovy-lint.md +++ b/docs/licenses/npm-groovy-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for npm-groovy-lint within MegaLinter +search: + exclude: true +--- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/docs/licenses/npm-package-json-lint.md b/docs/licenses/npm-package-json-lint.md index 0bf933a3e46..05b7437e879 100644 --- a/docs/licenses/npm-package-json-lint.md +++ b/docs/licenses/npm-package-json-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for npm-package-json-lint within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2016-2022 tclindner diff --git a/docs/licenses/perlcritic.md b/docs/licenses/perlcritic.md index 1abd996cbb4..8e29ed42365 100644 --- a/docs/licenses/perlcritic.md +++ b/docs/licenses/perlcritic.md @@ -1,3 +1,8 @@ +--- +title: License info for perlcritic within MegaLinter +search: + exclude: true +--- Terms of Perl itself a) the GNU General Public License as published by the Free diff --git a/docs/licenses/php.md b/docs/licenses/php.md deleted file mode 100644 index 19343788615..00000000000 --- a/docs/licenses/php.md +++ /dev/null @@ -1,68 +0,0 @@ --------------------------------------------------------------------- - The PHP License, version 3.01 -Copyright (c) 1999 - 2021 The PHP Group. All rights reserved --------------------------------------------------------------------- - -Redistribution and use in source and binary forms, with or without -modification, is permitted provided that the following conditions -are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - 3. The name "PHP" must not be used to endorse or promote products - derived from this software without prior written permission. For - written permission, please contact . - - 4. Products derived from this software may not be called "PHP", nor - may "PHP" appear in their name, without prior written permission - from . You may indicate that your software works in - conjunction with PHP by saying "Foo for PHP" instead of calling - it "PHP Foo" or "phpfoo" - - 5. The PHP Group may publish revised and/or new versions of the - license from time to time. Each version will be given a - distinguishing version number. - Once covered code has been published under a particular version - of the license, you may always continue to use it under the terms - of that version. You may also choose to use such covered code - under the terms of any subsequent version of the license - published by the PHP Group. No one other than the PHP Group has - the right to modify the terms applicable to covered code created - under this License. - - 6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes PHP software, freely available from - ". - -THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND -ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP -DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -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 OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. - --------------------------------------------------------------------- - -This software consists of voluntary contributions made by many -individuals on behalf of the PHP Group. - -The PHP Group can be contacted via Email at . - -For more information on the PHP Group and the PHP project, -please see . - -PHP includes the Zend Engine, freely available at -. diff --git a/docs/licenses/phpcs.md b/docs/licenses/phpcs.md index 583b0cab9e7..b8ca0246250 100644 --- a/docs/licenses/phpcs.md +++ b/docs/licenses/phpcs.md @@ -1,3 +1,8 @@ +--- +title: License info for phpcs within MegaLinter +search: + exclude: true +--- Copyright (c) 2012, Squiz Pty Ltd (ABN 77 084 670 600) All rights reserved. diff --git a/docs/licenses/phplint.md b/docs/licenses/phplint.md index a056414224b..5cfa3f538df 100644 --- a/docs/licenses/phplint.md +++ b/docs/licenses/phplint.md @@ -1,3 +1,8 @@ +--- +title: License info for phplint within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2016 overtrue diff --git a/docs/licenses/phpstan.md b/docs/licenses/phpstan.md index 7c0f2b7b69a..9b7997ffe62 100644 --- a/docs/licenses/phpstan.md +++ b/docs/licenses/phpstan.md @@ -1,3 +1,8 @@ +--- +title: License info for phpstan within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2016 Ondřej Mirtes diff --git a/docs/licenses/pmd.md b/docs/licenses/pmd.md index 8ac128765c0..53e989e68fe 100644 --- a/docs/licenses/pmd.md +++ b/docs/licenses/pmd.md @@ -1,3 +1,8 @@ +--- +title: License info for pmd within MegaLinter +search: + exclude: true +--- PMD's BSD-style license: Copyright (c) 2003-2009, InfoEther, LLC diff --git a/docs/licenses/powershell.md b/docs/licenses/powershell.md index cec380d8ef7..4ed5476241f 100644 --- a/docs/licenses/powershell.md +++ b/docs/licenses/powershell.md @@ -1,3 +1,8 @@ +--- +title: License info for powershell within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2015 Microsoft Corporation. diff --git a/docs/licenses/powershell_formatter.md b/docs/licenses/powershell_formatter.md index cec380d8ef7..ece2f0a034b 100644 --- a/docs/licenses/powershell_formatter.md +++ b/docs/licenses/powershell_formatter.md @@ -1,3 +1,8 @@ +--- +title: License info for powershell_formatter within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2015 Microsoft Corporation. diff --git a/docs/licenses/prettier.md b/docs/licenses/prettier.md index 5767e34d30a..0ced49e317e 100644 --- a/docs/licenses/prettier.md +++ b/docs/licenses/prettier.md @@ -1,3 +1,8 @@ +--- +title: License info for prettier within MegaLinter +search: + exclude: true +--- Copyright © James Long and contributors 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: diff --git a/docs/licenses/proselint.md b/docs/licenses/proselint.md index 402076869f7..9dc19adccdc 100644 --- a/docs/licenses/proselint.md +++ b/docs/licenses/proselint.md @@ -1,3 +1,8 @@ +--- +title: License info for proselint within MegaLinter +search: + exclude: true +--- Copyright © 2014–2015, Jordan Suchow, Michael Pacer, and Lara A. Ross All rights reserved. diff --git a/docs/licenses/protolint.md b/docs/licenses/protolint.md new file mode 100644 index 00000000000..1cdd5bc375f --- /dev/null +++ b/docs/licenses/protolint.md @@ -0,0 +1,26 @@ +--- +title: License info for protolint within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2018 yohei yoshimuta + +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/psalm.md b/docs/licenses/psalm.md index bfb2d1c5f8d..209e2b4e0dc 100644 --- a/docs/licenses/psalm.md +++ b/docs/licenses/psalm.md @@ -1,3 +1,8 @@ +--- +title: License info for psalm within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2016 Vimeo diff --git a/docs/licenses/puppet-lint.md b/docs/licenses/puppet-lint.md index 08b22f7f87e..1c159b274b8 100644 --- a/docs/licenses/puppet-lint.md +++ b/docs/licenses/puppet-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for puppet-lint within MegaLinter +search: + exclude: true +--- Copyright (c) 2011 Tim Sharpe Permission is hereby granted, free of charge, to any person obtaining diff --git a/docs/licenses/pylint.md b/docs/licenses/pylint.md index 512d46a424e..9bc1aecda61 100644 --- a/docs/licenses/pylint.md +++ b/docs/licenses/pylint.md @@ -1,3 +1,8 @@ +--- +title: License info for pylint within MegaLinter +search: + exclude: true +--- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 diff --git a/docs/licenses/pyright.md b/docs/licenses/pyright.md new file mode 100644 index 00000000000..978258ce5ee --- /dev/null +++ b/docs/licenses/pyright.md @@ -0,0 +1,27 @@ +--- +title: License info for pyright within MegaLinter +search: + exclude: true +--- +MIT License + +Pyright - A static type checker for the Python language +Copyright (c) Microsoft Corporation. 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 diff --git a/docs/licenses/raku.md b/docs/licenses/raku.md index 5886e476e81..f12ebeda820 100644 --- a/docs/licenses/raku.md +++ b/docs/licenses/raku.md @@ -1,3 +1,8 @@ +--- +title: License info for raku within MegaLinter +search: + exclude: true +--- The Artistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. @@ -108,7 +113,7 @@ you do at least ONE of the following: (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under - + (i) the Original License or (ii) a license that permits the licensee to freely copy, diff --git a/docs/licenses/remark-lint.md b/docs/licenses/remark-lint.md index fbcbb18b932..67435b196c4 100644 --- a/docs/licenses/remark-lint.md +++ b/docs/licenses/remark-lint.md @@ -1,3 +1,8 @@ +--- +title: License info for remark-lint within MegaLinter +search: + exclude: true +--- (The MIT License) Copyright (c) 2015 Titus Wormer diff --git a/docs/licenses/revive.md b/docs/licenses/revive.md index c617c7e0126..4a909e72b91 100644 --- a/docs/licenses/revive.md +++ b/docs/licenses/revive.md @@ -1,3 +1,8 @@ +--- +title: License info for revive within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2018 Minko Gechev diff --git a/docs/licenses/rst-lint.md b/docs/licenses/rst-lint.md new file mode 100644 index 00000000000..28c368975ad --- /dev/null +++ b/docs/licenses/rst-lint.md @@ -0,0 +1,29 @@ +--- +title: License info for rst-lint within MegaLinter +search: + exclude: true +--- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +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 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. + +For more information, please refer to diff --git a/docs/licenses/rstcheck.md b/docs/licenses/rstcheck.md new file mode 100644 index 00000000000..22329164d99 --- /dev/null +++ b/docs/licenses/rstcheck.md @@ -0,0 +1,25 @@ +--- +title: License info for rstcheck within MegaLinter +search: + exclude: true +--- +Copyright (C) 2013-2022 Steven Myint + +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/rubocop.md b/docs/licenses/rubocop.md index 72cfaf9029d..b3d251b504c 100644 --- a/docs/licenses/rubocop.md +++ b/docs/licenses/rubocop.md @@ -1,4 +1,9 @@ -Copyright (c) 2012-22 Bozhidar Batsov +--- +title: License info for rubocop within MegaLinter +search: + exclude: true +--- +Copyright (c) 2012-23 Bozhidar Batsov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/docs/licenses/ruff.md b/docs/licenses/ruff.md new file mode 100644 index 00000000000..1bf54e073f7 --- /dev/null +++ b/docs/licenses/ruff.md @@ -0,0 +1,1234 @@ +--- +title: License info for ruff within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2022 Charles Marsh + +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. + +end of terms and conditions + +The externally maintained libraries from which parts of the Software is derived +are: + +- flake8-comprehensions, licensed as follows: + """ + MIT License + + Copyright (c) 2017 Adam Johnson + + 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. + """ + +- flake8-no-pep420, licensed as follows: + """ + MIT License + + Copyright (c) 2020 Adam Johnson + + 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. + """ + +- flake8-tidy-imports, licensed as follows: + """ + MIT License + + Copyright (c) 2017 Adam Johnson + + 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. + """ + +- flake8-return, licensed as follows: + """ + MIT License + + Copyright (c) 2019 Afonasev Evgeniy + + 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. + """ + +- flake8-2020, licensed as follows: + """ + Copyright (c) 2019 Anthony Sottile + + 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. + """ + +- pyupgrade, licensed as follows: + """ + Copyright (c) 2017 Anthony Sottile + + 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. + """ + +- flake8-blind-except, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2014 Elijah Andrews + + 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. + """ + +- flake8-gettext, licensed as follows: + """ + BSD Zero Clause License + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. + + 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. + """ + +- flake8-implicit-str-concat, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2019 Dylan Turner + + 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. + """ + +- flake8-debugger, licensed as follows: + """ + MIT License + + Copyright (c) 2016 Joseph Kahn + + 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. + """ + +- flake8-pyi, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2016 Łukasz Langa + + 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. + """ + +- flake8-print, licensed as follows: + """ + MIT License + + Copyright (c) 2016 Joseph Kahn + + 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. + """ + +- flake8-import-conventions, licensed as follows: + """ + MIT License + + Copyright (c) 2021 João Palmeiro + + 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. + """ + +- flake8-simplify, licensed as follows: + """ + MIT License + + Copyright (c) 2020 Martin Thoma + + 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. + """ + +- flake8-todos, licensed as follows: + """ + Copyright (c) 2019 EclecticIQ. All rights reserved. + Copyright (c) 2020 Gram . All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- flake8-unused-arguments, licensed as follows: + """ + MIT License + + Copyright (c) 2019 Nathan Hoad + + 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. + """ + +- pygrep-hooks, licensed as follows: + """ + Copyright (c) 2018 Anthony Sottile + + 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. + """ + +- autoflake, licensed as follows: + """ + Copyright (C) 2012-2018 Steven Myint + + 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. + """ + +- autotyping, licensed as follows: + """ + MIT License + + Copyright (c) 2023 Jelle Zijlstra + + 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. + """ + +- Flake8, licensed as follows: + """ + == Flake8 License (MIT) == + + Copyright (C) 2011-2013 Tarek Ziade + Copyright (C) 2012-2016 Ian Cordasco + + 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. + """ + +- flake8-bugbear, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2016 Łukasz Langa + + 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. + """ + +- flake8-commas, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2017 Thomas Grainger. + + 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. + + + Portions of this flake8-commas Software may utilize the following + copyrighted material, the use of which is hereby acknowledged. + + Original flake8-commas: + + 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. + """ + +- flynt, licensed as follows: + """ + MIT License + + Copyright (c) 2019-2022 Ilya Kamenshchikov + + 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. + """ + +- isort, licensed as follows: + """ + The MIT License (MIT) + + Copyright (c) 2013 Timothy Edmund Crosley + + 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. + """ + +- pep8-naming, licensed as follows: + """ + Copyright © 2013 Florent Xicluna + + Licensed under the terms of the Expat 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. + """ + +- pycodestyle, licensed as follows: + """ + Copyright © 2006-2009 Johann C. Rocholl + Copyright © 2009-2014 Florent Xicluna + Copyright © 2014-2020 Ian Lee + + Licensed under the terms of the Expat 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. + """ + +- pydocstyle, licensed as follows: + """ + Copyright (c) 2012 GreenSteam, + + Copyright (c) 2014-2020 Amir Rachum, + + Copyright (c) 2020 Sambhav Kothari, + + 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. + """ + +- Pyflakes, licensed as follows: + """ + Copyright 2005-2011 Divmod, Inc. + Copyright 2013-2014 Florent Xicluna + + 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. + """ + +- flake8-use-pathlib, licensed as follows: + """ + MIT License + + Copyright (c) 2021 Rodolphe Pelloux-Prayer + + 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. + """ + +- RustPython, licensed as follows: + """ + MIT License + + Copyright (c) 2020 RustPython Team + + 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. + """ + +- flake8-annotations, licensed as follows: + """ + MIT License + + Copyright (c) 2019 - Present S. Co1 + + 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. + """ + +- flake8-async, licensed as follows: + """ + MIT License + + Copyright (c) 2022 Cooper Lees + + 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. + """ + +- flake8-type-checking, licensed as follows: + """ + Copyright (c) 2021, Sondre Lillebø Gundersen + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of pytest-{{ cookiecutter.plugin_name }} nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- flake8-bandit, licensed as follows: + """ + Copyright (c) 2017 Tyler Wince + + 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. + """ + +- flake8-eradicate, licensed as follows: + """ + MIT License + + Copyright (c) 2018 Nikita Sobolev + + 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. + """ + +- flake8-quotes, licensed as follows: + """ + 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. + """ + +- flake8-logging-format, licensed as follows: + """ + Apache License + Version 2.0, January 2004 + + + 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 {yyyy} {name of copyright owner} + + 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. + """ + +- flake8-raise, licensed as follows: + """ + MIT License + + Copyright (c) 2020 Jon Dufresne + + 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. + """ + +- flake8-self, licensed as follows: + """ + Freely Distributable + """ + +- flake8-django, licensed under the GPL license. + +- rust-analyzer/text-size, licensed under the 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. + """ + +- rome/tools, licensed under the MIT license: + """ + MIT License + + Copyright (c) Rome Tools, Inc. and its affiliates. + + 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/scalafix.md b/docs/licenses/scalafix.md index 53c28877578..7f600d57c53 100644 --- a/docs/licenses/scalafix.md +++ b/docs/licenses/scalafix.md @@ -1,3 +1,8 @@ +--- +title: License info for scalafix within MegaLinter +search: + exclude: true +--- scalafix is licensed under the [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause). Copyright (c) 2016 EPFL diff --git a/docs/licenses/scss-lint.md b/docs/licenses/scss-lint.md new file mode 100644 index 00000000000..dcea57c3bf9 --- /dev/null +++ b/docs/licenses/scss-lint.md @@ -0,0 +1,25 @@ +--- +title: License info for scss-lint within MegaLinter +search: + exclude: true +--- +Copyright (c) Shane da Silva + +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/secretlint.md b/docs/licenses/secretlint.md index 35b018c2b45..0f805bef4ab 100644 --- a/docs/licenses/secretlint.md +++ b/docs/licenses/secretlint.md @@ -1,3 +1,8 @@ +--- +title: License info for secretlint within MegaLinter +search: + exclude: true +--- Copyright (c) 2020 azu Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/licenses/semgrep.md b/docs/licenses/semgrep.md new file mode 100644 index 00000000000..6f13abb8782 --- /dev/null +++ b/docs/licenses/semgrep.md @@ -0,0 +1,509 @@ +--- +title: License info for semgrep within MegaLinter +search: + exclude: true +--- + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/docs/licenses/sfdx-scanner-apex.md b/docs/licenses/sfdx-scanner-apex.md index 0a47b88ab4f..0adb4d7395b 100644 --- a/docs/licenses/sfdx-scanner-apex.md +++ b/docs/licenses/sfdx-scanner-apex.md @@ -1,3 +1,8 @@ +--- +title: License info for sfdx-scanner-apex within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2020 Michael Hoefer diff --git a/docs/licenses/sfdx-scanner-aura.md b/docs/licenses/sfdx-scanner-aura.md index 0a47b88ab4f..e7b3e43ad3f 100644 --- a/docs/licenses/sfdx-scanner-aura.md +++ b/docs/licenses/sfdx-scanner-aura.md @@ -1,3 +1,8 @@ +--- +title: License info for sfdx-scanner-aura within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2020 Michael Hoefer diff --git a/docs/licenses/sfdx-scanner-lwc.md b/docs/licenses/sfdx-scanner-lwc.md index 0a47b88ab4f..b48954c9dbc 100644 --- a/docs/licenses/sfdx-scanner-lwc.md +++ b/docs/licenses/sfdx-scanner-lwc.md @@ -1,3 +1,8 @@ +--- +title: License info for sfdx-scanner-lwc within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2020 Michael Hoefer diff --git a/docs/licenses/shellcheck.md b/docs/licenses/shellcheck.md new file mode 100644 index 00000000000..ef13bc9685c --- /dev/null +++ b/docs/licenses/shellcheck.md @@ -0,0 +1,679 @@ +--- +title: License info for shellcheck within MegaLinter +search: + exclude: true +--- + 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. + + + Copyright (C) + + 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: + + Copyright (C) + 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/licenses/shfmt.md b/docs/licenses/shfmt.md new file mode 100644 index 00000000000..8567ebb8762 --- /dev/null +++ b/docs/licenses/shfmt.md @@ -0,0 +1,32 @@ +--- +title: License info for shfmt within MegaLinter +search: + exclude: true +--- +Copyright (c) 2016, Daniel Martí. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/licenses/snakefmt.md b/docs/licenses/snakefmt.md new file mode 100644 index 00000000000..3e544a92455 --- /dev/null +++ b/docs/licenses/snakefmt.md @@ -0,0 +1,26 @@ +--- +title: License info for snakefmt within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2020 Michael Hall and Brice Letcher + +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/snakemake.md b/docs/licenses/snakemake.md index 063fe78d36a..5e23cfdd3bc 100644 --- a/docs/licenses/snakemake.md +++ b/docs/licenses/snakemake.md @@ -1,4 +1,9 @@ -Copyright (c) 2012-2019 Johannes Köster +--- +title: License info for snakemake within MegaLinter +search: + exclude: true +--- +Copyright (c) 2012-2022 Johannes Köster 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 diff --git a/docs/licenses/spectral.md b/docs/licenses/spectral.md index ba50e461e69..d0acdbb9197 100644 --- a/docs/licenses/spectral.md +++ b/docs/licenses/spectral.md @@ -1,3 +1,8 @@ +--- +title: License info for spectral within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ diff --git a/docs/licenses/sql-lint.md b/docs/licenses/sql-lint.md new file mode 100644 index 00000000000..5faf87c95da --- /dev/null +++ b/docs/licenses/sql-lint.md @@ -0,0 +1,26 @@ +--- +title: License info for sql-lint within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2019 Joe Reynolds + +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/sqlfluff.md b/docs/licenses/sqlfluff.md index 7b2a51c33ce..be7274c8075 100644 --- a/docs/licenses/sqlfluff.md +++ b/docs/licenses/sqlfluff.md @@ -1,3 +1,8 @@ +--- +title: License info for sqlfluff within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2018 Alan Cruickshank diff --git a/docs/licenses/standard.md b/docs/licenses/standard.md index c7e6852752b..1605e4c6fa0 100644 --- a/docs/licenses/standard.md +++ b/docs/licenses/standard.md @@ -1,3 +1,8 @@ +--- +title: License info for standard within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) Feross Aboukhadijeh diff --git a/docs/licenses/stylelint.md b/docs/licenses/stylelint.md index 58332c87ea1..e4f576a10b5 100644 --- a/docs/licenses/stylelint.md +++ b/docs/licenses/stylelint.md @@ -1,3 +1,8 @@ +--- +title: License info for stylelint within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2015 - present Maxime Thirouin, David Clark & Richard Hallows diff --git a/docs/licenses/swiftlint.md b/docs/licenses/swiftlint.md index 04203762763..84cfbfa5a71 100644 --- a/docs/licenses/swiftlint.md +++ b/docs/licenses/swiftlint.md @@ -1,3 +1,8 @@ +--- +title: License info for swiftlint within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2020 Realm Inc. diff --git a/docs/licenses/syft.md b/docs/licenses/syft.md new file mode 100644 index 00000000000..041721ab369 --- /dev/null +++ b/docs/licenses/syft.md @@ -0,0 +1,206 @@ +--- +title: License info for syft within MegaLinter +search: + exclude: true +--- + 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 [yyyy] [name of copyright owner] + + 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. diff --git a/docs/licenses/terraform-fmt.md b/docs/licenses/terraform-fmt.md index c33dcc7c928..be87e2bd6e3 100644 --- a/docs/licenses/terraform-fmt.md +++ b/docs/licenses/terraform-fmt.md @@ -1,3 +1,10 @@ +--- +title: License info for terraform-fmt within MegaLinter +search: + exclude: true +--- +Copyright (c) 2014 HashiCorp, Inc. + Mozilla Public License, version 2.0 1. Definitions diff --git a/docs/licenses/terragrunt.md b/docs/licenses/terragrunt.md index 3588a5524da..f8b5229a304 100644 --- a/docs/licenses/terragrunt.md +++ b/docs/licenses/terragrunt.md @@ -1,3 +1,8 @@ +--- +title: License info for terragrunt within MegaLinter +search: + exclude: true +--- The MIT License (MIT) Copyright (c) 2016 Gruntwork, LLC diff --git a/docs/licenses/terrascan.md b/docs/licenses/terrascan.md index 82894c5ac90..2a20a18b692 100644 --- a/docs/licenses/terrascan.md +++ b/docs/licenses/terrascan.md @@ -1,3 +1,8 @@ +--- +title: License info for terrascan within MegaLinter +search: + exclude: true +--- Apache License Version 2.0, January 2004 @@ -176,7 +181,7 @@ END OF TERMS AND CONDITIONS - Copyright 2020 Accurics, Inc. + Copyright 2022 Tenable, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/docs/licenses/tflint.md b/docs/licenses/tflint.md new file mode 100644 index 00000000000..b29d86603b3 --- /dev/null +++ b/docs/licenses/tflint.md @@ -0,0 +1,378 @@ +--- +title: License info for tflint within MegaLinter +search: + exclude: true +--- +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ + * * +* 6. Disclaimer of Warranty * +* ------------------------- * + * * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * + * * +************************************************************************ + +************************************************************************ + * * +* 7. Limitation of Liability * +* -------------------------- * + * * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * + * * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at . + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/docs/licenses/trivy.md b/docs/licenses/trivy.md new file mode 100644 index 00000000000..41f7b0d4d16 --- /dev/null +++ b/docs/licenses/trivy.md @@ -0,0 +1,206 @@ +--- +title: License info for trivy within MegaLinter +search: + exclude: true +--- + 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 [yyyy] [name of copyright owner] + + 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. diff --git a/docs/licenses/tsqllint.md b/docs/licenses/tsqllint.md index 42b8aee70bc..0a229f0e073 100644 --- a/docs/licenses/tsqllint.md +++ b/docs/licenses/tsqllint.md @@ -1,3 +1,8 @@ +--- +title: License info for tsqllint within MegaLinter +search: + exclude: true +--- MIT License Copyright (c) 2017 Nathan Boyd and Douglas Wilson diff --git a/docs/licenses/v8r.md b/docs/licenses/v8r.md new file mode 100644 index 00000000000..d22643b7cc2 --- /dev/null +++ b/docs/licenses/v8r.md @@ -0,0 +1,26 @@ +--- +title: License info for v8r within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2020 chris48s + +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/vale.md b/docs/licenses/vale.md new file mode 100644 index 00000000000..e9872a9184c --- /dev/null +++ b/docs/licenses/vale.md @@ -0,0 +1,26 @@ +--- +title: License info for vale within MegaLinter +search: + exclude: true +--- +MIT License + +Copyright (c) 2016 Joseph Kato + +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/yamllint.md b/docs/licenses/yamllint.md index fd270680795..f7a1a68a3ea 100644 --- a/docs/licenses/yamllint.md +++ b/docs/licenses/yamllint.md @@ -1,7 +1,12 @@ +--- +title: License info for yamllint within MegaLinter +search: + exclude: true +--- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + 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. @@ -645,7 +650,7 @@ the "copyright" line and a pointer to where the full notice is found. 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 . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +669,11 @@ 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 a96fcb32b0c..5cc9fd343fa 100644 --- a/docs/mega-linter-vs-super-linter.md +++ b/docs/mega-linter-vs-super-linter.md @@ -10,6 +10,12 @@ description: Detailed differences between MegaLinter and SuperLinter (performanc The hard-fork of Super-Linter to be rewritten in Python isn't just a language switch: use of python flexibility and libraries allowed to define lots of additional functions described below +## Security + +MegaLinter [hides many environment variables](config-variables-security.md) when calling the linters. + +That way you need to trust only MegaLinter core code with your secrets, not the 100+ embedded linters ! + ## Performances - [MegaLinter Flavors](flavors.md) allow to use **smaller docker images**, so the pull time is reduced @@ -22,7 +28,7 @@ The hard-fork of Super-Linter to be rewritten in Python isn't just a language sw ## Automatically apply formatting and fixes -MegaLinter can [**automatically apply fixes performed by linters**](configuration.md#apply-fixes), and **push them to the same branch**, or **create a Pull Request** that you can validate +MegaLinter can [**automatically apply fixes performed by linters**](config-apply-fixes.md), and **push them to the same branch**, or **create a Pull Request** that you can validate This is pretty handy, especially for linter errors related to formatting (in that case, you don't have any manual update to perform) diff --git a/docs/plugins.md b/docs/plugins.md index 132b38cabae..85cace67962 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -8,11 +8,27 @@ description: Build and use your own plugins for MegaLinter, like jupyfmt, nitpic # Plugins -For security reasons, we try to embed in MegaLinter only linters that are widely adopted by open-source community. +For performances and security reasons, we can not embed all linters of the world within MegaLinter. -But any linter can be callable within MegaLinter thanks to the plugin mechanism ! +But our core architecture allows to build and publish MegaLinter Plugins ! -## Use plugins +## External Plugins Catalog + + +| Name | Description | Author | Raw URL | +|:--------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [**jupyfmt**](https://github.com/kpj/jupyfmt#mega-linter-integration) | The uncompromising Jupyter notebook formatter | [Kim Philipp Jablonski](https://github.com/kpj) | [Descriptor](https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml) | +| [**linkcheck**](https://github.com/shiranr/linkcheck) | Plugin to check and validate markdown links exist and working | [Shiran Rubin](https://github.com/shiranr) | [Descriptor](https://raw.githubusercontent.com/shiranr/linkcheck/main/mega-linter-plugin-linkcheck/linkcheck.megalinter-descriptor.yml) | +| [**nitpick**](https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin) | Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects | [W. Augusto Andreoli](https://github.com/andreoliwa) | [Descriptor](https://raw.githubusercontent.com/andreoliwa/nitpick/master/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml) | +| [**mustache**](https://github.com/one-acre-fund/mega-linter-plugin-logstash) | Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) | [Yann Jouanique](https://github.com/Yann-J) | [Descriptor](https://raw.githubusercontent.com/one-acre-fund/mega-linter-plugin-logstash/main/mega-linter-plugin-logstash/logstash.megalinter-descriptor.yml) | +| [**salt-lint**](https://github.com/ssc-services/mega-linter-plugin-salt) | Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. | [Joachim Grimm](https://github.com/grimmjo) | [Descriptor](https://raw.githubusercontent.com/ssc-services/mega-linter-plugin-salt/main/mega-linter-plugin-salt/salt.megalinter-descriptor.yml) | + + +> Note: Using an external plugin means you trust its author + +Submit a Pull Request if you want your plugin to appear here :) + +## Use external plugins Add plugin URLs in `PLUGINS` property of `.mega-linter.yml`. URLs must either begin with "https://" or take the form of "file://\", where \ points to a valid plugin descriptor file. @@ -22,22 +38,11 @@ Add plugin URLs in `PLUGINS` property of `.mega-linter.yml`. URLs must either be ```yaml PLUGINS: - - https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml - - https://raw.githubusercontent.com/cookiejar/mega-linter-plugin-cookietemple/main/cookietemple.megalinter-descriptor.yml + - https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml - file://.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml ``` -## Plugins Catalog - -- [jupyfmt](https://github.com/kpj/jupyfmt): The uncompromising Jupyter notebook formatter ([usage](https://github.com/kpj/jupyfmt#mega-linter-integration)) -- [linkcheck](https://github.com/shiranr/linkcheck): Plugin to check and validate markdown links exist and working. -- [nitpick](https://github.com/andreoliwa/nitpick): Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects. ([usage](https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin)) -- [mustache](https://github.com/one-acre-fund/mega-linter-plugin-logstash): Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) -- [salt-lint](https://github.com/ssc-services/mega-linter-plugin-salt): Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. - -Submit a PR if you want your plugin to appear here :) - -## Create plugins +## Create your own plugin You can implement your own descriptors and load them as plugins during MegaLinter runtime diff --git a/docs/quick-start.md b/docs/quick-start.md index 34330feb9c2..d63b75f2ccd 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -16,9 +16,9 @@ description: Setup MegaLinter in 5 minutes thanks to its assisted installation t **Notes**: -- This repo is a hard-fork of [GitHub Super-Linter](https://github.com/github/super-linter), rewritten in python to add [lots of additional features](mega-linter-vs-super-linter.md) -- If you are a Super-Linter user, you can transparently **switch to MegaLinter and keep the same configuration** (just replace `github/super-linter@v3` by `oxsecurity/megalinter@v6` in your GitHub Action YML file, [like on this PR](https://github.com/nvuillam/npm-groovy-lint/pull/109)) -- If you want to use MegaLinter extra features (recommended), please take 5 minutes to use [MegaLinter assisted installation](installation.md) +- This repo is a hard-fork of [GitHub Super-Linter](https://github.com/super-linter/super-linter), rewritten in python to add [lots of additional features](mega-linter-vs-super-linter.md) +- If you are a Super-Linter user, you can transparently **switch to MegaLinter and keep the same configuration** (just replace `super-linter/super-linter@v3` by `oxsecurity/megalinter@v7` in your GitHub Action YML file, [like on this PR](https://github.com/nvuillam/npm-groovy-lint/pull/109)) +- If you want to use MegaLinter extra features (recommended), please take 5 minutes to use [MegaLinter assisted installation](install-assisted.md) - For a hand-holdy example of getting started with mega-linter check out [this blog post](https://ayyjohn.com/posts/linting-a-jekyll-blog-with-mega-linter) by Alec Johnson diff --git a/docs/reporters/AzureCommentReporter.md b/docs/reporters/AzureCommentReporter.md index 1a1feb9e10e..4b99a43f469 100644 --- a/docs/reporters/AzureCommentReporter.md +++ b/docs/reporters/AzureCommentReporter.md @@ -25,7 +25,7 @@ Example: --env-file <(env | grep -e SYSTEM_ -e BUILD_ -e TF_ -e AGENT_) \ -e SYSTEM_ACCESSTOKEN=$(System.AccessToken) \ -e GIT_AUTHORIZATION_BEARER=$(System.AccessToken) \ - oxsecurity/megalinter:v6 + oxsecurity/megalinter:v7 displayName: Run MegaLinter ``` diff --git a/docs/special-thanks.md b/docs/special-thanks.md index 50ebb896916..608e96bedc6 100644 --- a/docs/special-thanks.md +++ b/docs/special-thanks.md @@ -8,6 +8,15 @@ description: List of all contributors, websites and linters that help MegaLinter # Special thanks +## Maintainers + +MegaLinter wouldn't be what it is without its great team of maintainers ! + +- [Kurt Von Laven](https://github.com/Kurt-von-Laven) +- [Borja Dominguez](https://github.com/bdovaz) +- [Edouard Choiniere](https://github.com/echoix) +- [Nicolas Vuillamy](https://github.com/nvuillam) (Creator) + ## Contributors @@ -20,8 +29,8 @@ MegaLinter obviously would not exist without its linters and libraries, so many ## Super-Linter team -MegaLinter has been built on the ashes of a [rejected Pull Request](https://github.com/github/super-linter/pull/791){target=_blank} on [GitHub Super-Linter](https://github.com/github/super-linter){target=_blank}. +MegaLinter has been built on the ashes of a [rejected Pull Request](https://github.com/super-linter/super-linter/pull/791){target=_blank} on [GitHub Super-Linter](https://github.com/super-linter/super-linter){target=_blank}. -Even if I disagree with their decision to remain in bash, the core team has always been nice and supporting [during the time I was a Super-Linter contributor](https://github.com/github/super-linter/pulls?q=is%3Apr+is%3Aclosed+author%3Anvuillam+review%3Aapproved){target=_blank} :) +Even if I disagree with their decision to remain in bash, the core team has always been nice and supporting [during the time I was a Super-Linter contributor](https://github.com/super-linter/super-linter/pulls?q=is%3Apr+is%3Aclosed+author%3Anvuillam+review%3Aapproved){target=_blank} :) diff --git a/docs/sponsor.md b/docs/sponsor.md index 9141a0ad72b..77f675b2b03 100644 --- a/docs/sponsor.md +++ b/docs/sponsor.md @@ -4,7 +4,7 @@ description: Help MegaLinter open-source by sponsoring it --- # Sponsoring -I maintain MegaLinter as a hobby, but when I'm not working on my [job as Hardis Group SFDC CTO](https://www.linkedin.com/in/nicolas-vuillamy/), I also have other hobbys like tasting good beers :) +I maintain MegaLinter as a hobby, but when I'm not working on my [job as CTO at Cloudity](https://www.linkedin.com/in/nicolas-vuillamy/), I also have other hobbys like tasting good beers :) So if you like MegaLinter and want to support me with one or several beers a month, please have a look a my [Github Sponsoring Page](https://github.com/sponsors/nvuillam) diff --git a/docs/standalone-linters.md b/docs/standalone-linters.md index bfe4f5a2ba4..432c138b910 100644 --- a/docs/standalone-linters.md +++ b/docs/standalone-linters.md @@ -78,10 +78,14 @@ | 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_GIT_DIFF | oxsecurity/megalinter-only-repository_git_diff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_git_diff/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_GRYPE | oxsecurity/megalinter-only-repository_grype:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_grype/beta) | +| REPOSITORY_KICS | oxsecurity/megalinter-only-repository_kics:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_kics/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) | +| REPOSITORY_TRIVY_SBOM | oxsecurity/megalinter-only-repository_trivy_sbom:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy_sbom/beta) | +| REPOSITORY_TRUFFLEHOG | oxsecurity/megalinter-only-repository_trufflehog:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trufflehog/beta) | | RST_RST_LINT | oxsecurity/megalinter-only-rst_rst_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rst_lint/beta) | | RST_RSTCHECK | oxsecurity/megalinter-only-rst_rstcheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstcheck/beta) | | RST_RSTFMT | oxsecurity/megalinter-only-rst_rstfmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstfmt/beta) | @@ -96,6 +100,7 @@ | SPELL_CSPELL | oxsecurity/megalinter-only-spell_cspell:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_cspell/beta) | | SPELL_PROSELINT | oxsecurity/megalinter-only-spell_proselint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_proselint/beta) | | SPELL_VALE | oxsecurity/megalinter-only-spell_vale:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_vale/beta) | +| SPELL_LYCHEE | oxsecurity/megalinter-only-spell_lychee:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_lychee/beta) | | SQL_SQL_LINT | oxsecurity/megalinter-only-sql_sql_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sql_lint/beta) | | SQL_SQLFLUFF | oxsecurity/megalinter-only-sql_sqlfluff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sqlfluff/beta) | | SQL_TSQLLINT | oxsecurity/megalinter-only-sql_tsqllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_tsqllint/beta) | @@ -105,7 +110,6 @@ | 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_TERRAGRUNT | oxsecurity/megalinter-only-terraform_terragrunt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terragrunt/beta) | | TERRAFORM_TERRAFORM_FMT | oxsecurity/megalinter-only-terraform_terraform_fmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terraform_fmt/beta) | -| TERRAFORM_KICS | oxsecurity/megalinter-only-terraform_kics:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_kics/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) | | TYPESCRIPT_STANDARD | oxsecurity/megalinter-only-typescript_standard:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_standard/beta) | diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index ae1cf6ee6b3..0029966ce8d 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -22,6 +22,26 @@ display: table; } +/* light mode table header bgcolor */ +.md-typeset__table th { + background-color: #f2edfe; +} + +/* dark mode table header bgcolor */ +[data-md-color-scheme="slate"] .md-typeset__table th { + background-color: hsla(var(--md-hue),25%,25%,1) +} + +/* light mode alternating table bg colors */ +.md-typeset__table tr:nth-child(2n) { + background-color: #f8f8f8; +} + +/* dark mode alternating table bg colors */ +[data-md-color-scheme="slate"] .md-typeset__table tr:nth-child(2n) { + background-color: hsla(var(--md-hue),25%,25%,1) +} + h1[content~=Home] { display: none; } @@ -50,4 +70,7 @@ h1[content~=Home] { --md-footer-bg-color: #B95CE4; -} \ No newline at end of file + --md-typeset-table-color--light: #fff5fb; + +} + diff --git a/docs/supported-linters.md b/docs/supported-linters.md index 82cce34287b..8f21bed78b8 100644 --- a/docs/supported-linters.md +++ b/docs/supported-linters.md @@ -27,7 +27,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**C#** (CSHARP)](descriptors/csharp.md) | [**dotnet-format**](descriptors/csharp_dotnet_format.md)
[_CSHARP_DOTNET_FORMAT_](descriptors/csharp_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | | | [**C#** (CSHARP)](descriptors/csharp.md) | [**csharpier**](descriptors/csharp_csharpier.md)
[_CSHARP_CSHARPIER_](descriptors/csharp_csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**DART**](descriptors/dart.md) | [**dartanalyzer**](descriptors/dart_dartanalyzer.md)
[_DART_DARTANALYZER_](descriptors/dart_dartanalyzer.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | -| | [**GO**](descriptors/go.md) | [**golangci-lint**](descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](descriptors/go.md) | [**golangci-lint**](descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](descriptors/go.md) | [**revive**](descriptors/go_revive.md)
[_GO_REVIVE_](descriptors/go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**GROOVY**](descriptors/groovy.md) | [**npm-groovy-lint**](descriptors/groovy_npm_groovy_lint.md)
[_GROOVY_NPM_GROOVY_LINT_](descriptors/groovy_npm_groovy_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**JAVA**](descriptors/java.md) | [**checkstyle**](descriptors/java_checkstyle.md)
[_JAVA_CHECKSTYLE_](descriptors/java_checkstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -65,10 +65,10 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**SQL**](descriptors/sql.md) | [**sql-lint**](descriptors/sql_sql_lint.md)
[_SQL_SQL_LINT_](descriptors/sql_sql_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | | | [**SQL**](descriptors/sql.md) | [**sqlfluff**](descriptors/sql_sqlfluff.md)
[_SQL_SQLFLUFF_](descriptors/sql_sqlfluff.md) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | | | [**SQL**](descriptors/sql.md) | [**tsqllint**](descriptors/sql_tsqllint.md)
[_SQL_TSQLLINT_](descriptors/sql_tsqllint.md) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | -| | [**SWIFT**](descriptors/swift.md) | [**swiftlint**](descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](descriptors/swift_swiftlint.md) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SWIFT**](descriptors/swift.md) | [**swiftlint**](descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](descriptors/swift_swiftlint.md) | [![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) | [**eslint**](descriptors/tsx_eslint.md)
[_TSX_ESLINT_](descriptors/tsx_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**TYPESCRIPT**](descriptors/typescript.md) | [**eslint**](descriptors/typescript_eslint.md)
[_TYPESCRIPT_ES_](descriptors/typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TYPESCRIPT**](descriptors/typescript.md) | [**standard**](descriptors/typescript_standard.md)
[_TYPESCRIPT_STANDARD_](descriptors/typescript_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TYPESCRIPT**](descriptors/typescript.md) | [**ts-standard**](descriptors/typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](descriptors/typescript_ts_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](descriptors/typescript.md) | [**prettier**](descriptors/typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](descriptors/typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md) | [**dotnet-format**](descriptors/vbdotnet_dotnet_format.md)
[_VBDOTNET_DOTNET_FORMAT_](descriptors/vbdotnet_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | @@ -103,47 +103,51 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ## Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | -| | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | -| | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | -| | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](descriptors/gherkin_gherkin_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | -| | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | -| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](descriptors/tekton_tekton_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**tflint**](descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](descriptors/terraform_tflint.md) | [![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) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**terrascan**](descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**terragrunt**](descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](descriptors/terraform_terragrunt.md) | [![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**](descriptors/terraform.md) | [**terraform-fmt**](descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | -| | [**TERRAFORM**](descriptors/terraform.md) | [**kics**](descriptors/terraform_kics.md)
[_TERRAFORM_KICS_](descriptors/terraform_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](descriptors/gherkin_gherkin_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](descriptors/tekton_tekton_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**tflint**](descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](descriptors/terraform_tflint.md) | [![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) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**terrascan**](descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](descriptors/terraform.md) | [**terragrunt**](descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](descriptors/terraform_terragrunt.md) | [![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**](descriptors/terraform.md) | [**terraform-fmt**](descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | ## Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](descriptors/copypaste.md) | [**jscpd**](descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](descriptors/copypaste_jscpd.md) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | -| | [**REPOSITORY**](descriptors/repository.md) | [**checkov**](descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**devskim**](descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](descriptors/repository_devskim.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**dustilock**](descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**git_diff**](descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](descriptors/repository.md) | [**gitleaks**](descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**secretlint**](descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**semgrep**](descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**syft**](descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](descriptors/repository.md) | [**trivy**](descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](descriptors/repository_trivy.md) | [![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) | [**cspell**](descriptors/spell_cspell.md)
[_SPELL_CSPELL_](descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](descriptors/spell.md) | [**proselint**](descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](descriptors/spell.md) | [**vale**](descriptors/spell_vale.md)
[_SPELL_VALE_](descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](descriptors/copypaste.md) | [**jscpd**](descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](descriptors/copypaste_jscpd.md) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](descriptors/repository.md) | [**checkov**](descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**devskim**](descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](descriptors/repository_devskim.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**dustilock**](descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**git_diff**](descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](descriptors/repository.md) | [**gitleaks**](descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**grype**](descriptors/repository_grype.md)
[_REPOSITORY_GRYPE_](descriptors/repository_grype.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**kics**](descriptors/repository_kics.md)
[_REPOSITORY_KICS_](descriptors/repository_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**secretlint**](descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**semgrep**](descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**syft**](descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trivy**](descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](descriptors/repository_trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trivy-sbom**](descriptors/repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](descriptors/repository_trivy_sbom.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](descriptors/repository.md) | [**trufflehog**](descriptors/repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](descriptors/repository_trufflehog.md) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](descriptors/spell.md) | [**cspell**](descriptors/spell_cspell.md)
[_SPELL_CSPELL_](descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](descriptors/spell.md) | [**proselint**](descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](descriptors/spell.md) | [**vale**](descriptors/spell_vale.md)
[_SPELL_VALE_](descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](descriptors/spell.md) | [**lychee**](descriptors/spell_lychee.md)
[_SPELL_LYCHEE_](descriptors/spell_lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/docs/used-by-stats.md b/docs/used-by-stats.md index 554317c88d6..5d7fb70c0cf 100644 --- a/docs/used-by-stats.md +++ b/docs/used-by-stats.md @@ -1,332 +1,358 @@ # Dependents stats for oxsecurity/megalinter -[![](https://img.shields.io/static/v1?label=Used%20by&message=2328&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=1560&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=768&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=61804&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by&message=2595&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=1759&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=836&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=66176&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/network/dependents) | Repository | Stars | |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------:| -| [nektos/act](https://github.com/nektos/act) | 38232 | -| [PRQL/prql](https://github.com/PRQL/prql) | 7117 | -| [stepancheg/rust-protobuf](https://github.com/stepancheg/rust-protobuf) | 2417 | -| [PowerDNS-Admin/PowerDNS-Admin](https://github.com/PowerDNS-Admin/PowerDNS-Admin) | 1998 | -| [IlanCosman/tide](https://github.com/IlanCosman/tide) | 1991 | -| [dorssel/usbipd-win](https://github.com/dorssel/usbipd-win) | 1967 | -| [microsoft/code-with-engineering-playbook](https://github.com/microsoft/code-with-engineering-playbook) | 1684 | -| [oxsecurity/megalinter](https://github.com/oxsecurity/megalinter) | 1257 | -| [ever-co/ever-gauzy](https://github.com/ever-co/ever-gauzy) | 1154 | -| [flosse/sloc](https://github.com/flosse/sloc) | 931 | -| [unixorn/git-extra-commands](https://github.com/unixorn/git-extra-commands) | 871 | -| [unixorn/zsh-quickstart-kit](https://github.com/unixorn/zsh-quickstart-kit) | 641 | -| [secureCodeBox/secureCodeBox](https://github.com/secureCodeBox/secureCodeBox) | 590 | -| [awslabs/aws-deployment-framework](https://github.com/awslabs/aws-deployment-framework) | 562 | -| [Romanitho/Winget-AutoUpdate](https://github.com/Romanitho/Winget-AutoUpdate) | 507 | -| [cattle-ops/terraform-aws-gitlab-runner](https://github.com/cattle-ops/terraform-aws-gitlab-runner) | 491 | -| [practicalli/clojure-cli-config](https://github.com/practicalli/clojure-cli-config) | 458 | -| [meichthys/foss_photo_libraries](https://github.com/meichthys/foss_photo_libraries) | 425 | -| [ruzickap/packer-templates](https://github.com/ruzickap/packer-templates) | 377 | -| [llaville/php-compatinfo](https://github.com/llaville/php-compatinfo) | 362 | -| [xUnholy/k8s-gitops](https://github.com/xUnholy/k8s-gitops) | 336 | -| [ministryofjustice/modernisation-platform](https://github.com/ministryofjustice/modernisation-platform) | 315 | -| [bjw-s/home-ops](https://github.com/bjw-s/home-ops) | 305 | -| [ahmadnassri/action-dependabot-auto-merge](https://github.com/ahmadnassri/action-dependabot-auto-merge) | 303 | -| [OCSInventory-NG/OCSInventory-Server](https://github.com/OCSInventory-NG/OCSInventory-Server) | 301 | -| [scolladon/sfdx-git-delta](https://github.com/scolladon/sfdx-git-delta) | 299 | -| [leosuncin/nest-auth-example](https://github.com/leosuncin/nest-auth-example) | 264 | -| [OCSInventory-NG/OCSInventory-ocsreports](https://github.com/OCSInventory-NG/OCSInventory-ocsreports) | 197 | -| [toboshii/home-ops](https://github.com/toboshii/home-ops) | 187 | -| [pantheon-systems/documentation](https://github.com/pantheon-systems/documentation) | 179 | -| [unixorn/fzf-zsh-plugin](https://github.com/unixorn/fzf-zsh-plugin) | 154 | -| [carpenike/k8s-gitops](https://github.com/carpenike/k8s-gitops) | 149 | -| [unixorn/tumult.plugin.zsh](https://github.com/unixorn/tumult.plugin.zsh) | 148 | -| [nvuillam/npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | 145 | -| [apigee/devrel](https://github.com/apigee/devrel) | 137 | -| [T145/black-mirror](https://github.com/T145/black-mirror) | 136 | -| [Luzkan/smells](https://github.com/Luzkan/smells) | 134 | -| [newrelic/newrelic-python-agent](https://github.com/newrelic/newrelic-python-agent) | 130 | -| [cbg-ethz/V-pipe](https://github.com/cbg-ethz/V-pipe) | 106 | -| [philips-software/amp-embedded-infra-lib](https://github.com/philips-software/amp-embedded-infra-lib) | 98 | -| [brettinternet/homelab](https://github.com/brettinternet/homelab) | 98 | -| [practicalli/spacemacs](https://github.com/practicalli/spacemacs) | 97 | -| [oasisprotocol/oasis-wallet-web](https://github.com/oasisprotocol/oasis-wallet-web) | 91 | -| [unixorn/lima-xbar-plugin](https://github.com/unixorn/lima-xbar-plugin) | 81 | -| [Azure/ARO-RP](https://github.com/Azure/ARO-RP) | 80 | -| [rasa/scoops](https://github.com/rasa/scoops) | 71 | -| [practicalli/clojure](https://github.com/practicalli/clojure) | 64 | -| [szinn/k8s-homelab](https://github.com/szinn/k8s-homelab) | 64 | -| [hardisgroupcom/sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis) | 62 | +| [nektos/act](https://github.com/nektos/act) | 40077 | +| [PRQL/prql](https://github.com/PRQL/prql) | 7231 | +| [stepancheg/rust-protobuf](https://github.com/stepancheg/rust-protobuf) | 2468 | +| [dorssel/usbipd-win](https://github.com/dorssel/usbipd-win) | 2148 | +| [IlanCosman/tide](https://github.com/IlanCosman/tide) | 2071 | +| [PowerDNS-Admin/PowerDNS-Admin](https://github.com/PowerDNS-Admin/PowerDNS-Admin) | 2049 | +| [microsoft/code-with-engineering-playbook](https://github.com/microsoft/code-with-engineering-playbook) | 1747 | +| [oxsecurity/megalinter](https://github.com/oxsecurity/megalinter) | 1352 | +| [ever-co/ever-gauzy](https://github.com/ever-co/ever-gauzy) | 1253 | +| [flosse/sloc](https://github.com/flosse/sloc) | 935 | +| [unixorn/git-extra-commands](https://github.com/unixorn/git-extra-commands) | 894 | +| [unixorn/zsh-quickstart-kit](https://github.com/unixorn/zsh-quickstart-kit) | 659 | +| [secureCodeBox/secureCodeBox](https://github.com/secureCodeBox/secureCodeBox) | 606 | +| [awslabs/aws-deployment-framework](https://github.com/awslabs/aws-deployment-framework) | 577 | +| [ministryofjustice/modernisation-platform](https://github.com/ministryofjustice/modernisation-platform) | 568 | +| [Romanitho/Winget-AutoUpdate](https://github.com/Romanitho/Winget-AutoUpdate) | 551 | +| [meichthys/foss_photo_libraries](https://github.com/meichthys/foss_photo_libraries) | 530 | +| [cattle-ops/terraform-aws-gitlab-runner](https://github.com/cattle-ops/terraform-aws-gitlab-runner) | 504 | +| [practicalli/clojure-cli-config](https://github.com/practicalli/clojure-cli-config) | 463 | +| [ruzickap/packer-templates](https://github.com/ruzickap/packer-templates) | 388 | +| [llaville/php-compatinfo](https://github.com/llaville/php-compatinfo) | 363 | +| [xUnholy/k8s-gitops](https://github.com/xUnholy/k8s-gitops) | 360 | +| [bjw-s/home-ops](https://github.com/bjw-s/home-ops) | 337 | +| [scolladon/sfdx-git-delta](https://github.com/scolladon/sfdx-git-delta) | 314 | +| [ahmadnassri/action-dependabot-auto-merge](https://github.com/ahmadnassri/action-dependabot-auto-merge) | 309 | +| [OCSInventory-NG/OCSInventory-Server](https://github.com/OCSInventory-NG/OCSInventory-Server) | 306 | +| [leosuncin/nest-auth-example](https://github.com/leosuncin/nest-auth-example) | 280 | +| [neon-mmd/websurfx](https://github.com/neon-mmd/websurfx) | 211 | +| [OCSInventory-NG/OCSInventory-ocsreports](https://github.com/OCSInventory-NG/OCSInventory-ocsreports) | 207 | +| [toboshii/home-ops](https://github.com/toboshii/home-ops) | 199 | +| [pantheon-systems/documentation](https://github.com/pantheon-systems/documentation) | 180 | +| [unixorn/fzf-zsh-plugin](https://github.com/unixorn/fzf-zsh-plugin) | 175 | +| [carpenike/k8s-gitops](https://github.com/carpenike/k8s-gitops) | 162 | +| [nvuillam/npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | 153 | +| [unixorn/tumult.plugin.zsh](https://github.com/unixorn/tumult.plugin.zsh) | 152 | +| [Luzkan/smells](https://github.com/Luzkan/smells) | 147 | +| [T145/black-mirror](https://github.com/T145/black-mirror) | 145 | +| [apigee/devrel](https://github.com/apigee/devrel) | 143 | +| [newrelic/newrelic-python-agent](https://github.com/newrelic/newrelic-python-agent) | 133 | +| [brettinternet/homelab](https://github.com/brettinternet/homelab) | 110 | +| [cbg-ethz/V-pipe](https://github.com/cbg-ethz/V-pipe) | 108 | +| [philips-software/amp-embedded-infra-lib](https://github.com/philips-software/amp-embedded-infra-lib) | 104 | +| [practicalli/spacemacs](https://github.com/practicalli/spacemacs) | 101 | +| [oasisprotocol/oasis-wallet-web](https://github.com/oasisprotocol/oasis-wallet-web) | 94 | +| [unixorn/lima-xbar-plugin](https://github.com/unixorn/lima-xbar-plugin) | 87 | +| [Azure/ARO-RP](https://github.com/Azure/ARO-RP) | 81 | +| [IQEngine/IQEngine](https://github.com/IQEngine/IQEngine) | 79 | +| [szinn/k8s-homelab](https://github.com/szinn/k8s-homelab) | 75 | +| [rasa/scoops](https://github.com/rasa/scoops) | 74 | +| [Quantum-Accelerators/quacc](https://github.com/Quantum-Accelerators/quacc) | 72 | +| [hardisgroupcom/sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis) | 69 | +| [0dragosh/homelab](https://github.com/0dragosh/homelab) | 69 | +| [practicalli/clojure](https://github.com/practicalli/clojure) | 68 | +| [davidB/tracing-opentelemetry-instrumentation-sdk](https://github.com/davidB/tracing-opentelemetry-instrumentation-sdk) | 60 | | [nvuillam/vscode-groovy-lint](https://github.com/nvuillam/vscode-groovy-lint) | 60 | -| [0dragosh/homelab](https://github.com/0dragosh/homelab) | 57 | -| [unixorn/warhol.plugin.zsh](https://github.com/unixorn/warhol.plugin.zsh) | 55 | +| [unixorn/warhol.plugin.zsh](https://github.com/unixorn/warhol.plugin.zsh) | 56 | +| [ahmadnassri/docker-vscode-server](https://github.com/ahmadnassri/docker-vscode-server) | 55 | +| [llaville/umlwriter](https://github.com/llaville/umlwriter) | 54 | | [ahmadnassri/node-glob-promise](https://github.com/ahmadnassri/node-glob-promise) | 53 | -| [davidB/axum-tracing-opentelemetry](https://github.com/davidB/axum-tracing-opentelemetry) | 52 | -| [llaville/umlwriter](https://github.com/llaville/umlwriter) | 52 | -| [stepancheg/rust-tls-api](https://github.com/stepancheg/rust-tls-api) | 49 | -| [Azure/benchpress](https://github.com/Azure/benchpress) | 44 | -| [nvuillam/sfdx-essentials](https://github.com/nvuillam/sfdx-essentials) | 42 | -| [ahmadnassri/docker-vscode-server](https://github.com/ahmadnassri/docker-vscode-server) | 42 | +| [stepancheg/rust-tls-api](https://github.com/stepancheg/rust-tls-api) | 50 | +| [Azure/benchpress](https://github.com/Azure/benchpress) | 47 | +| [nvuillam/sfdx-essentials](https://github.com/nvuillam/sfdx-essentials) | 45 | | [FaserF/hassio-addons](https://github.com/FaserF/hassio-addons) | 40 | -| [jr0dd/home-ops](https://github.com/jr0dd/home-ops) | 38 | -| [Amplitude-Developer-Docs/amplitude-dev-center](https://github.com/Amplitude-Developer-Docs/amplitude-dev-center) | 34 | -| [MythicDrops/MythicDrops](https://github.com/MythicDrops/MythicDrops) | 31 | -| [leosuncin/nest-typeorm-custom-repository](https://github.com/leosuncin/nest-typeorm-custom-repository) | 31 | -| [philips-software/amp-devcontainer](https://github.com/philips-software/amp-devcontainer) | 31 | +| [Amplitude-Developer-Docs/amplitude-dev-center](https://github.com/Amplitude-Developer-Docs/amplitude-dev-center) | 40 | +| [jr0dd/home-ops](https://github.com/jr0dd/home-ops) | 40 | +| [MythicDrops/MythicDrops](https://github.com/MythicDrops/MythicDrops) | 34 | +| [philips-software/amp-devcontainer](https://github.com/philips-software/amp-devcontainer) | 34 | +| [leosuncin/nest-typeorm-custom-repository](https://github.com/leosuncin/nest-typeorm-custom-repository) | 33 | +| [apigee/terraform-modules](https://github.com/apigee/terraform-modules) | 33 | +| [nvuillam/github-dependents-info](https://github.com/nvuillam/github-dependents-info) | 33 | +| [hardisgroupcom/vscode-sfdx-hardis](https://github.com/hardisgroupcom/vscode-sfdx-hardis) | 32 | +| [ahmadnassri/action-workflow-queue](https://github.com/ahmadnassri/action-workflow-queue) | 31 | | [OperationCode/operationcode-pybot](https://github.com/OperationCode/operationcode-pybot) | 31 | -| [5ire-org/5ire-faucet](https://github.com/5ire-org/5ire-faucet) | 28 | -| [nvuillam/node-java-caller](https://github.com/nvuillam/node-java-caller) | 27 | -| [apigee/terraform-modules](https://github.com/apigee/terraform-modules) | 27 | -| [hardisgroupcom/vscode-sfdx-hardis](https://github.com/hardisgroupcom/vscode-sfdx-hardis) | 26 | -| [kitos9112/k8s-home](https://github.com/kitos9112/k8s-home) | 26 | +| [ZEISS/libczi](https://github.com/ZEISS/libczi) | 30 | +| [nvuillam/node-java-caller](https://github.com/nvuillam/node-java-caller) | 29 | +| [ministryofjustice/modernisation-platform-environments](https://github.com/ministryofjustice/modernisation-platform-environments) | 28 | +| [HariSekhon/GitHub-Actions](https://github.com/HariSekhon/GitHub-Actions) | 26 | +| [leosuncin/nest-api-example](https://github.com/leosuncin/nest-api-example) | 26 | +| [kitos9112/k8s-home](https://github.com/kitos9112/k8s-home) | 25 | +| [unixorn/docker-helpers.zshplugin](https://github.com/unixorn/docker-helpers.zshplugin) | 25 | +| [microsoft/OHDSIonAzure](https://github.com/microsoft/OHDSIonAzure) | 25 | | [rwaltr/home-ops](https://github.com/rwaltr/home-ops) | 25 | -| [ZEISS/libczi](https://github.com/ZEISS/libczi) | 25 | | [ahmadnassri/node-pretty-exceptions](https://github.com/ahmadnassri/node-pretty-exceptions) | 25 | | [ahmadnassri/node-api-problem](https://github.com/ahmadnassri/node-api-problem) | 25 | | [MoegirlPediaInterfaceAdmins/MoegirlPediaInterfaceCodes](https://github.com/MoegirlPediaInterfaceAdmins/MoegirlPediaInterfaceCodes) | 24 | -| [unixorn/docker-helpers.zshplugin](https://github.com/unixorn/docker-helpers.zshplugin) | 24 | -| [arbitraryexecution/forta-bot-templates](https://github.com/arbitraryexecution/forta-bot-templates) | 23 | -| [AErmie/DevSecOps](https://github.com/AErmie/DevSecOps) | 23 | -| [nvuillam/github-dependents-info](https://github.com/nvuillam/github-dependents-info) | 23 | -| [unixorn/ha-mqtt-discoverable](https://github.com/unixorn/ha-mqtt-discoverable) | 22 | -| [HariSekhon/GitHub-Actions](https://github.com/HariSekhon/GitHub-Actions) | 22 | -| [gluwa/creditcoin](https://github.com/gluwa/creditcoin) | 22 | +| [arbitraryexecution/forta-bot-templates](https://github.com/arbitraryexecution/forta-bot-templates) | 24 | +| [AErmie/DevSecOps](https://github.com/AErmie/DevSecOps) | 24 | +| [sierrafoxtrot/srecord](https://github.com/sierrafoxtrot/srecord) | 24 | +| [ahmadnassri/action-terraform-report](https://github.com/ahmadnassri/action-terraform-report) | 24 | +| [gluwa/creditcoin](https://github.com/gluwa/creditcoin) | 24 | +| [unixorn/ha-mqtt-discoverable](https://github.com/unixorn/ha-mqtt-discoverable) | 23 | +| [h3mmy/bloopySphere](https://github.com/h3mmy/bloopySphere) | 22 | +| [whoisdsmith/VAULTSIDIAN](https://github.com/whoisdsmith/VAULTSIDIAN) | 22 | +| [OpenZeppelin/compound-monitoring](https://github.com/OpenZeppelin/compound-monitoring) | 21 | +| [SilentDemonSD/Tele-LeechX](https://github.com/SilentDemonSD/Tele-LeechX) | 21 | | [mirakc/mirakc-arib](https://github.com/mirakc/mirakc-arib) | 21 | | [ahmadnassri/node-metalsmith-pug](https://github.com/ahmadnassri/node-metalsmith-pug) | 21 | | [AliceO2Group/O2Physics](https://github.com/AliceO2Group/O2Physics) | 20 | -| [OpenZeppelin/compound-monitoring](https://github.com/OpenZeppelin/compound-monitoring) | 20 | -| [h3mmy/bloopySphere](https://github.com/h3mmy/bloopySphere) | 20 | -| [ahmadnassri/node-metalsmith-paths](https://github.com/ahmadnassri/node-metalsmith-paths) | 20 | +| [YukinaMochizuki/notion-sdk-java](https://github.com/YukinaMochizuki/notion-sdk-java) | 20 | | [ahmadnassri/node-metalsmith-imagemin](https://github.com/ahmadnassri/node-metalsmith-imagemin) | 20 | -| [ahmadnassri/action-terraform-report](https://github.com/ahmadnassri/action-terraform-report) | 20 | +| [GSA/usagov-benefits-eligibility](https://github.com/GSA/usagov-benefits-eligibility) | 19 | | [unixorn/jpb.zshplugin](https://github.com/unixorn/jpb.zshplugin) | 19 | -| [sierrafoxtrot/srecord](https://github.com/sierrafoxtrot/srecord) | 19 | -| [leosuncin/nest-api-example](https://github.com/leosuncin/nest-api-example) | 19 | +| [ishioni/homelab-ops](https://github.com/ishioni/homelab-ops) | 19 | +| [ahmadnassri/node-metalsmith-paths](https://github.com/ahmadnassri/node-metalsmith-paths) | 19 | | [ruzickap/action-my-markdown-link-checker](https://github.com/ruzickap/action-my-markdown-link-checker) | 18 | -| [GSA/usagov-benefits-eligibility](https://github.com/GSA/usagov-benefits-eligibility) | 18 | | [practicalli/clojurescript](https://github.com/practicalli/clojurescript) | 18 | -| [ishioni/homelab-ops](https://github.com/ishioni/homelab-ops) | 18 | +| [rafaribe/home-ops](https://github.com/rafaribe/home-ops) | 18 | +| [philips-software/amp-hal-st](https://github.com/philips-software/amp-hal-st) | 18 | | [ahmadnassri/node-nightwatch-accessibility](https://github.com/ahmadnassri/node-nightwatch-accessibility) | 18 | -| [lpsm-dev/loli](https://github.com/lpsm-dev/loli) | 17 | -| [ministryofjustice/modernisation-platform-environments](https://github.com/ministryofjustice/modernisation-platform-environments) | 17 | +| [homeall/dhcphelper](https://github.com/homeall/dhcphelper) | 17 | +| [ruzickap/malware-cryptominer-container](https://github.com/ruzickap/malware-cryptominer-container) | 16 | | [unixorn/jira-commands](https://github.com/unixorn/jira-commands) | 16 | -| [whoisdsmith/VAULTSIDIAN](https://github.com/whoisdsmith/VAULTSIDIAN) | 16 | -| [Programming-Simplified-Community/Social-Coder](https://github.com/Programming-Simplified-Community/Social-Coder) | 16 | +| [axeII/home-ops](https://github.com/axeII/home-ops) | 16 | +| [LukePrior/nbn-upgrade-map](https://github.com/LukePrior/nbn-upgrade-map) | 16 | | [svt/open-source-project-template](https://github.com/svt/open-source-project-template) | 15 | | [janderssonse/gradle-versions-filter-plugin](https://github.com/janderssonse/gradle-versions-filter-plugin) | 15 | -| [LiveEnhancementSuite/HSModule](https://github.com/LiveEnhancementSuite/HSModule) | 15 | -| [homeall/dhcphelper](https://github.com/homeall/dhcphelper) | 15 | -| [philips-software/amp-hal-st](https://github.com/philips-software/amp-hal-st) | 15 | +| [Euvaz/GitOps-Home](https://github.com/Euvaz/GitOps-Home) | 15 | +| [Programming-Simplified-Community/Social-Coder](https://github.com/Programming-Simplified-Community/Social-Coder) | 15 | | [ahmadnassri/node-metalsmith-request](https://github.com/ahmadnassri/node-metalsmith-request) | 15 | +| [ahmadnassri/node-april-fools](https://github.com/ahmadnassri/node-april-fools) | 15 | +| [gmoon/s3proxy](https://github.com/gmoon/s3proxy) | 14 | +| [nvuillam/markdown-table-formatter](https://github.com/nvuillam/markdown-table-formatter) | 14 | | [warolv/vault-backup](https://github.com/warolv/vault-backup) | 14 | +| [svt/media-analyzer](https://github.com/svt/media-analyzer) | 14 | | [dochang/mb-url](https://github.com/dochang/mb-url) | 14 | -| [rafaribe/home-ops](https://github.com/rafaribe/home-ops) | 14 | -| [SilentDemonSD/Tele-LeechX](https://github.com/SilentDemonSD/Tele-LeechX) | 14 | -| [ahmadnassri/node-april-fools](https://github.com/ahmadnassri/node-april-fools) | 14 | -| [gmoon/s3proxy](https://github.com/gmoon/s3proxy) | 13 | -| [nvuillam/markdown-table-formatter](https://github.com/nvuillam/markdown-table-formatter) | 13 | -| [svt/media-analyzer](https://github.com/svt/media-analyzer) | 13 | -| [axeII/home-ops](https://github.com/axeII/home-ops) | 13 | +| [GoogleCloudPlatform/apigee-samples](https://github.com/GoogleCloudPlatform/apigee-samples) | 14 | +| [Marx2/homelab](https://github.com/Marx2/homelab) | 14 | +| [ahgraber/homelab-gitops-k3s](https://github.com/ahgraber/homelab-gitops-k3s) | 13 | +| [GSA/site-scanning-engine](https://github.com/GSA/site-scanning-engine) | 13 | | [tvories/k8s-gitops](https://github.com/tvories/k8s-gitops) | 13 | -| [Marx2/homelab](https://github.com/Marx2/homelab) | 13 | +| [appunite/Loudius](https://github.com/appunite/Loudius) | 13 | +| [tyriis/home-ops](https://github.com/tyriis/home-ops) | 13 | | [jokay/docker-ccu-historian](https://github.com/jokay/docker-ccu-historian) | 13 | -| [ahgraber/homelab-gitops-k3s](https://github.com/ahgraber/homelab-gitops-k3s) | 12 | +| [practicalli/project-templates](https://github.com/practicalli/project-templates) | 13 | +| [lpsm-dev/docker-crypto-miner](https://github.com/lpsm-dev/docker-crypto-miner) | 12 | +| [ahgraber/homelab-infra](https://github.com/ahgraber/homelab-infra) | 12 | | [eresturo/scanadf2docspell](https://github.com/eresturo/scanadf2docspell) | 12 | -| [GSA/site-scanning-engine](https://github.com/GSA/site-scanning-engine) | 12 | -| [mchestr/home-cluster](https://github.com/mchestr/home-cluster) | 12 | -| [GoogleCloudPlatform/apigee-samples](https://github.com/GoogleCloudPlatform/apigee-samples) | 12 | -| [appunite/Loudius](https://github.com/appunite/Loudius) | 12 | -| [tyriis/home-ops](https://github.com/tyriis/home-ops) | 12 | +| [chgl/kube-powertools](https://github.com/chgl/kube-powertools) | 12 | +| [practicalli/neovim](https://github.com/practicalli/neovim) | 12 | | [ahmadnassri/node-oas-request](https://github.com/ahmadnassri/node-oas-request) | 12 | | [itsmng/itsm-ng](https://github.com/itsmng/itsm-ng) | 12 | -| [lpsm-dev/docker-crypto-miner](https://github.com/lpsm-dev/docker-crypto-miner) | 11 | +| [xlab-si/iac-scan-runner](https://github.com/xlab-si/iac-scan-runner) | 11 | | [dochang/elpa-clone](https://github.com/dochang/elpa-clone) | 11 | | [beleavemebe/marketplace-app](https://github.com/beleavemebe/marketplace-app) | 11 | | [nvuillam/njre](https://github.com/nvuillam/njre) | 11 | +| [mmalyska/home-ops](https://github.com/mmalyska/home-ops) | 11 | | [CoRoSoN-Kit/CoRoSoN-Kit](https://github.com/CoRoSoN-Kit/CoRoSoN-Kit) | 11 | -| [chgl/kube-powertools](https://github.com/chgl/kube-powertools) | 11 | +| [snoopy82481/home_cluster](https://github.com/snoopy82481/home_cluster) | 11 | | [bjw-s/pmb](https://github.com/bjw-s/pmb) | 11 | +| [practicalli/doom-emacs](https://github.com/practicalli/doom-emacs) | 11 | | [Qarj/WebImblaze](https://github.com/Qarj/WebImblaze) | 10 | | [llaville/php-compatinfo-db](https://github.com/llaville/php-compatinfo-db) | 10 | | [miracum/fhir-gateway](https://github.com/miracum/fhir-gateway) | 10 | | [ahmadnassri/action-semantic-release](https://github.com/ahmadnassri/action-semantic-release) | 10 | -| [Euvaz/GitOps-Home](https://github.com/Euvaz/GitOps-Home) | 10 | -| [practicalli/neovim](https://github.com/practicalli/neovim) | 10 | | [curedao/docs](https://github.com/curedao/docs) | 9 | -| [ahgraber/homelab-infra](https://github.com/ahgraber/homelab-infra) | 9 | | [chgl/charts](https://github.com/chgl/charts) | 9 | +| [practicalli/clojure-web-services](https://github.com/practicalli/clojure-web-services) | 9 | | [Nautilus-Cyberneering/git-queue](https://github.com/Nautilus-Cyberneering/git-queue) | 9 | +| [doonga/greyrock-ops](https://github.com/doonga/greyrock-ops) | 9 | | [miracum/fhir-pseudonymizer](https://github.com/miracum/fhir-pseudonymizer) | 9 | +| [eclipse/kuksa.val.services](https://github.com/eclipse/kuksa.val.services) | 8 | | [QuantumPL/bib](https://github.com/QuantumPL/bib) | 8 | -| [practicalli/clojure-web-services](https://github.com/practicalli/clojure-web-services) | 8 | +| [nvuillam/node-sarif-builder](https://github.com/nvuillam/node-sarif-builder) | 8 | | [victory-sokolov/dotfiles](https://github.com/victory-sokolov/dotfiles) | 8 | -| [mmalyska/home-ops](https://github.com/mmalyska/home-ops) | 8 | -| [practicalli/project-templates](https://github.com/practicalli/project-templates) | 8 | -| [ahmadnassri/action-template-repository-sync](https://github.com/ahmadnassri/action-template-repository-sync) | 8 | +| [Ramblurr/home-ops](https://github.com/Ramblurr/home-ops) | 8 | +| [unixorn/1password-op.plugin.zsh](https://github.com/unixorn/1password-op.plugin.zsh) | 8 | +| [PowerDNS-Admin/pda-next](https://github.com/PowerDNS-Admin/pda-next) | 8 | +| [ahmadnassri/docker-node-puppeteer](https://github.com/ahmadnassri/docker-node-puppeteer) | 8 | | [ahmadnassri/node-oas-fastify](https://github.com/ahmadnassri/node-oas-fastify) | 8 | | [ahmadnassri/node-autoenv](https://github.com/ahmadnassri/node-autoenv) | 8 | | [CITCOM-project/CausalTestingFramework](https://github.com/CITCOM-project/CausalTestingFramework) | 8 | | [LowerRockLabs/LaravelLivewireTablesAdvancedFilters](https://github.com/LowerRockLabs/LaravelLivewireTablesAdvancedFilters) | 7 | -| [eclipse/kuksa.val.services](https://github.com/eclipse/kuksa.val.services) | 7 | | [xenedium/xecours](https://github.com/xenedium/xecours) | 7 | | [tusharshahrs/pulumi-home](https://github.com/tusharshahrs/pulumi-home) | 7 | +| [AlbanAndrieu/jenkins-pipeline-scripts](https://github.com/AlbanAndrieu/jenkins-pipeline-scripts) | 7 | | [stepancheg/rust-protoc-bin-vendored](https://github.com/stepancheg/rust-protoc-bin-vendored) | 7 | | [nujiak/recce](https://github.com/nujiak/recce) | 7 | | [iggy/terrarific](https://github.com/iggy/terrarific) | 7 | | [ChristopherHX/act](https://github.com/ChristopherHX/act) | 7 | -| [nvuillam/node-sarif-builder](https://github.com/nvuillam/node-sarif-builder) | 7 | | [dochang/bumplus](https://github.com/dochang/bumplus) | 7 | -| [unixorn/1password-op.plugin.zsh](https://github.com/unixorn/1password-op.plugin.zsh) | 7 | +| [xoap-io/xoap-uberagent-kibana-dashboards](https://github.com/xoap-io/xoap-uberagent-kibana-dashboards) | 7 | +| [seantrane/engineering](https://github.com/seantrane/engineering) | 7 | +| [philips-software/amp-preview](https://github.com/philips-software/amp-preview) | 7 | | [bjw-s/series-cleanup](https://github.com/bjw-s/series-cleanup) | 7 | | [axelrindle/github-version-checker](https://github.com/axelrindle/github-version-checker) | 7 | -| [doonga/greyrock-ops](https://github.com/doonga/greyrock-ops) | 7 | | [jokay/docker-loxone-backup](https://github.com/jokay/docker-loxone-backup) | 7 | | [Vikaspogu/k8s-gitops](https://github.com/Vikaspogu/k8s-gitops) | 7 | -| [ergho/homelab-ops](https://github.com/ergho/homelab-ops) | 7 | | [jokay/docker-prune](https://github.com/jokay/docker-prune) | 7 | -| [snoopy82481/home_cluster](https://github.com/snoopy82481/home_cluster) | 7 | -| [MrMarble/home-ops](https://github.com/MrMarble/home-ops) | 7 | -| [ahmadnassri/docker-node-puppeteer](https://github.com/ahmadnassri/docker-node-puppeteer) | 7 | +| [ahmadnassri/action-commit-lint](https://github.com/ahmadnassri/action-commit-lint) | 7 | | [GhostWriters/docker-packt-cli](https://github.com/GhostWriters/docker-packt-cli) | 7 | -| [practicalli/doom-emacs](https://github.com/practicalli/doom-emacs) | 7 | | [ahmadnassri/node-spawn-promise](https://github.com/ahmadnassri/node-spawn-promise) | 7 | | [ahmadnassri/template-js-lib](https://github.com/ahmadnassri/template-js-lib) | 7 | | [ADFC-Hamburg/adfc-ansible](https://github.com/ADFC-Hamburg/adfc-ansible) | 6 | | [CoffeeOps/commandline-fu](https://github.com/CoffeeOps/commandline-fu) | 6 | | [XoopsModules25x/publisher](https://github.com/XoopsModules25x/publisher) | 6 | | [theodore-s-beers/muqawwim](https://github.com/theodore-s-beers/muqawwim) | 6 | -| [AlbanAndrieu/jenkins-pipeline-scripts](https://github.com/AlbanAndrieu/jenkins-pipeline-scripts) | 6 | +| [Nautilus-Cyberneering/secure-git-guide](https://github.com/Nautilus-Cyberneering/secure-git-guide) | 6 | | [AlbanAndrieu/ansible-jenkins-slave-docker](https://github.com/AlbanAndrieu/ansible-jenkins-slave-docker) | 6 | +| [lkmgr/homelab](https://github.com/lkmgr/homelab) | 6 | +| [leosuncin/nest-graphql-example](https://github.com/leosuncin/nest-graphql-example) | 6 | | [llaville/sarif-php-sdk](https://github.com/llaville/sarif-php-sdk) | 6 | | [zhorvath83/home-ops](https://github.com/zhorvath83/home-ops) | 6 | | [elraro/home-ops](https://github.com/elraro/home-ops) | 6 | | [unixorn/gitlike-commands](https://github.com/unixorn/gitlike-commands) | 6 | | [mimmi20/browscap-helper](https://github.com/mimmi20/browscap-helper) | 6 | -| [philips-software/amp-preview](https://github.com/philips-software/amp-preview) | 6 | +| [GenZmeY/KF2-SafeMutLoader](https://github.com/GenZmeY/KF2-SafeMutLoader) | 6 | | [AzorianSolutions/broadband-label-maker](https://github.com/AzorianSolutions/broadband-label-maker) | 6 | | [miracum/ahd2fhir](https://github.com/miracum/ahd2fhir) | 6 | | [chilcano/how-tos](https://github.com/chilcano/how-tos) | 6 | -| [blthazr/area0](https://github.com/blthazr/area0) | 6 | +| [ahmadnassri/action-template-repository-sync](https://github.com/ahmadnassri/action-template-repository-sync) | 6 | | [9elements/firmware-action](https://github.com/9elements/firmware-action) | 5 | | [lpsm-dev/azure-pipelines](https://github.com/lpsm-dev/azure-pipelines) | 5 | | [AliceO2Group/Run3Analysisvalidation](https://github.com/AliceO2Group/Run3Analysisvalidation) | 5 | -| [Nautilus-Cyberneering/secure-git-guide](https://github.com/Nautilus-Cyberneering/secure-git-guide) | 5 | -| [lkmgr/homelab](https://github.com/lkmgr/homelab) | 5 | | [DIT113-V22/group-04](https://github.com/DIT113-V22/group-04) | 5 | -| [Ramblurr/home-ops](https://github.com/Ramblurr/home-ops) | 5 | | [GiorgioAresu/homelab-gitops](https://github.com/GiorgioAresu/homelab-gitops) | 5 | | [llaville/phpunit-LoggerTestListener](https://github.com/llaville/phpunit-LoggerTestListener) | 5 | -| [PowerDNS-Admin/pda-next](https://github.com/PowerDNS-Admin/pda-next) | 5 | -| [miracum/kafka-fhir-to-server](https://github.com/miracum/kafka-fhir-to-server) | 5 | +| [tomorrow-one/transactional-outbox](https://github.com/tomorrow-one/transactional-outbox) | 5 | +| [taxonomicallyinformedannotation/tima-r](https://github.com/taxonomicallyinformedannotation/tima-r) | 5 | | [proinsias/proinsias.github.io](https://github.com/proinsias/proinsias.github.io) | 5 | | [maksimkurb/home-ops](https://github.com/maksimkurb/home-ops) | 5 | -| [ahmadnassri/action-commit-lint](https://github.com/ahmadnassri/action-commit-lint) | 5 | | [ahmadnassri/template-template](https://github.com/ahmadnassri/template-template) | 5 | | [ahmadnassri/action-google-cloud-sql-proxy](https://github.com/ahmadnassri/action-google-cloud-sql-proxy) | 5 | | [ahmadnassri/docker-github-pages](https://github.com/ahmadnassri/docker-github-pages) | 5 | -| [chgl/magniFHIR](https://github.com/chgl/magniFHIR) | 5 | -| [xlab-si/iac-scan-runner](https://github.com/xlab-si/iac-scan-runner) | 4 | +| [bjw-s/esphome-config](https://github.com/bjw-s/esphome-config) | 5 | +| [ahmadnassri/node-serve-reload-replace](https://github.com/ahmadnassri/node-serve-reload-replace) | 5 | +| [VirtwhoQE/hypervisor-builder](https://github.com/VirtwhoQE/hypervisor-builder) | 5 | +| [hobbyfarm/e2e-testing](https://github.com/hobbyfarm/e2e-testing) | 4 | +| [ruzickap/popular-containers-vulnerability-checks](https://github.com/ruzickap/popular-containers-vulnerability-checks) | 4 | | [candlepin/candlepin-jobs](https://github.com/candlepin/candlepin-jobs) | 4 | | [ruzickap/k8s-tf-eks-gitops](https://github.com/ruzickap/k8s-tf-eks-gitops) | 4 | | [svt/junit5-redis-extension](https://github.com/svt/junit5-redis-extension) | 4 | | [Nautilus-Cyberneering/chinese-ideographs](https://github.com/Nautilus-Cyberneering/chinese-ideographs) | 4 | | [cbg-ethz/pareg](https://github.com/cbg-ethz/pareg) | 4 | -| [leosuncin/nest-graphql-example](https://github.com/leosuncin/nest-graphql-example) | 4 | -| [xoap-io/xoap-uberagent-kibana-dashboards](https://github.com/xoap-io/xoap-uberagent-kibana-dashboards) | 4 | +| [iggy/slendmail](https://github.com/iggy/slendmail) | 4 | +| [actinia-org/actinia-stac-plugin](https://github.com/actinia-org/actinia-stac-plugin) | 4 | | [mimmi20/monolog-streamformatter](https://github.com/mimmi20/monolog-streamformatter) | 4 | +| [I-Language-Development/I-language-rust](https://github.com/I-Language-Development/I-language-rust) | 4 | | [FiveGuys-DevOps/MiniTwit](https://github.com/FiveGuys-DevOps/MiniTwit) | 4 | | [shalltearb1oodfallen/airbnb](https://github.com/shalltearb1oodfallen/airbnb) | 4 | +| [bzkf/diz-in-a-box](https://github.com/bzkf/diz-in-a-box) | 4 | | [shiranr/linkcheck](https://github.com/shiranr/linkcheck) | 4 | -| [ashokm/dotfiles](https://github.com/ashokm/dotfiles) | 4 | -| [osnabrugge/home-cluster](https://github.com/osnabrugge/home-cluster) | 4 | +| [miracum/kafka-fhir-to-server](https://github.com/miracum/kafka-fhir-to-server) | 4 | | [proinsias/mac-playbook](https://github.com/proinsias/mac-playbook) | 4 | | [miracum/vfps](https://github.com/miracum/vfps) | 4 | | [jokay/docker-php-fpm-ext](https://github.com/jokay/docker-php-fpm-ext) | 4 | | [ahmadnassri/action-github-registry-npm-proxy](https://github.com/ahmadnassri/action-github-registry-npm-proxy) | 4 | +| [chgl/magniFHIR](https://github.com/chgl/magniFHIR) | 4 | | [wesley-dean-flexion/busybox-jq-latest](https://github.com/wesley-dean-flexion/busybox-jq-latest) | 4 | -| [bjw-s/esphome-config](https://github.com/bjw-s/esphome-config) | 4 | +| [quiltdata/nf-quilt](https://github.com/quiltdata/nf-quilt) | 4 | | [jmuelbert/generator-swift](https://github.com/jmuelbert/generator-swift) | 4 | | [jmuelbert/jmbde-QT](https://github.com/jmuelbert/jmbde-QT) | 4 | | [Jasstkn/link-checker](https://github.com/Jasstkn/link-checker) | 4 | +| [rciam/keycloak-group-management](https://github.com/rciam/keycloak-group-management) | 4 | +| [cityssm/lot-occupancy-system](https://github.com/cityssm/lot-occupancy-system) | 4 | | [ahmadnassri/node-updated](https://github.com/ahmadnassri/node-updated) | 4 | | [ahmadnassri/node-template-literals-engine](https://github.com/ahmadnassri/node-template-literals-engine) | 4 | -| [ahmadnassri/node-serve-reload-replace](https://github.com/ahmadnassri/node-serve-reload-replace) | 4 | | [ahmadnassri/template-node-lib](https://github.com/ahmadnassri/template-node-lib) | 4 | -| [VirtwhoQE/hypervisor-builder](https://github.com/VirtwhoQE/hypervisor-builder) | 4 | +| [JeanMGirard/Awesome](https://github.com/JeanMGirard/Awesome) | 4 | | [flexion/bash_shell_script_starter](https://github.com/flexion/bash_shell_script_starter) | 4 | -| [hobbyfarm/e2e-testing](https://github.com/hobbyfarm/e2e-testing) | 3 | +| [jan-guenter/action-class](https://github.com/jan-guenter/action-class) | 3 | | [ruzickap/ruzickap.github.io](https://github.com/ruzickap/ruzickap.github.io) | 3 | | [rafyco/ytrss](https://github.com/rafyco/ytrss) | 3 | | [SueyGuey/Infidelity](https://github.com/SueyGuey/Infidelity) | 3 | | [Woll0r/k8s-cluster](https://github.com/Woll0r/k8s-cluster) | 3 | +| [c6o/docs](https://github.com/c6o/docs) | 3 | | [chgl/fhir-server-exporter](https://github.com/chgl/fhir-server-exporter) | 3 | | [MTUCI-VR/shooter-project](https://github.com/MTUCI-VR/shooter-project) | 3 | -| [iggy/slendmail](https://github.com/iggy/slendmail) | 3 | | [iggy/gocate](https://github.com/iggy/gocate) | 3 | -| [wenzeslaus/foss4g-2022-developing-custom-grass-tools](https://github.com/wenzeslaus/foss4g-2022-developing-custom-grass-tools) | 3 | | [Nautilus-Cyberneering/nautilus-librarian](https://github.com/Nautilus-Cyberneering/nautilus-librarian) | 3 | | [Iudicael/home-ops](https://github.com/Iudicael/home-ops) | 3 | +| [drae/k8s-home-ops](https://github.com/drae/k8s-home-ops) | 3 | | [bsrodrigs/terraform-aws-selfconfig-cgw](https://github.com/bsrodrigs/terraform-aws-selfconfig-cgw) | 3 | -| [actinia-org/actinia-stac-plugin](https://github.com/actinia-org/actinia-stac-plugin) | 3 | | [cbg-ethz/SARS-CoV-2_Analysis](https://github.com/cbg-ethz/SARS-CoV-2_Analysis) | 3 | +| [mimmi20/coding-standard](https://github.com/mimmi20/coding-standard) | 3 | +| [matejkosiarcik/planckpng](https://github.com/matejkosiarcik/planckpng) | 3 | +| [matejkosiarcik/azlint](https://github.com/matejkosiarcik/azlint) | 3 | +| [I-Language-Development/I-language-python](https://github.com/I-Language-Development/I-language-python) | 3 | +| [Euvaz/TeXCV](https://github.com/Euvaz/TeXCV) | 3 | | [KohaAloha/Koha-Dev](https://github.com/KohaAloha/Koha-Dev) | 3 | | [miracum/charts](https://github.com/miracum/charts) | 3 | | [HealthDataInsight/way_of_working](https://github.com/HealthDataInsight/way_of_working) | 3 | | [proinsias/gilbert-shannon-reeds](https://github.com/proinsias/gilbert-shannon-reeds) | 3 | | [brettinternet/slides](https://github.com/brettinternet/slides) | 3 | +| [Game-DevOps/awesome-game-devops](https://github.com/Game-DevOps/awesome-game-devops) | 3 | +| [AliceO2Group/analysis-framework](https://github.com/AliceO2Group/analysis-framework) | 3 | +| [ashokm/dotfiles](https://github.com/ashokm/dotfiles) | 3 | | [tdonaworth/pipeline-security](https://github.com/tdonaworth/pipeline-security) | 3 | -| [Stormcargo/k8s-gitops](https://github.com/Stormcargo/k8s-gitops) | 3 | | [fernandopn/swarm-mind](https://github.com/fernandopn/swarm-mind) | 3 | | [osfanbuff63/action-workflows](https://github.com/osfanbuff63/action-workflows) | 3 | +| [ahmadnassri/template-docker](https://github.com/ahmadnassri/template-docker) | 3 | +| [evanofslack/slacknet](https://github.com/evanofslack/slacknet) | 3 | | [claughinghouse/home-ops](https://github.com/claughinghouse/home-ops) | 3 | +| [practicalli/learn-clojure](https://github.com/practicalli/learn-clojure) | 3 | | [practicalli/blog](https://github.com/practicalli/blog) | 3 | | [RunningMattress/upm-test-package](https://github.com/RunningMattress/upm-test-package) | 3 | -| [quiltdata/nf-quilt](https://github.com/quiltdata/nf-quilt) | 3 | | [brandonmcclure/friendly-chainsaw](https://github.com/brandonmcclure/friendly-chainsaw) | 3 | | [dorssel/dotnet-xmss](https://github.com/dorssel/dotnet-xmss) | 3 | | [practicalli/clojure-service-template](https://github.com/practicalli/clojure-service-template) | 3 | | [miracum/kafka-fhir-serializer](https://github.com/miracum/kafka-fhir-serializer) | 3 | -| [cityssm/lot-occupancy-system](https://github.com/cityssm/lot-occupancy-system) | 3 | | [ahmadnassri/node-marked-promise](https://github.com/ahmadnassri/node-marked-promise) | 3 | | [MRDGH2821/Discord-Time-Tag-Bot](https://github.com/MRDGH2821/Discord-Time-Tag-Bot) | 3 | | [ahmadnassri/node-stringify-clone](https://github.com/ahmadnassri/node-stringify-clone) | 3 | | [ahmadnassri/node-smart-promise](https://github.com/ahmadnassri/node-smart-promise) | 3 | | [ahmadnassri/node-error](https://github.com/ahmadnassri/node-error) | 3 | -| [jan-guenter/action-class](https://github.com/jan-guenter/action-class) | 2 | +| [unixorn/ha-franklin](https://github.com/unixorn/ha-franklin) | 3 | | [lpsm-dev/helm-recursive-library](https://github.com/lpsm-dev/helm-recursive-library) | 2 | -| [ruzickap/malware-cryptominer-container](https://github.com/ruzickap/malware-cryptominer-container) | 2 | -| [ruzickap/popular-containers-vulnerability-checks](https://github.com/ruzickap/popular-containers-vulnerability-checks) | 2 | +| [diggsweden/open-source-project-template](https://github.com/diggsweden/open-source-project-template) | 2 | | [FaserF/homeassistant](https://github.com/FaserF/homeassistant) | 2 | +| [mihaur/node-fastify-template](https://github.com/mihaur/node-fastify-template) | 2 | | [ruzickap/k8s-eks-rancher](https://github.com/ruzickap/k8s-eks-rancher) | 2 | | [AlbanAndrieu/nabla-servers-bower-sample](https://github.com/AlbanAndrieu/nabla-servers-bower-sample) | 2 | | [xenedium/CatchIT-py](https://github.com/xenedium/CatchIT-py) | 2 | | [jokay/jokay.github.io](https://github.com/jokay/jokay.github.io) | 2 | | [sakkke/termy](https://github.com/sakkke/termy) | 2 | -| [c6o/docs](https://github.com/c6o/docs) | 2 | +| [Simple-ML/Simple-ML](https://github.com/Simple-ML/Simple-ML) | 2 | | [hamza-u/gstcefsrc](https://github.com/hamza-u/gstcefsrc) | 2 | | [nitra/smsc](https://github.com/nitra/smsc) | 2 | +| [wenzeslaus/foss4g-2022-developing-custom-grass-tools](https://github.com/wenzeslaus/foss4g-2022-developing-custom-grass-tools) | 2 | | [Athe-kunal/Verge_Scraper](https://github.com/Athe-kunal/Verge_Scraper) | 2 | | [ncsu-geoforall-lab/grass-gis-on-hpc-henry2](https://github.com/ncsu-geoforall-lab/grass-gis-on-hpc-henry2) | 2 | | [xoap-io/xoap-powershell-dsc-configurations](https://github.com/xoap-io/xoap-powershell-dsc-configurations) | 2 | -| [drae/k8s-home-ops](https://github.com/drae/k8s-home-ops) | 2 | +| [DamianFlynn/k8s-at-home](https://github.com/DamianFlynn/k8s-at-home) | 2 | +| [xoap-io/xoap-packer-templates](https://github.com/xoap-io/xoap-packer-templates) | 2 | | [sp3nx0r/cluster-securimancy](https://github.com/sp3nx0r/cluster-securimancy) | 2 | | [sob/home-ops](https://github.com/sob/home-ops) | 2 | | [GaffaOverflow/gaffamap](https://github.com/GaffaOverflow/gaffamap) | 2 | -| [matejkosiarcik/millipng](https://github.com/matejkosiarcik/millipng) | 2 | | [nvuillam/nvuillam](https://github.com/nvuillam/nvuillam) | 2 | | [danistrebel/devrel](https://github.com/danistrebel/devrel) | 2 | -| [matejkosiarcik/azlint](https://github.com/matejkosiarcik/azlint) | 2 | -| [matejkosiarcik/dotfiles](https://github.com/matejkosiarcik/dotfiles) | 2 | -| [mimmi20/coding-standard](https://github.com/mimmi20/coding-standard) | 2 | +| [matejkosiarcik/matejkosiarcik.com](https://github.com/matejkosiarcik/matejkosiarcik.com) | 2 | +| [mimmi20/laminas-router-hostname](https://github.com/mimmi20/laminas-router-hostname) | 2 | +| [mimmi20/template](https://github.com/mimmi20/template) | 2 | +| [ragsworks/workflow-megalinter](https://github.com/ragsworks/workflow-megalinter) | 2 | +| [worksuiteio/worksuite](https://github.com/worksuiteio/worksuite) | 2 | +| [jscheytt/dotfiles](https://github.com/jscheytt/dotfiles) | 2 | +| [matejkosiarcik/personal-dotfiles](https://github.com/matejkosiarcik/personal-dotfiles) | 2 | +| [VirtwhoQE/virtwho-test](https://github.com/VirtwhoQE/virtwho-test) | 2 | +| [GenZmeY/KF2-BuildTools](https://github.com/GenZmeY/KF2-BuildTools) | 2 | | [devcontainers-community/templates](https://github.com/devcontainers-community/templates) | 2 | | [Samidaites2/megalizer](https://github.com/Samidaites2/megalizer) | 2 | -| [bzkf/diz-in-a-box](https://github.com/bzkf/diz-in-a-box) | 2 | | [WilliamsiNFINITE/FlutterTheSpec](https://github.com/WilliamsiNFINITE/FlutterTheSpec) | 2 | | [The-IT-Dept/infra](https://github.com/The-IT-Dept/infra) | 2 | | [home-ops/home-k8s-cluster](https://github.com/home-ops/home-k8s-cluster) | 2 | | [ThonyPrice/home-ops](https://github.com/ThonyPrice/home-ops) | 2 | -| [Game-DevOps/awesome-game-devops](https://github.com/Game-DevOps/awesome-game-devops) | 2 | +| [insuusvenerati/k8s-home](https://github.com/insuusvenerati/k8s-home) | 2 | +| [dmamulashvili/webapi-msa-template](https://github.com/dmamulashvili/webapi-msa-template) | 2 | | [lucacalcaterra/kube-home](https://github.com/lucacalcaterra/kube-home) | 2 | -| [ishioni/k3s-cluster](https://github.com/ishioni/k3s-cluster) | 2 | | [chgl/FhirParametersGenerator](https://github.com/chgl/FhirParametersGenerator) | 2 | | [proinsias/proinsias](https://github.com/proinsias/proinsias) | 2 | | [proinsias/dotfiles](https://github.com/proinsias/dotfiles) | 2 | @@ -334,19 +360,20 @@ | [xitobuh/flux-cluster](https://github.com/xitobuh/flux-cluster) | 2 | | [ahmadnassri/action-changed-files](https://github.com/ahmadnassri/action-changed-files) | 2 | | [zbigniewzolnierowicz/cluster](https://github.com/zbigniewzolnierowicz/cluster) | 2 | -| [ChristfriedBalizou/homelab](https://github.com/ChristfriedBalizou/homelab) | 2 | | [singhmanavjot/infrastructure](https://github.com/singhmanavjot/infrastructure) | 2 | | [ahmadnassri/template-action-composite](https://github.com/ahmadnassri/template-action-composite) | 2 | | [ahmadnassri/docker-mermaid-cli](https://github.com/ahmadnassri/docker-mermaid-cli) | 2 | -| [ahmadnassri/template-docker](https://github.com/ahmadnassri/template-docker) | 2 | | [lucacalcaterra/kube-home-flux-2](https://github.com/lucacalcaterra/kube-home-flux-2) | 2 | | [miracum/recruit](https://github.com/miracum/recruit) | 2 | | [wesley-dean/hsc](https://github.com/wesley-dean/hsc) | 2 | | [JaderDias/aws-activity-pub](https://github.com/JaderDias/aws-activity-pub) | 2 | | [Andrews-McMeel-Universal/reusable_workflows](https://github.com/Andrews-McMeel-Universal/reusable_workflows) | 2 | | [practicalli/clojure-data-science](https://github.com/practicalli/clojure-data-science) | 2 | +| [practicalli/vspacecode](https://github.com/practicalli/vspacecode) | 2 | | [jmuelbert/anniversaryreminder](https://github.com/jmuelbert/anniversaryreminder) | 2 | | [jcpsantiago/thearqivist](https://github.com/jcpsantiago/thearqivist) | 2 | +| [gluwa/creditcoin-staking-dashboard](https://github.com/gluwa/creditcoin-staking-dashboard) | 2 | +| [stuartp44/com.vanmoof](https://github.com/stuartp44/com.vanmoof) | 2 | | [ahmadnassri/node-debug](https://github.com/ahmadnassri/node-debug) | 2 | | [RolfMoleman/codequalitytools](https://github.com/RolfMoleman/codequalitytools) | 2 | | [MRDGH2821/dpaste-ts](https://github.com/MRDGH2821/dpaste-ts) | 2 | @@ -355,19 +382,17 @@ | [ahmadnassri/node-uncaught-extender](https://github.com/ahmadnassri/node-uncaught-extender) | 2 | | [louffee/canada-design-system](https://github.com/louffee/canada-design-system) | 2 | | [unixorn/ha-mqtt-discoverable-cli](https://github.com/unixorn/ha-mqtt-discoverable-cli) | 2 | -| [JeanMGirard/Awesome](https://github.com/JeanMGirard/Awesome) | 2 | +| [Cismu/Cismu](https://github.com/Cismu/Cismu) | 1 | | [tahaluindo/black-mirror](https://github.com/tahaluindo/black-mirror) | 1 | | [lpsm-dev/cloud-native-buildpacks](https://github.com/lpsm-dev/cloud-native-buildpacks) | 1 | -| [lpsm-dev/static-list](https://github.com/lpsm-dev/static-list) | 1 | | [lpsm-dev/personal-resume](https://github.com/lpsm-dev/personal-resume) | 1 | -| [gabrielfrasantos/embedded-infra-library](https://github.com/gabrielfrasantos/embedded-infra-library) | 1 | | [janderssonse/ort-ci-base](https://github.com/janderssonse/ort-ci-base) | 1 | | [janderssonse/ort-ci-action](https://github.com/janderssonse/ort-ci-action) | 1 | | [AlbanAndrieu/kayrros](https://github.com/AlbanAndrieu/kayrros) | 1 | | [ruzickap/raw-photo-tools-container](https://github.com/ruzickap/raw-photo-tools-container) | 1 | +| [ruzickap/ruzickap](https://github.com/ruzickap/ruzickap) | 1 | | [meshuggahtas/TASSS](https://github.com/meshuggahtas/TASSS) | 1 | | [SamNzo/Bug-tracker-VariaMos](https://github.com/SamNzo/Bug-tracker-VariaMos) | 1 | -| [mihaur/node-fastify-template](https://github.com/mihaur/node-fastify-template) | 1 | | [XoopsModules25x/songlist](https://github.com/XoopsModules25x/songlist) | 1 | | [mambax7/publisher](https://github.com/mambax7/publisher) | 1 | | [stevengonsalvez/cloud-cicd-exploration](https://github.com/stevengonsalvez/cloud-cicd-exploration) | 1 | @@ -381,9 +406,11 @@ | [buluma/GitHub-Actions](https://github.com/buluma/GitHub-Actions) | 1 | | [HinchK/snipe-it](https://github.com/HinchK/snipe-it) | 1 | | [stepancheg/gh-actions-gen](https://github.com/stepancheg/gh-actions-gen) | 1 | -| [Simple-ML/Simple-ML](https://github.com/Simple-ML/Simple-ML) | 1 | | [dochang/anyenv-target](https://github.com/dochang/anyenv-target) | 1 | +| [neohelden/actions-library](https://github.com/neohelden/actions-library) | 1 | | [dschveninger/megalinter-plugins](https://github.com/dschveninger/megalinter-plugins) | 1 | +| [ruzickap/wizctl](https://github.com/ruzickap/wizctl) | 1 | +| [iggy/govern](https://github.com/iggy/govern) | 1 | | [dochang/sqlconv](https://github.com/dochang/sqlconv) | 1 | | [atlascloud/packages](https://github.com/atlascloud/packages) | 1 | | [dochang/koanfenv](https://github.com/dochang/koanfenv) | 1 | @@ -393,11 +420,12 @@ | [piotr-yuxuan/clojure-deps-edn](https://github.com/piotr-yuxuan/clojure-deps-edn) | 1 | | [paroda/clojure-deps-edn](https://github.com/paroda/clojure-deps-edn) | 1 | | [Iryna-Slynko/split-bill](https://github.com/Iryna-Slynko/split-bill) | 1 | +| [acidburn0zzz/vscode-sfdx-hardis](https://github.com/acidburn0zzz/vscode-sfdx-hardis) | 1 | | [thongdk8/test-nestjs](https://github.com/thongdk8/test-nestjs) | 1 | | [ToppleTheNun/commitlint-config-nx-scopes](https://github.com/ToppleTheNun/commitlint-config-nx-scopes) | 1 | | [johnduprey/CIPP-Domain-Health-Check](https://github.com/johnduprey/CIPP-Domain-Health-Check) | 1 | | [ccp-aus/CIPP](https://github.com/ccp-aus/CIPP) | 1 | -| [just-jenb-fairoaksit/CIPP](https://github.com/just-jenb-fairoaksit/CIPP) | 1 | +| [justjenb-fairoaksit/CIPP](https://github.com/justjenb-fairoaksit/CIPP) | 1 | | [DarrenChap/CIPP](https://github.com/DarrenChap/CIPP) | 1 | | [TechPartners/CIPP-1](https://github.com/TechPartners/CIPP-1) | 1 | | [mcohen301BN/CIPP](https://github.com/mcohen301BN/CIPP) | 1 | @@ -413,9 +441,9 @@ | [pythoninthegrass/aoc](https://github.com/pythoninthegrass/aoc) | 1 | | [MrBrain295/prime-finder](https://github.com/MrBrain295/prime-finder) | 1 | | [josecelano/mandelbrot-orbits-rust](https://github.com/josecelano/mandelbrot-orbits-rust) | 1 | +| [apheon-terra/01_k3s_ops](https://github.com/apheon-terra/01_k3s_ops) | 1 | +| [tyg3rr/Epi_Helper](https://github.com/tyg3rr/Epi_Helper) | 1 | | [Ramblurr/home-lab](https://github.com/Ramblurr/home-lab) | 1 | -| [DamianFlynn/k8s-at-home](https://github.com/DamianFlynn/k8s-at-home) | 1 | -| [xoap-io/xoap-packer-templates](https://github.com/xoap-io/xoap-packer-templates) | 1 | | [terracharge/template-terraform-module](https://github.com/terracharge/template-terraform-module) | 1 | | [xoap-io/terraform-module-template](https://github.com/xoap-io/terraform-module-template) | 1 | | [RmnMatusevich/GreenridgeApp1](https://github.com/RmnMatusevich/GreenridgeApp1) | 1 | @@ -432,46 +460,44 @@ | [gaahrdner/dotfiles](https://github.com/gaahrdner/dotfiles) | 1 | | [dochang/dotfiles](https://github.com/dochang/dotfiles) | 1 | | [SobolevYuri/scanner_repoC](https://github.com/SobolevYuri/scanner_repoC) | 1 | -| [matejkosiarcik/matejkosiarcik.com](https://github.com/matejkosiarcik/matejkosiarcik.com) | 1 | | [tobst96/mission-chief-bot-jsons](https://github.com/tobst96/mission-chief-bot-jsons) | 1 | +| [Jasstkn/gcloud-helmfile](https://github.com/Jasstkn/gcloud-helmfile) | 1 | | [rciam/rciam-docs](https://github.com/rciam/rciam-docs) | 1 | | [hybridadmin/docker_images](https://github.com/hybridadmin/docker_images) | 1 | | [Luzkan/FamilyBudget](https://github.com/Luzkan/FamilyBudget) | 1 | | [nvuillam/sfdx-hardis](https://github.com/nvuillam/sfdx-hardis) | 1 | | [uah-ams/uah-ams-website](https://github.com/uah-ams/uah-ams-website) | 1 | | [mimmi20/monolog-factory](https://github.com/mimmi20/monolog-factory) | 1 | -| [mimmi20/laminas-router-hostname](https://github.com/mimmi20/laminas-router-hostname) | 1 | -| [mimmi20/template](https://github.com/mimmi20/template) | 1 | -| [GenZmeY/KF2-CustomTraderInventory](https://github.com/GenZmeY/KF2-CustomTraderInventory) | 1 | -| [gabrielfrasantos/embedded-hal-st](https://github.com/gabrielfrasantos/embedded-hal-st) | 1 | -| [GenZmeY/KF2-BuildTools](https://github.com/GenZmeY/KF2-BuildTools) | 1 | -| [hypercision/java-properties-i18n-translation](https://github.com/hypercision/java-properties-i18n-translation) | 1 | -| [gabehoban/infrastructure](https://github.com/gabehoban/infrastructure) | 1 | -| [I-Language-Development/I-language-rust](https://github.com/I-Language-Development/I-language-rust) | 1 | -| [Euvaz/TeXCV](https://github.com/Euvaz/TeXCV) | 1 | +| [gabrielfrasantos/embedded-hal-ti](https://github.com/gabrielfrasantos/embedded-hal-ti) | 1 | +| [gabrielfrasantos/embedded-infra-lib](https://github.com/gabrielfrasantos/embedded-infra-lib) | 1 | +| [doonga/lego-auto](https://github.com/doonga/lego-auto) | 1 | +| [madbuda/k3s-home](https://github.com/madbuda/k3s-home) | 1 | +| [RedHatProductSecurity/oscal-automation-libs](https://github.com/RedHatProductSecurity/oscal-automation-libs) | 1 | +| [fabricesemti80/home-cluster](https://github.com/fabricesemti80/home-cluster) | 1 | +| [fabricesemti80/home-gitops-cluster-old](https://github.com/fabricesemti80/home-gitops-cluster-old) | 1 | +| [seandonohoo/home-cluster](https://github.com/seandonohoo/home-cluster) | 1 | +| [gabrielfrasantos/embedded-control-toolbox](https://github.com/gabrielfrasantos/embedded-control-toolbox) | 1 | +| [GenZmeY/KF2-LootedTraderInventory](https://github.com/GenZmeY/KF2-LootedTraderInventory) | 1 | +| [hypercision/i18ntools](https://github.com/hypercision/i18ntools) | 1 | | [stefancrain/home](https://github.com/stefancrain/home) | 1 | | [neilmfrench/homelab-prod](https://github.com/neilmfrench/homelab-prod) | 1 | +| [fisherbln/virt-ops](https://github.com/fisherbln/virt-ops) | 1 | | [brettinternet/cluster](https://github.com/brettinternet/cluster) | 1 | -| [shotcowboystyle/wutanglan](https://github.com/shotcowboystyle/wutanglan) | 1 | | [HealthDataInsight/way_of_working-template](https://github.com/HealthDataInsight/way_of_working-template) | 1 | | [chill-viking/npm-ci](https://github.com/chill-viking/npm-ci) | 1 | | [timalpha/klase](https://github.com/timalpha/klase) | 1 | | [brettinternet/brettinternet.github.io](https://github.com/brettinternet/brettinternet.github.io) | 1 | -| [seandonohoo/home-cluster](https://github.com/seandonohoo/home-cluster) | 1 | | [javydekoning/homelab](https://github.com/javydekoning/homelab) | 1 | | [proinsias/infrared-observations](https://github.com/proinsias/infrared-observations) | 1 | | [proinsias/detection-and-exploration](https://github.com/proinsias/detection-and-exploration) | 1 | | [csacca/home-infra2](https://github.com/csacca/home-infra2) | 1 | | [stan1ey-shen/lint](https://github.com/stan1ey-shen/lint) | 1 | -| [AliceO2Group/analysis-framework](https://github.com/AliceO2Group/analysis-framework) | 1 | | [SkunkOne/kluster](https://github.com/SkunkOne/kluster) | 1 | -| [insuusvenerati/k8s-home](https://github.com/insuusvenerati/k8s-home) | 1 | | [kh-rawad/dotFiles](https://github.com/kh-rawad/dotFiles) | 1 | -| [dmamulashvili/webapi-msa-template](https://github.com/dmamulashvili/webapi-msa-template) | 1 | | [dkw99/home-cluster](https://github.com/dkw99/home-cluster) | 1 | -| [denis-ev/k8s-lab](https://github.com/denis-ev/k8s-lab) | 1 | | [ahinko/simple-k8s-backup](https://github.com/ahinko/simple-k8s-backup) | 1 | | [ahinko/simple-pg-backup](https://github.com/ahinko/simple-pg-backup) | 1 | +| [proinsias/copier-python-template](https://github.com/proinsias/copier-python-template) | 1 | | [2zH/home-ops](https://github.com/2zH/home-ops) | 1 | | [snoopy82481/new_template_k3s](https://github.com/snoopy82481/new_template_k3s) | 1 | | [ahmadnassri/action-dotenv](https://github.com/ahmadnassri/action-dotenv) | 1 | @@ -484,20 +510,24 @@ | [ahmadnassri/docker-rapidoc-server](https://github.com/ahmadnassri/docker-rapidoc-server) | 1 | | [ahmadnassri/docker-gollum](https://github.com/ahmadnassri/docker-gollum) | 1 | | [dkw99/home-ops](https://github.com/dkw99/home-ops) | 1 | -| [evanofslack/slacknet](https://github.com/evanofslack/slacknet) | 1 | | [codecio/home-ops-old](https://github.com/codecio/home-ops-old) | 1 | | [ipedrazas/alacasa.lab](https://github.com/ipedrazas/alacasa.lab) | 1 | | [Apocrathia/flux-cluster](https://github.com/Apocrathia/flux-cluster) | 1 | | [wesley-dean-flexion/dockerized_sqlfluff](https://github.com/wesley-dean-flexion/dockerized_sqlfluff) | 1 | +| [beiertu-mms/shell-scripts](https://github.com/beiertu-mms/shell-scripts) | 1 | | [beiertu-mms/dotfiles](https://github.com/beiertu-mms/dotfiles) | 1 | | [azavea/green-equity-demo](https://github.com/azavea/green-equity-demo) | 1 | | [JaderDias/rust_dynamodb_local](https://github.com/JaderDias/rust_dynamodb_local) | 1 | | [daveio/tide](https://github.com/daveio/tide) | 1 | -| [practicalli/vspacecode](https://github.com/practicalli/vspacecode) | 1 | +| [practicalli/engineering-playbook](https://github.com/practicalli/engineering-playbook) | 1 | +| [ZEISS/imgdoc2](https://github.com/ZEISS/imgdoc2) | 1 | | [jmuelbert/jmbde-dotnet](https://github.com/jmuelbert/jmbde-dotnet) | 1 | | [brandonmcclure/Spooky-Screensaver](https://github.com/brandonmcclure/Spooky-Screensaver) | 1 | +| [brandonmcclure/vsce](https://github.com/brandonmcclure/vsce) | 1 | | [ortelius/scec-commons](https://github.com/ortelius/scec-commons) | 1 | -| [consorciocrm/sfdx-git-delta](https://github.com/consorciocrm/sfdx-git-delta) | 1 | +| [abame/demo-nodejs-app](https://github.com/abame/demo-nodejs-app) | 1 | +| [sarvex/gizlang.com](https://github.com/sarvex/gizlang.com) | 1 | +| [axelrindle/planningpoker](https://github.com/axelrindle/planningpoker) | 1 | | [leosuncin/todomvc-ngrx-app](https://github.com/leosuncin/todomvc-ngrx-app) | 1 | | [slim16165/Semantic-MediaWiki-Graph](https://github.com/slim16165/Semantic-MediaWiki-Graph) | 1 | | [zhibirc/ya2ber](https://github.com/zhibirc/ya2ber) | 1 | @@ -507,11 +537,19 @@ | [ahmadnassri/node-cloudevents-schemas](https://github.com/ahmadnassri/node-cloudevents-schemas) | 1 | | [ahmadnassri/template-action-node](https://github.com/ahmadnassri/template-action-node) | 1 | | [dgteixeira/pr-status-giphy-action](https://github.com/dgteixeira/pr-status-giphy-action) | 1 | -| [unixorn/ha-franklin](https://github.com/unixorn/ha-franklin) | 1 | +| [data-yaml/udc](https://github.com/data-yaml/udc) | 1 | +| [ortelius/ms-scorecard](https://github.com/ortelius/ms-scorecard) | 1 | +| [ortelius/ms-compitem-crud](https://github.com/ortelius/ms-compitem-crud) | 1 | | [spreequalle/ebuilds](https://github.com/spreequalle/ebuilds) | 1 | +| [doonga/terraform-github-repository](https://github.com/doonga/terraform-github-repository) | 1 | +| [bjw-s/terraform-github-repository](https://github.com/bjw-s/terraform-github-repository) | 1 | +| [tyriis/zigbee2mqtt-exporter](https://github.com/tyriis/zigbee2mqtt-exporter) | 1 | +| [tyriis/win2day-check](https://github.com/tyriis/win2day-check) | 1 | | [tyriis/bedrock-version-fetcher](https://github.com/tyriis/bedrock-version-fetcher) | 1 | | [flexion/jubilant-computing-machine](https://github.com/flexion/jubilant-computing-machine) | 1 | | [ahmadnassri/template-terraform](https://github.com/ahmadnassri/template-terraform) | 1 | +| [alvin-agidi/CodeLux](https://github.com/alvin-agidi/CodeLux) | 0 | +| [tonylea/PSSAToJunit](https://github.com/tonylea/PSSAToJunit) | 0 | | [JayTheBee/hirati](https://github.com/JayTheBee/hirati) | 0 | | [berlin4apk/ccache-action](https://github.com/berlin4apk/ccache-action) | 0 | | [guden/code-with-engineering-playbook](https://github.com/guden/code-with-engineering-playbook) | 0 | @@ -538,18 +576,19 @@ | [growthatco/growthatpkgs](https://github.com/growthatco/growthatpkgs) | 0 | | [lpsm-dev/rust-intro](https://github.com/lpsm-dev/rust-intro) | 0 | | [pgraverdy/actions-templates](https://github.com/pgraverdy/actions-templates) | 0 | +| [bioc/pareg](https://github.com/bioc/pareg) | 0 | +| [ilya-vdovenko/Students-WebApp](https://github.com/ilya-vdovenko/Students-WebApp) | 0 | +| [MythicDrops/json-schema-generator-gradle-plugin](https://github.com/MythicDrops/json-schema-generator-gradle-plugin) | 0 | | [kb5fls/container-security](https://github.com/kb5fls/container-security) | 0 | | [JeromyJSmith/zsh-quickstart-kit](https://github.com/JeromyJSmith/zsh-quickstart-kit) | 0 | | [REGEX777/pixelmontogo.com](https://github.com/REGEX777/pixelmontogo.com) | 0 | | [janderssonse/ort-ci-gitlab](https://github.com/janderssonse/ort-ci-gitlab) | 0 | | [unixorn/mastodon.plugin.zsh](https://github.com/unixorn/mastodon.plugin.zsh) | 0 | -| [diggsweden/digg-open-source-project-template](https://github.com/diggsweden/digg-open-source-project-template) | 0 | | [Raveen-Senanayake/testiotdevops](https://github.com/Raveen-Senanayake/testiotdevops) | 0 | | [svt/gradle-yapp-publisher-plugin](https://github.com/svt/gradle-yapp-publisher-plugin) | 0 | | [CanyonITS/PS-Winget-AutoUpdate](https://github.com/CanyonITS/PS-Winget-AutoUpdate) | 0 | | [devsisters/rust-protobuf](https://github.com/devsisters/rust-protobuf) | 0 | | [ruzickap/gha-test](https://github.com/ruzickap/gha-test) | 0 | -| [ruzickap/iac-test](https://github.com/ruzickap/iac-test) | 0 | | [janderssonse/janderscripts](https://github.com/janderssonse/janderscripts) | 0 | | [leongwc/helm-vulnerable](https://github.com/leongwc/helm-vulnerable) | 0 | | [shsingh/secureCodeBox](https://github.com/shsingh/secureCodeBox) | 0 | @@ -557,7 +596,6 @@ | [csramanareddy/pipleline](https://github.com/csramanareddy/pipleline) | 0 | | [recursion-ninja/cabal-lower-bounds](https://github.com/recursion-ninja/cabal-lower-bounds) | 0 | | [janderssonse/open-source-project-template](https://github.com/janderssonse/open-source-project-template) | 0 | -| [ruzickap/ruzickap](https://github.com/ruzickap/ruzickap) | 0 | | [ruzickap/container-build](https://github.com/ruzickap/container-build) | 0 | | [unixorn/hass-postgresql-backup](https://github.com/unixorn/hass-postgresql-backup) | 0 | | [ruzickap/blog-test.ruzicka.dev](https://github.com/ruzickap/blog-test.ruzicka.dev) | 0 | @@ -566,6 +604,7 @@ | [fuhraih/-hassio-addons](https://github.com/fuhraih/-hassio-addons) | 0 | | [ruzickap/myteam-adr](https://github.com/ruzickap/myteam-adr) | 0 | | [recursion-ninja/efficient-implied-alignment](https://github.com/recursion-ninja/efficient-implied-alignment) | 0 | +| [janderssonse/sariftool](https://github.com/janderssonse/sariftool) | 0 | | [recursion-ninja/personal-website](https://github.com/recursion-ninja/personal-website) | 0 | | [brandonmcclure/megalinter_repro](https://github.com/brandonmcclure/megalinter_repro) | 0 | | [coolhead/CodeSecurity](https://github.com/coolhead/CodeSecurity) | 0 | @@ -589,7 +628,6 @@ | [olivertodhunter/innovation-day-linter](https://github.com/olivertodhunter/innovation-day-linter) | 0 | | [softwaredevelop/test2](https://github.com/softwaredevelop/test2) | 0 | | [Farzad-Jalali/PowerShell](https://github.com/Farzad-Jalali/PowerShell) | 0 | -| [nugen-core/GitHub-Actions](https://github.com/nugen-core/GitHub-Actions) | 0 | | [MarioRomanDono/LIN](https://github.com/MarioRomanDono/LIN) | 0 | | [Mu-L/rust-protobuf](https://github.com/Mu-L/rust-protobuf) | 0 | | [MythicDrops/kindling](https://github.com/MythicDrops/kindling) | 0 | @@ -602,11 +640,9 @@ | [emacsmirror/elpa-clone](https://github.com/emacsmirror/elpa-clone) | 0 | | [emacsmirror/mb-url](https://github.com/emacsmirror/mb-url) | 0 | | [lars-reimann/.github](https://github.com/lars-reimann/.github) | 0 | -| [christianeiselt/Advent-Of-Code_Swift](https://github.com/christianeiselt/Advent-Of-Code_Swift) | 0 | | [MythicDrops/mythicdrops-gradle-plugin](https://github.com/MythicDrops/mythicdrops-gradle-plugin) | 0 | | [fluteds/css](https://github.com/fluteds/css) | 0 | | [epleypa/Home-AssistantConfig2](https://github.com/epleypa/Home-AssistantConfig2) | 0 | -| [neohelden/actions-library](https://github.com/neohelden/actions-library) | 0 | | [Jeebey/docker_images](https://github.com/Jeebey/docker_images) | 0 | | [adithyaamara/FlaskApp](https://github.com/adithyaamara/FlaskApp) | 0 | | [IlanCosman/tide-test](https://github.com/IlanCosman/tide-test) | 0 | @@ -616,6 +652,7 @@ | [jkoan/test-navit](https://github.com/jkoan/test-navit) | 0 | | [BishopClassicMotors/bishopclassicmotors.github.io](https://github.com/BishopClassicMotors/bishopclassicmotors.github.io) | 0 | | [withinfocus/withinfocus.github.io](https://github.com/withinfocus/withinfocus.github.io) | 0 | +| [xet7/act](https://github.com/xet7/act) | 0 | | [patinthehat/act](https://github.com/patinthehat/act) | 0 | | [sarvex/act](https://github.com/sarvex/act) | 0 | | [haunt98/act](https://github.com/haunt98/act) | 0 | @@ -649,12 +686,12 @@ | [Aljendro/clojure-deps-edn](https://github.com/Aljendro/clojure-deps-edn) | 0 | | [tylerw/clojure-deps-edn](https://github.com/tylerw/clojure-deps-edn) | 0 | | [safiahlberg/clojure-deps-edn](https://github.com/safiahlberg/clojure-deps-edn) | 0 | -| [Mees-Molenaar/clojure-deps-edn](https://github.com/Mees-Molenaar/clojure-deps-edn) | 0 | | [mlotysz/clojure-deps-edn](https://github.com/mlotysz/clojure-deps-edn) | 0 | | [Ninerian/clojure-deps-edn](https://github.com/Ninerian/clojure-deps-edn) | 0 | | [holyjak/clojure-deps-edn](https://github.com/holyjak/clojure-deps-edn) | 0 | | [jdhorwitz/clojure-deps-edn](https://github.com/jdhorwitz/clojure-deps-edn) | 0 | | [jeffp42ker/clojure-deps-edn](https://github.com/jeffp42ker/clojure-deps-edn) | 0 | +| [Starrick2001/Rosalian-Server](https://github.com/Starrick2001/Rosalian-Server) | 0 | | [Sploofie/biolast](https://github.com/Sploofie/biolast) | 0 | | [ToppleTheNun/nx-plugins](https://github.com/ToppleTheNun/nx-plugins) | 0 | | [Moneem4/t7d_products](https://github.com/Moneem4/t7d_products) | 0 | @@ -672,6 +709,7 @@ | [RamazaniDavid/nestjs-bp](https://github.com/RamazaniDavid/nestjs-bp) | 0 | | [armensano/prime-nestjs](https://github.com/armensano/prime-nestjs) | 0 | | [OmidBadkoubeh/yellow-dolphin](https://github.com/OmidBadkoubeh/yellow-dolphin) | 0 | +| [Riadloc/pear-dft](https://github.com/Riadloc/pear-dft) | 0 | | [datj9/prime-nestjs-boilerplate](https://github.com/datj9/prime-nestjs-boilerplate) | 0 | | [genuinetech/CIPP](https://github.com/genuinetech/CIPP) | 0 | | [jsmithb117/tax-router-redux](https://github.com/jsmithb117/tax-router-redux) | 0 | @@ -727,7 +765,6 @@ | [CingularIT/CIPP](https://github.com/CingularIT/CIPP) | 0 | | [s0nett123/CIPP](https://github.com/s0nett123/CIPP) | 0 | | [5kinnee/CIPP](https://github.com/5kinnee/CIPP) | 0 | -| [daniel-reactcp/CIPP](https://github.com/daniel-reactcp/CIPP) | 0 | | [Bayon-IT/CIPP](https://github.com/Bayon-IT/CIPP) | 0 | | [jdyderek/CIPP](https://github.com/jdyderek/CIPP) | 0 | | [tycosnh/CIPP](https://github.com/tycosnh/CIPP) | 0 | @@ -743,7 +780,6 @@ | [drewhack/CIPP](https://github.com/drewhack/CIPP) | 0 | | [Greg-Jennings/CIPP](https://github.com/Greg-Jennings/CIPP) | 0 | | [crvtec619/CIPP](https://github.com/crvtec619/CIPP) | 0 | -| [iteam-fjordane/CIPP](https://github.com/iteam-fjordane/CIPP) | 0 | | [afojtasek/CIPP](https://github.com/afojtasek/CIPP) | 0 | | [Lachy00/CIPP](https://github.com/Lachy00/CIPP) | 0 | | [TechRunnerIT/CIPP](https://github.com/TechRunnerIT/CIPP) | 0 | @@ -753,7 +789,6 @@ | [stc-bfd/CIPP](https://github.com/stc-bfd/CIPP) | 0 | | [cippapp-timefortitan/CIPP](https://github.com/cippapp-timefortitan/CIPP) | 0 | | [FullerIT/CIPP](https://github.com/FullerIT/CIPP) | 0 | -| [covenanttechnologysolutions/CIPP](https://github.com/covenanttechnologysolutions/CIPP) | 0 | | [3DKs/CIPP](https://github.com/3DKs/CIPP) | 0 | | [UNOBeheer/CIPP](https://github.com/UNOBeheer/CIPP) | 0 | | [schorlton/megalinter](https://github.com/schorlton/megalinter) | 0 | @@ -819,7 +854,6 @@ | [infinitycorey/CIPP](https://github.com/infinitycorey/CIPP) | 0 | | [Kyzen360/CIPP](https://github.com/Kyzen360/CIPP) | 0 | | [joejwright/CIPP](https://github.com/joejwright/CIPP) | 0 | -| [AmbitionsTechnologyGroup/CIPP](https://github.com/AmbitionsTechnologyGroup/CIPP) | 0 | | [et-thelogic/CIPP](https://github.com/et-thelogic/CIPP) | 0 | | [LucasBrunton/CIPP](https://github.com/LucasBrunton/CIPP) | 0 | | [jwinna/CIPP](https://github.com/jwinna/CIPP) | 0 | @@ -922,7 +956,6 @@ | [Frippin-it/CIPP](https://github.com/Frippin-it/CIPP) | 0 | | [sec-gp/CIPP](https://github.com/sec-gp/CIPP) | 0 | | [AntoJUICT/CIPP](https://github.com/AntoJUICT/CIPP) | 0 | -| [tes5884/CIPP](https://github.com/tes5884/CIPP) | 0 | | [Actabyte/CIPP](https://github.com/Actabyte/CIPP) | 0 | | [slsconsult/CIPP](https://github.com/slsconsult/CIPP) | 0 | | [mrapoc/CIPP](https://github.com/mrapoc/CIPP) | 0 | @@ -946,6 +979,17 @@ | [thomaseolsen/archaeology_rust_api](https://github.com/thomaseolsen/archaeology_rust_api) | 0 | | [nvuillam/demo-megalinter-security-flavor](https://github.com/nvuillam/demo-megalinter-security-flavor) | 0 | | [christianeiselt/AdventKit](https://github.com/christianeiselt/AdventKit) | 0 | +| [asmtal/terraform-mysql-database](https://github.com/asmtal/terraform-mysql-database) | 0 | +| [asmtal/terraform-aws-policy-joiner](https://github.com/asmtal/terraform-aws-policy-joiner) | 0 | +| [asmtal/terraform-postgresql-database](https://github.com/asmtal/terraform-postgresql-database) | 0 | +| [asmtal/terraform-aws-efs](https://github.com/asmtal/terraform-aws-efs) | 0 | +| [asmtal/terraform-aws-iam-group-set](https://github.com/asmtal/terraform-aws-iam-group-set) | 0 | +| [asmtal/terraform-aws-acm-1](https://github.com/asmtal/terraform-aws-acm-1) | 0 | +| [asmtal/terraform-aws-ecr-repository](https://github.com/asmtal/terraform-aws-ecr-repository) | 0 | +| [asmtal/terraform-aws-iam-user](https://github.com/asmtal/terraform-aws-iam-user) | 0 | +| [asmtal/terraform-aws-elasticache](https://github.com/asmtal/terraform-aws-elasticache) | 0 | +| [asmtal/terraform-aws-dns-ms](https://github.com/asmtal/terraform-aws-dns-ms) | 0 | +| [asmtal/terraform-aws-dynamodb-1](https://github.com/asmtal/terraform-aws-dynamodb-1) | 0 | | [xoap-io/xoap-psadt-framework-template](https://github.com/xoap-io/xoap-psadt-framework-template) | 0 | | [ahinko/simple-dhcp](https://github.com/ahinko/simple-dhcp) | 0 | | [DamianFlynn/acf-ref-tf-module-virtual-machine](https://github.com/DamianFlynn/acf-ref-tf-module-virtual-machine) | 0 | @@ -988,7 +1032,9 @@ | [xoap-io/terraform-aws-storage-s3](https://github.com/xoap-io/terraform-aws-storage-s3) | 0 | | [xoap-io/terraform-aws-networking-vpc-endpoint](https://github.com/xoap-io/terraform-aws-networking-vpc-endpoint) | 0 | | [xoap-io/terraform-aws-networking-vpc](https://github.com/xoap-io/terraform-aws-networking-vpc) | 0 | -| [VenkateswaraReddy5/pocapigee](https://github.com/VenkateswaraReddy5/pocapigee) | 0 | +| [AV3RG/.github](https://github.com/AV3RG/.github) | 0 | +| [yagnesh150415/taskB](https://github.com/yagnesh150415/taskB) | 0 | +| [Shaydc/repo1](https://github.com/Shaydc/repo1) | 0 | | [ro-shou/github-actions-demo](https://github.com/ro-shou/github-actions-demo) | 0 | | [mjain9041/RepoC](https://github.com/mjain9041/RepoC) | 0 | | [mjain9041/RepoB](https://github.com/mjain9041/RepoB) | 0 | @@ -1010,7 +1056,6 @@ | [YagneshKhamar/GreenridgeApp-3](https://github.com/YagneshKhamar/GreenridgeApp-3) | 0 | | [YagneshKhamar/GreenridgeApp-2](https://github.com/YagneshKhamar/GreenridgeApp-2) | 0 | | [YagneshKhamar/GreenridgeApp-1](https://github.com/YagneshKhamar/GreenridgeApp-1) | 0 | -| [sjemy2210/git-extra-commands](https://github.com/sjemy2210/git-extra-commands) | 0 | | [harmansingh2908/repoC](https://github.com/harmansingh2908/repoC) | 0 | | [avinashparkale/repoA](https://github.com/avinashparkale/repoA) | 0 | | [avinashparkale/repoB](https://github.com/avinashparkale/repoB) | 0 | @@ -1025,7 +1070,7 @@ | [Oraw-lab/RepoA](https://github.com/Oraw-lab/RepoA) | 0 | | [Oraw-lab/RepoC](https://github.com/Oraw-lab/RepoC) | 0 | | [SHAILAJASHEKAR/apigeeterraform](https://github.com/SHAILAJASHEKAR/apigeeterraform) | 0 | -| [Osaroki/terraform-modules](https://github.com/Osaroki/terraform-modules) | 0 | +| [oussamazerrouki/terraform-modules](https://github.com/oussamazerrouki/terraform-modules) | 0 | | [yogixni/repositoryC](https://github.com/yogixni/repositoryC) | 0 | | [yogixni/repositoryA](https://github.com/yogixni/repositoryA) | 0 | | [yogixni/repositoryB](https://github.com/yogixni/repositoryB) | 0 | @@ -1095,8 +1140,7 @@ | [slumdog1/repoA](https://github.com/slumdog1/repoA) | 0 | | [tmpgit3000/GreenridgeApp](https://github.com/tmpgit3000/GreenridgeApp) | 0 | | [alexsh88/GreenridgeApp](https://github.com/alexsh88/GreenridgeApp) | 0 | -| [matejkosiarcik/css-mini-mini-mini](https://github.com/matejkosiarcik/css-mini-mini-mini) | 0 | -| [matejkosiarcik/defaults](https://github.com/matejkosiarcik/defaults) | 0 | +| [matejkosiarcik/cssrm](https://github.com/matejkosiarcik/cssrm) | 0 | | [matejkosiarcik/sitemap2urllist](https://github.com/matejkosiarcik/sitemap2urllist) | 0 | | [Yonatanper/Test](https://github.com/Yonatanper/Test) | 0 | | [AdirSamara/repoC](https://github.com/AdirSamara/repoC) | 0 | @@ -1105,8 +1149,6 @@ | [Johndoewinks/despatcher-bot-jsons](https://github.com/Johndoewinks/despatcher-bot-jsons) | 0 | | [NotoriousBims/mission-chief-bot-jsons](https://github.com/NotoriousBims/mission-chief-bot-jsons) | 0 | | [hywmongous/golang-template](https://github.com/hywmongous/golang-template) | 0 | -| [aurochsen/mission-chief-bot-jsons](https://github.com/aurochsen/mission-chief-bot-jsons) | 0 | -| [Jasstkn/gcloud-helmfile](https://github.com/Jasstkn/gcloud-helmfile) | 0 | | [llaville/llaville.github.io](https://github.com/llaville/llaville.github.io) | 0 | | [hybridadmin/ansible-role-clickhouse](https://github.com/hybridadmin/ansible-role-clickhouse) | 0 | | [llaville/flames](https://github.com/llaville/flames) | 0 | @@ -1140,14 +1182,48 @@ | [raaf77/ocsreports](https://github.com/raaf77/ocsreports) | 0 | | [mimmi20/laminas-module-errorhandling](https://github.com/mimmi20/laminas-module-errorhandling) | 0 | | [mimmi20/device-detector-factory](https://github.com/mimmi20/device-detector-factory) | 0 | -| [mimmi20/useragent-parser-comparison](https://github.com/mimmi20/useragent-parser-comparison) | 0 | -| [mimmi20/browscap-helper-source](https://github.com/mimmi20/browscap-helper-source) | 0 | | [mimmi20/contact](https://github.com/mimmi20/contact) | 0 | | [rciam/simplesamlphp-module-attrauthrestvo](https://github.com/rciam/simplesamlphp-module-attrauthrestvo) | 0 | | [rciam/simplesamlphp-module-assurance](https://github.com/rciam/simplesamlphp-module-assurance) | 0 | | [rciam/simplesamlphp-module-userid](https://github.com/rciam/simplesamlphp-module-userid) | 0 | | [Teasel-Ian/terraform](https://github.com/Teasel-Ian/terraform) | 0 | +| [MrMarble/home-ops](https://github.com/MrMarble/home-ops) | 0 | +| [axelrindle/certbot](https://github.com/axelrindle/certbot) | 0 | +| [vargheseibm/bb-app-source](https://github.com/vargheseibm/bb-app-source) | 0 | +| [MRDGH2821/CodersPack](https://github.com/MRDGH2821/CodersPack) | 0 | +| [anushshukla/node.ts](https://github.com/anushshukla/node.ts) | 0 | +| [bjw-s/lego-auto](https://github.com/bjw-s/lego-auto) | 0 | +| [RedHatProductSecurity/oscal-profiles](https://github.com/RedHatProductSecurity/oscal-profiles) | 0 | +| [RedHatProductSecurity/trestle-bot](https://github.com/RedHatProductSecurity/trestle-bot) | 0 | +| [RedHatProductSecurity/oscal-component-definitions](https://github.com/RedHatProductSecurity/oscal-component-definitions) | 0 | +| [itsarshiya/chooni](https://github.com/itsarshiya/chooni) | 0 | +| [metaed-gauxplay/juniper](https://github.com/metaed-gauxplay/juniper) | 0 | +| [esimplicityinc/foundry-workflows](https://github.com/esimplicityinc/foundry-workflows) | 0 | +| [burnsy1882/IndySCCA-Live](https://github.com/burnsy1882/IndySCCA-Live) | 0 | +| [devcontainers-community/features](https://github.com/devcontainers-community/features) | 0 | +| [miracum/kafka-connect-images](https://github.com/miracum/kafka-connect-images) | 0 | +| [GeekRishabh/video-app](https://github.com/GeekRishabh/video-app) | 0 | +| [codewdhruv/testing-ml](https://github.com/codewdhruv/testing-ml) | 0 | +| [codewdhruv/actions-harness-testing](https://github.com/codewdhruv/actions-harness-testing) | 0 | +| [matejkosiarcik/defaults](https://github.com/matejkosiarcik/defaults) | 0 | +| [jscheytt/jscheytt.github.io.hugo](https://github.com/jscheytt/jscheytt.github.io.hugo) | 0 | +| [matejkosiarcik/personal-scripts](https://github.com/matejkosiarcik/personal-scripts) | 0 | +| [kinJen39/alt-jenkins-actions](https://github.com/kinJen39/alt-jenkins-actions) | 0 | +| [ryan-mcd/cloud-self-hosted-ops](https://github.com/ryan-mcd/cloud-self-hosted-ops) | 0 | +| [fabricesemti80/home-gitops-cluster](https://github.com/fabricesemti80/home-gitops-cluster) | 0 | +| [alflig/azure-bicep-pipeline](https://github.com/alflig/azure-bicep-pipeline) | 0 | +| [samipsolutions/k3s-cluster](https://github.com/samipsolutions/k3s-cluster) | 0 | +| [amlodzianowski/s3-cache-header-setter-python](https://github.com/amlodzianowski/s3-cache-header-setter-python) | 0 | +| [Anonymous17986/tele](https://github.com/Anonymous17986/tele) | 0 | +| [seandonohoo/estate-ops](https://github.com/seandonohoo/estate-ops) | 0 | +| [PrymalInstynct/k8s-prod-cluster](https://github.com/PrymalInstynct/k8s-prod-cluster) | 0 | +| [puzzler995/k8s-homelab](https://github.com/puzzler995/k8s-homelab) | 0 | +| [GenZmeY/KF2-StartWave](https://github.com/GenZmeY/KF2-StartWave) | 0 | +| [GenZmeY/KF2-TAWOD](https://github.com/GenZmeY/KF2-TAWOD) | 0 | +| [GenZmeY/KF2-ZedSpawner](https://github.com/GenZmeY/KF2-ZedSpawner) | 0 | +| [GenZmeY/KF2-DroppedPickupLifespan](https://github.com/GenZmeY/KF2-DroppedPickupLifespan) | 0 | | [dochang/asdf-carbonyl](https://github.com/dochang/asdf-carbonyl) | 0 | +| [GenZmeY/KF2-CustomTraderInventory](https://github.com/GenZmeY/KF2-CustomTraderInventory) | 0 | | [GenZmeY/KF2-ControlledVoteCollector](https://github.com/GenZmeY/KF2-ControlledVoteCollector) | 0 | | [Koridore/discel](https://github.com/Koridore/discel) | 0 | | [GenZmeY/KF2-BoxPainterLib](https://github.com/GenZmeY/KF2-BoxPainterLib) | 0 | @@ -1177,7 +1253,6 @@ | [dochang/asdf-kotlin-language-server](https://github.com/dochang/asdf-kotlin-language-server) | 0 | | [ctbenergy/flux-cluster-k3s-ubuntu-template](https://github.com/ctbenergy/flux-cluster-k3s-ubuntu-template) | 0 | | [Jasstkn/lenslocked](https://github.com/Jasstkn/lenslocked) | 0 | -| [fisherbln/virt-ops](https://github.com/fisherbln/virt-ops) | 0 | | [actions-marketplace-validations/yeaung276_sarif-annotator](https://github.com/actions-marketplace-validations/yeaung276_sarif-annotator) | 0 | | [dochang/sheepfold](https://github.com/dochang/sheepfold) | 0 | | [VirtwhoQE/virtwho-ci](https://github.com/VirtwhoQE/virtwho-ci) | 0 | @@ -1209,7 +1284,6 @@ | [litepupp/ppm-image-tools](https://github.com/litepupp/ppm-image-tools) | 0 | | [swapneshkhade/O2Physics2](https://github.com/swapneshkhade/O2Physics2) | 0 | | [ADeane6/flux-cluster](https://github.com/ADeane6/flux-cluster) | 0 | -| [tas-2022-2/pet-project-thiagofurlan](https://github.com/tas-2022-2/pet-project-thiagofurlan) | 0 | | [jorgiuxs/Rodaku-Home-cluster](https://github.com/jorgiuxs/Rodaku-Home-cluster) | 0 | | [rational-net/virgo-k8s](https://github.com/rational-net/virgo-k8s) | 0 | | [nprodromou/apk3s-rh](https://github.com/nprodromou/apk3s-rh) | 0 | @@ -1219,18 +1293,15 @@ | [timalpha/home-ops](https://github.com/timalpha/home-ops) | 0 | | [KoukiSoeda/O2Physics_old](https://github.com/KoukiSoeda/O2Physics_old) | 0 | | [EHMRS/MiniatureRailwaySignalling](https://github.com/EHMRS/MiniatureRailwaySignalling) | 0 | -| [MarcoMihaiCondrache/infrastructure-test](https://github.com/MarcoMihaiCondrache/infrastructure-test) | 0 | | [privsim/friendly-inquisitive](https://github.com/privsim/friendly-inquisitive) | 0 | | [bownie/cto-game](https://github.com/bownie/cto-game) | 0 | | [kjkent/kod-home-ops](https://github.com/kjkent/kod-home-ops) | 0 | | [tkuennen/flux-shortstack](https://github.com/tkuennen/flux-shortstack) | 0 | -| [Venoox/k8s-cluster](https://github.com/Venoox/k8s-cluster) | 0 | | [andrewb76/cv](https://github.com/andrewb76/cv) | 0 | | [mdaydevelopment/k8s-cluster](https://github.com/mdaydevelopment/k8s-cluster) | 0 | | [nhudson/pik8s](https://github.com/nhudson/pik8s) | 0 | | [staringatsun/legendary-happiness](https://github.com/staringatsun/legendary-happiness) | 0 | -| [MRDGH2821/Factorio-Blueprint-Upgrade-Planner](https://github.com/MRDGH2821/Factorio-Blueprint-Upgrade-Planner) | 0 | -| [PrymalInstynct/k8s-prod-cluster](https://github.com/PrymalInstynct/k8s-prod-cluster) | 0 | +| [MRDGH2821/Factorio-Blueprint-Upgrade-Patcher](https://github.com/MRDGH2821/Factorio-Blueprint-Upgrade-Patcher) | 0 | | [miracum/registry-on-fhir](https://github.com/miracum/registry-on-fhir) | 0 | | [parsec/anton](https://github.com/parsec/anton) | 0 | | [ctbenergy/flux-cluster-staging](https://github.com/ctbenergy/flux-cluster-staging) | 0 | @@ -1239,7 +1310,6 @@ | [junhsss/flux-cluster](https://github.com/junhsss/flux-cluster) | 0 | | [girlpunk/RAVEN](https://github.com/girlpunk/RAVEN) | 0 | | [zbigniewzolnierowicz/talos-cluster](https://github.com/zbigniewzolnierowicz/talos-cluster) | 0 | -| [proinsias/copier-python-template](https://github.com/proinsias/copier-python-template) | 0 | | [attiolli/onedrop-template](https://github.com/attiolli/onedrop-template) | 0 | | [NilssonCJ/k3s-nsdev-sidious](https://github.com/NilssonCJ/k3s-nsdev-sidious) | 0 | | [fabricesemti80/home-ops](https://github.com/fabricesemti80/home-ops) | 0 | @@ -1256,9 +1326,8 @@ | [jjalvare/thishouse](https://github.com/jjalvare/thishouse) | 0 | | [funkel1989/kube-v1](https://github.com/funkel1989/kube-v1) | 0 | | [Roguito/flux-cluster-template](https://github.com/Roguito/flux-cluster-template) | 0 | -| [aumer-amr/lab](https://github.com/aumer-amr/lab) | 0 | | [asujata/home-ops](https://github.com/asujata/home-ops) | 0 | -| [t3cht0nic/talz-cluster](https://github.com/t3cht0nic/talz-cluster) | 0 | +| [CipherPulse/talz-cluster](https://github.com/CipherPulse/talz-cluster) | 0 | | [vdbe/homelab](https://github.com/vdbe/homelab) | 0 | | [negative7/alex-home](https://github.com/negative7/alex-home) | 0 | | [jr0dd/aws-gitops](https://github.com/jr0dd/aws-gitops) | 0 | @@ -1276,20 +1345,21 @@ | [spacesyl/klus](https://github.com/spacesyl/klus) | 0 | | [mrtolkien/cluster-old](https://github.com/mrtolkien/cluster-old) | 0 | | [vyas-n/vyas-n](https://github.com/vyas-n/vyas-n) | 0 | +| [fuzzmaestrotest/ARO_TEST](https://github.com/fuzzmaestrotest/ARO_TEST) | 0 | | [invertedorigin/home-infra](https://github.com/invertedorigin/home-infra) | 0 | | [practicalli-john/neovim-mkdocs](https://github.com/practicalli-john/neovim-mkdocs) | 0 | -| [beiertu-mms/shell-scripts](https://github.com/beiertu-mms/shell-scripts) | 0 | | [ly4e/kali-gui-container-image](https://github.com/ly4e/kali-gui-container-image) | 0 | | [ly4e/prelude-operator-headless](https://github.com/ly4e/prelude-operator-headless) | 0 | +| [alamin655/websurfx](https://github.com/alamin655/websurfx) | 0 | | [LukeEvansTech/hugo-communityspeakers](https://github.com/LukeEvansTech/hugo-communityspeakers) | 0 | | [ankita-nema/ValidationAndHook](https://github.com/ankita-nema/ValidationAndHook) | 0 | | [ankita-nema/SampleWebhook](https://github.com/ankita-nema/SampleWebhook) | 0 | -| [mtngtnsh/jb-notes](https://github.com/mtngtnsh/jb-notes) | 0 | +| [TommyE123/transmission-tracker-blocklist-updater](https://github.com/TommyE123/transmission-tracker-blocklist-updater) | 0 | +| [motoish/jb-notes](https://github.com/motoish/jb-notes) | 0 | | [actions-marketplace-validations/ahmadnassri_action-changed-files](https://github.com/actions-marketplace-validations/ahmadnassri_action-changed-files) | 0 | | [withinfocus/withinfocus](https://github.com/withinfocus/withinfocus) | 0 | | [BishopClassicMotors/.github](https://github.com/BishopClassicMotors/.github) | 0 | | [practicalli/amazon-web-services](https://github.com/practicalli/amazon-web-services) | 0 | -| [practicalli/engineering-playbook](https://github.com/practicalli/engineering-playbook) | 0 | | [actions-marketplace-validations/ahmadnassri_action-npm-global-path](https://github.com/actions-marketplace-validations/ahmadnassri_action-npm-global-path) | 0 | | [actions-marketplace-validations/ahmadnassri_action-metadata](https://github.com/actions-marketplace-validations/ahmadnassri_action-metadata) | 0 | | [actions-marketplace-validations/ahmadnassri_action-google-cloud-sql-proxy](https://github.com/actions-marketplace-validations/ahmadnassri_action-google-cloud-sql-proxy) | 0 | @@ -1297,21 +1367,24 @@ | [actions-marketplace-validations/ahmadnassri_action-dotenv](https://github.com/actions-marketplace-validations/ahmadnassri_action-dotenv) | 0 | | [MRDGH2821/MRDGH2821](https://github.com/MRDGH2821/MRDGH2821) | 0 | | [jmuelbert/qt_conan_boilerplate_template](https://github.com/jmuelbert/qt_conan_boilerplate_template) | 0 | +| [dorssel/workflows](https://github.com/dorssel/workflows) | 0 | +| [Vocario/com.vocario.eventbasedarchitecture](https://github.com/Vocario/com.vocario.eventbasedarchitecture) | 0 | +| [Vocario/com.vocario.gamestatemanager](https://github.com/Vocario/com.vocario.gamestatemanager) | 0 | +| [jmuelbert/jmuelbert.github.io](https://github.com/jmuelbert/jmuelbert.github.io) | 0 | +| [brandonmcclure/elixir-devcontainer](https://github.com/brandonmcclure/elixir-devcontainer) | 0 | | [lumarel/PowerShell_Scripts](https://github.com/lumarel/PowerShell_Scripts) | 0 | | [brandonmcclure/devcontainers](https://github.com/brandonmcclure/devcontainers) | 0 | -| [ZEISS/imgdoc2](https://github.com/ZEISS/imgdoc2) | 0 | | [jmuelbert/cleardirectory](https://github.com/jmuelbert/cleardirectory) | 0 | | [jmuelbert/jmbde-java](https://github.com/jmuelbert/jmbde-java) | 0 | | [jmuelbert/jmbde-python](https://github.com/jmuelbert/jmbde-python) | 0 | | [brandonmcclure/LudamDare52](https://github.com/brandonmcclure/LudamDare52) | 0 | -| [jmuelbert/jmuelbert.github.io](https://github.com/jmuelbert/jmuelbert.github.io) | 0 | | [inmortalbobz/usbipd-win](https://github.com/inmortalbobz/usbipd-win) | 0 | | [brandonmcclure/vscode-pwsh](https://github.com/brandonmcclure/vscode-pwsh) | 0 | -| [brandonmcclure/vsce](https://github.com/brandonmcclure/vsce) | 0 | | [brandonmcclure/elixir_helloworld](https://github.com/brandonmcclure/elixir_helloworld) | 0 | | [brandonmcclure/unitybuild_test](https://github.com/brandonmcclure/unitybuild_test) | 0 | | [brandonmcclure/ansible-role-githubrunner](https://github.com/brandonmcclure/ansible-role-githubrunner) | 0 | | [dorssel/dotnet-aes-extra](https://github.com/dorssel/dotnet-aes-extra) | 0 | +| [gluwa/subscan-essentials](https://github.com/gluwa/subscan-essentials) | 0 | | [ortelius/scec-validate-user](https://github.com/ortelius/scec-validate-user) | 0 | | [ortelius/scec-validate-signing](https://github.com/ortelius/scec-validate-signing) | 0 | | [ortelius/scec-validate-provenance](https://github.com/ortelius/scec-validate-provenance) | 0 | @@ -1329,9 +1402,128 @@ | [ortelius/scec-appver](https://github.com/ortelius/scec-appver) | 0 | | [ortelius/scec-app-tag](https://github.com/ortelius/scec-app-tag) | 0 | | [ortelius/scec-domain](https://github.com/ortelius/scec-domain) | 0 | -| [beiertu-mms/cli-app-template](https://github.com/beiertu-mms/cli-app-template) | 0 | | [beiertu-mms/sonarqube-report](https://github.com/beiertu-mms/sonarqube-report) | 0 | | [charkchalk/backend](https://github.com/charkchalk/backend) | 0 | +| [sarvex/marko](https://github.com/sarvex/marko) | 0 | +| [sarvex/tabby](https://github.com/sarvex/tabby) | 0 | +| [sarvex/swift-collections](https://github.com/sarvex/swift-collections) | 0 | +| [sarvex/whisper](https://github.com/sarvex/whisper) | 0 | +| [sarvex/k3s](https://github.com/sarvex/k3s) | 0 | +| [sarvex/CodeGeeX](https://github.com/sarvex/CodeGeeX) | 0 | +| [sarvex/FasterTransformer](https://github.com/sarvex/FasterTransformer) | 0 | +| [sarvex/lottie-ios](https://github.com/sarvex/lottie-ios) | 0 | +| [sarvex/gopeed](https://github.com/sarvex/gopeed) | 0 | +| [sarvex/noodle](https://github.com/sarvex/noodle) | 0 | +| [sarvex/vscode-vite](https://github.com/sarvex/vscode-vite) | 0 | +| [sarvex/runme](https://github.com/sarvex/runme) | 0 | +| [sarvex/unilm](https://github.com/sarvex/unilm) | 0 | +| [sarvex/MudBlazor](https://github.com/sarvex/MudBlazor) | 0 | +| [sarvex/rclone](https://github.com/sarvex/rclone) | 0 | +| [sarvex/primihub](https://github.com/sarvex/primihub) | 0 | +| [sarvex/redis-py](https://github.com/sarvex/redis-py) | 0 | +| [sarvex/carbon-design-system](https://github.com/sarvex/carbon-design-system) | 0 | +| [sarvex/joy-of-code](https://github.com/sarvex/joy-of-code) | 0 | +| [sarvex/AstroNvim](https://github.com/sarvex/AstroNvim) | 0 | +| [sarvex/mmaction2](https://github.com/sarvex/mmaction2) | 0 | +| [sarvex/spaCy](https://github.com/sarvex/spaCy) | 0 | +| [sarvex/composer](https://github.com/sarvex/composer) | 0 | +| [sarvex/streaming](https://github.com/sarvex/streaming) | 0 | +| [sarvex/livebook](https://github.com/sarvex/livebook) | 0 | +| [sarvex/DragGAN](https://github.com/sarvex/DragGAN) | 0 | +| [sarvex/CosmicNvim](https://github.com/sarvex/CosmicNvim) | 0 | +| [sarvex/leetcode-next](https://github.com/sarvex/leetcode-next) | 0 | +| [sarvex/atom](https://github.com/sarvex/atom) | 0 | +| [sarvex/lobster](https://github.com/sarvex/lobster) | 0 | +| [sarvex/crates.io](https://github.com/sarvex/crates.io) | 0 | +| [sarvex/.files](https://github.com/sarvex/.files) | 0 | +| [sarvex/kakoune](https://github.com/sarvex/kakoune) | 0 | +| [sarvex/lit](https://github.com/sarvex/lit) | 0 | +| [sarvex/slint](https://github.com/sarvex/slint) | 0 | +| [sarvex/ExpensifyApp](https://github.com/sarvex/ExpensifyApp) | 0 | +| [sarvex/super-gradients](https://github.com/sarvex/super-gradients) | 0 | +| [sarvex/plane](https://github.com/sarvex/plane) | 0 | +| [sarvex/KernelSU](https://github.com/sarvex/KernelSU) | 0 | +| [sarvex/immich](https://github.com/sarvex/immich) | 0 | +| [sarvex/CodeEdit](https://github.com/sarvex/CodeEdit) | 0 | +| [sarvex/helix](https://github.com/sarvex/helix) | 0 | +| [sarvex/ui](https://github.com/sarvex/ui) | 0 | +| [sarvex/breadit](https://github.com/sarvex/breadit) | 0 | +| [sarvex/yookta.com](https://github.com/sarvex/yookta.com) | 0 | +| [sarvex/xauny.com](https://github.com/sarvex/xauny.com) | 0 | +| [sarvex/vysad.com](https://github.com/sarvex/vysad.com) | 0 | +| [sarvex/vypan.com](https://github.com/sarvex/vypan.com) | 0 | +| [sarvex/vibhuty.com](https://github.com/sarvex/vibhuty.com) | 0 | +| [sarvex/upkrn.com](https://github.com/sarvex/upkrn.com) | 0 | +| [sarvex/shrisiva.com](https://github.com/sarvex/shrisiva.com) | 0 | +| [sarvex/sarvex.jatasra.com](https://github.com/sarvex/sarvex.jatasra.com) | 0 | +| [sarvex/qusyd.com](https://github.com/sarvex/qusyd.com) | 0 | +| [sarvex/punnan.com](https://github.com/sarvex/punnan.com) | 0 | +| [sarvex/prarcan.com](https://github.com/sarvex/prarcan.com) | 0 | +| [sarvex/prajyakalp.com](https://github.com/sarvex/prajyakalp.com) | 0 | +| [sarvex/poorty.com](https://github.com/sarvex/poorty.com) | 0 | +| [sarvex/poonam.jatasra.com](https://github.com/sarvex/poonam.jatasra.com) | 0 | +| [sarvex/nyrupt.com](https://github.com/sarvex/nyrupt.com) | 0 | +| [sarvex/nirupit.com](https://github.com/sarvex/nirupit.com) | 0 | +| [sarvex/nabhilax.jatasra.com](https://github.com/sarvex/nabhilax.jatasra.com) | 0 | +| [sarvex/nabhilax.com](https://github.com/sarvex/nabhilax.com) | 0 | +| [sarvex/labdhy.com](https://github.com/sarvex/labdhy.com) | 0 | +| [sarvex/jatasra.com](https://github.com/sarvex/jatasra.com) | 0 | +| [sarvex/ixipro.com](https://github.com/sarvex/ixipro.com) | 0 | +| [sarvex/harmaxa.jatasra.com](https://github.com/sarvex/harmaxa.jatasra.com) | 0 | +| [sarvex/harmaxa.com](https://github.com/sarvex/harmaxa.com) | 0 | +| [sarvex/gem.gen.in](https://github.com/sarvex/gem.gen.in) | 0 | +| [sarvex/e3cart.com](https://github.com/sarvex/e3cart.com) | 0 | +| [sarvex/cppfronts.com](https://github.com/sarvex/cppfronts.com) | 0 | +| [sarvex/cppfront.org](https://github.com/sarvex/cppfront.org) | 0 | +| [sarvex/chytr.com](https://github.com/sarvex/chytr.com) | 0 | +| [sarvex/bhanjak.com](https://github.com/sarvex/bhanjak.com) | 0 | +| [sarvex/aushadhy.com](https://github.com/sarvex/aushadhy.com) | 0 | +| [sarvex/araugya.com](https://github.com/sarvex/araugya.com) | 0 | +| [sarvex/apeyro.com](https://github.com/sarvex/apeyro.com) | 0 | +| [sarvex/aaxep.com](https://github.com/sarvex/aaxep.com) | 0 | +| [sarvex/com-meta](https://github.com/sarvex/com-meta) | 0 | +| [sarvex/simple_cms](https://github.com/sarvex/simple_cms) | 0 | +| [sarvex/offensive-scopes](https://github.com/sarvex/offensive-scopes) | 0 | +| [sarvex/comprehensive-rust](https://github.com/sarvex/comprehensive-rust) | 0 | +| [sjatasra/comprehensive-rust](https://github.com/sjatasra/comprehensive-rust) | 0 | +| [sarvex/popular-parsec](https://github.com/sarvex/popular-parsec) | 0 | +| [sarvex/astro-crash-course](https://github.com/sarvex/astro-crash-course) | 0 | +| [sarvex/unleashed-firmware](https://github.com/sarvex/unleashed-firmware) | 0 | +| [sarvex/spin](https://github.com/sarvex/spin) | 0 | +| [sarvex/ghidra](https://github.com/sarvex/ghidra) | 0 | +| [sarvex/qwik-unpic](https://github.com/sarvex/qwik-unpic) | 0 | +| [sarvex/SpaceVim](https://github.com/sarvex/SpaceVim) | 0 | +| [sarvex/playwright-ct-qwik](https://github.com/sarvex/playwright-ct-qwik) | 0 | +| [sarvex/qwik-flow](https://github.com/sarvex/qwik-flow) | 0 | +| [sarvex/qwik-inject](https://github.com/sarvex/qwik-inject) | 0 | +| [sarvex/qwik-cypress](https://github.com/sarvex/qwik-cypress) | 0 | +| [sarvex/qwik-image](https://github.com/sarvex/qwik-image) | 0 | +| [sarvex/qwik-ui](https://github.com/sarvex/qwik-ui) | 0 | +| [sarvex/rust-by-practice](https://github.com/sarvex/rust-by-practice) | 0 | +| [sarvex/create-o7-app](https://github.com/sarvex/create-o7-app) | 0 | +| [sarvex/create-jd-app](https://github.com/sarvex/create-jd-app) | 0 | +| [sarvex/sidebase](https://github.com/sarvex/sidebase) | 0 | +| [sarvex/bling](https://github.com/sarvex/bling) | 0 | +| [sarvex/chotyk.com](https://github.com/sarvex/chotyk.com) | 0 | +| [sarvex/FlagAI](https://github.com/sarvex/FlagAI) | 0 | +| [sarvex/radon](https://github.com/sarvex/radon) | 0 | +| [Blue-BigTech/Auth-Template-Nest.js](https://github.com/Blue-BigTech/Auth-Template-Nest.js) | 0 | +| [sarvex/offensive-objcpp](https://github.com/sarvex/offensive-objcpp) | 0 | +| [sarvex/offensive-racket](https://github.com/sarvex/offensive-racket) | 0 | +| [sarvex/c-maelstrom](https://github.com/sarvex/c-maelstrom) | 0 | +| [sarvex/clojure-maelstrom](https://github.com/sarvex/clojure-maelstrom) | 0 | +| [sarvex/cpp-front-maelstrom](https://github.com/sarvex/cpp-front-maelstrom) | 0 | +| [sarvex/c-sharp-maelstrom](https://github.com/sarvex/c-sharp-maelstrom) | 0 | +| [sarvex/c3-maelstrom](https://github.com/sarvex/c3-maelstrom) | 0 | +| [sarvex/carbon-maelstrom](https://github.com/sarvex/carbon-maelstrom) | 0 | +| [sarvex/cpp-gold-maelstrom](https://github.com/sarvex/cpp-gold-maelstrom) | 0 | +| [sarvex/harbour-maelstrom](https://github.com/sarvex/harbour-maelstrom) | 0 | +| [sarvex/java-maelstrom](https://github.com/sarvex/java-maelstrom) | 0 | +| [sarvex/ispc-maelstrom](https://github.com/sarvex/ispc-maelstrom) | 0 | +| [sarvex/cuda-maelstrom](https://github.com/sarvex/cuda-maelstrom) | 0 | +| [sarvex/redux-demo](https://github.com/sarvex/redux-demo) | 0 | +| [sarvex/qwik-starter-template](https://github.com/sarvex/qwik-starter-template) | 0 | +| [alexlu0917/nest-auth](https://github.com/alexlu0917/nest-auth) | 0 | | [sarvex/megalinter](https://github.com/sarvex/megalinter) | 0 | | [sarvex/qwik-starter](https://github.com/sarvex/qwik-starter) | 0 | | [bonbonn1912/bonbonn-game-tracker](https://github.com/bonbonn1912/bonbonn-game-tracker) | 0 | @@ -1343,7 +1535,6 @@ | [actions-marketplace-validations/ahmadnassri_action-template-repository-sync](https://github.com/actions-marketplace-validations/ahmadnassri_action-template-repository-sync) | 0 | | [actions-marketplace-validations/dgteixeira_pr-status-giphy-action](https://github.com/actions-marketplace-validations/dgteixeira_pr-status-giphy-action) | 0 | | [snaquekiller/TeamsTagsMessage](https://github.com/snaquekiller/TeamsTagsMessage) | 0 | -| [jfandy1982/emby-data-check](https://github.com/jfandy1982/emby-data-check) | 0 | | [actions-marketplace-validations/chill-viking_npm-ci](https://github.com/actions-marketplace-validations/chill-viking_npm-ci) | 0 | | [OpenSemanticLab/interactive-semantic-graph](https://github.com/OpenSemanticLab/interactive-semantic-graph) | 0 | | [actions-marketplace-validations/ahmadnassri_action-commit-lint](https://github.com/actions-marketplace-validations/ahmadnassri_action-commit-lint) | 0 | @@ -1363,22 +1554,24 @@ | [ahmadnassri/node-oas-request-readme](https://github.com/ahmadnassri/node-oas-request-readme) | 0 | | [ahmadnassri/node-ahmad](https://github.com/ahmadnassri/node-ahmad) | 0 | | [Traydr/ppm](https://github.com/Traydr/ppm) | 0 | -| [data-yaml/udc](https://github.com/data-yaml/udc) | 0 | +| [epleypa/Home-AssistantConfig](https://github.com/epleypa/Home-AssistantConfig) | 0 | +| [data-yaml/un-yaml](https://github.com/data-yaml/un-yaml) | 0 | | [juiveli/labyrinthGame](https://github.com/juiveli/labyrinthGame) | 0 | -| [ortelius/ms-scorecard](https://github.com/ortelius/ms-scorecard) | 0 | | [ortelius/ms-validate-user](https://github.com/ortelius/ms-validate-user) | 0 | -| [ortelius/ms-compitem-crud](https://github.com/ortelius/ms-compitem-crud) | 0 | | [ortelius/ms-textfile-crud](https://github.com/ortelius/ms-textfile-crud) | 0 | | [ortelius/ms-dep-pkg-cud](https://github.com/ortelius/ms-dep-pkg-cud) | 0 | | [root-and-blade/.github](https://github.com/root-and-blade/.github) | 0 | | [moverperfect/Update-Finance-Spreadsheet](https://github.com/moverperfect/Update-Finance-Spreadsheet) | 0 | | [ortelius/ms-dep-pkg-r](https://github.com/ortelius/ms-dep-pkg-r) | 0 | +| [quiltdata/quiltplus](https://github.com/quiltdata/quiltplus) | 0 | | [vkhitrin/jiav](https://github.com/vkhitrin/jiav) | 0 | | [iot-defcon/newrelic-python-agent](https://github.com/iot-defcon/newrelic-python-agent) | 0 | | [tdido/megalinter-test](https://github.com/tdido/megalinter-test) | 0 | | [ministryofjustice/data-engineering-airflow](https://github.com/ministryofjustice/data-engineering-airflow) | 0 | | [jleiby3/test-actions](https://github.com/jleiby3/test-actions) | 0 | | [marcelmaatkamp/mixed-java-scala-test](https://github.com/marcelmaatkamp/mixed-java-scala-test) | 0 | +| [ashrafulislamcs/aws-modernisation-platform](https://github.com/ashrafulislamcs/aws-modernisation-platform) | 0 | +| [wesley-dean-flexion/jubilant-computing-machine](https://github.com/wesley-dean-flexion/jubilant-computing-machine) | 0 | | [wesley-dean-flexion/repository_updated](https://github.com/wesley-dean-flexion/repository_updated) | 0 | | [wesley-dean-flexion/alpine_package_pinner](https://github.com/wesley-dean-flexion/alpine_package_pinner) | 0 | | [wesley-dean-flexion/prettier](https://github.com/wesley-dean-flexion/prettier) | 0 | diff --git a/entrypoint.sh b/entrypoint.sh index 135b9c639f8..f9d09ebe325 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -35,10 +35,10 @@ if [ "${UPGRADE_LINTERS_VERSION}" == "true" ]; then # Run only get_linter_help test methods pytest -v --durations=0 -k _get_linter_help megalinter/ # Reinstall mkdocs-material because of broken dependency - pip3 install --upgrade "markdown==3.3.7" mike mkdocs-material "mkdocs-glightbox==0.3.2" mdx_truly_sane_lists jsonschema json-schema-for-humans giturlparse webpreview "github-dependents-info==0.10.0" + pip3 install --upgrade "markdown==3.3.7" mike mkdocs-material "pymdown-extensions==9.11" "mkdocs-glightbox==0.3.2" mdx_truly_sane_lists jsonschema json-schema-for-humans giturlparse webpreview "github-dependents-info==0.10.0" cd /tmp/lint || exit 1 chmod +x build.sh - GITHUB_TOKEN=${GITHUB_TOKEN} bash build.sh --doc --dependents + GITHUB_TOKEN="${GITHUB_TOKEN}" bash build.sh --doc --dependents --stats exit $? fi @@ -69,14 +69,24 @@ if [ "${TEST_CASE_RUN}" == "true" ]; then fi if [ "${MEGALINTER_SERVER}" == "true" ]; then - # MegaLinter HTTP server run + # MegaLinter Server Worker, listens to redis queues using python RQ -> https://github.com/rq/rq set -eu - echo "[MegaLinter init] MEGALINTER SERVER" + echo "[MegaLinter init] MEGALINTER SERVER WORKER" # Install python dependencies used by server to avoid to make bigger docker images - pip install fastapi pygments "uvicorn[standard]" - HOST="${HOST:-0.0.0.0}" # Default host - PORT="${PORT:-8000}" # Default port - uvicorn megalinter.server:app --host "$HOST" --port "$PORT" + # pip install -r /server/requirements.txt <-- Now managed from Dockerfile-worker + MEGALINTER_SERVER_REDIS_HOST="${MEGALINTER_SERVER_REDIS_HOST:-megalinter_server_redis}" # Default host + MEGALINTER_SERVER_REDIS_PORT="${MEGALINTER_SERVER_REDIS_PORT:-6379}" # Default port + MEGALINTER_SERVER_REDIS_QUEUE="${MEGALINTER_SERVER_REDIS_QUEUE:-megalinter:queue:requests}" + if [ "${MEGALINTER_SERVER_WORKER_POOL}" == "true" ]; then + # Use RQ worker pool (beta) + MEGALINTER_SERVER_WORKER_POOL_NUMBER="${MEGALINTER_SERVER_WORKER_POOL_NUMBER:-10}" # Default number of worker threads + echo "[MegaLinter Worker] Init Redis Queue Worker pool (${MEGALINTER_SERVER_WORKER_POOL_NUMBER} processes)" + rq worker-pool --num-workers "${MEGALINTER_SERVER_WORKER_POOL_NUMBER}" --url "redis://${MEGALINTER_SERVER_REDIS_HOST}:${MEGALINTER_SERVER_REDIS_PORT}" "${MEGALINTER_SERVER_REDIS_QUEUE}" + else + # Use RQ worker (a worker can execute a single job parallelly) + echo "[MegaLinter Worker] Init Redis Queue Single worker" + rq worker --url "redis://${MEGALINTER_SERVER_REDIS_HOST}:${MEGALINTER_SERVER_REDIS_PORT}" "${MEGALINTER_SERVER_REDIS_QUEUE}" + fi else if [ "${MEGALINTER_SSH}" == "true" ]; then # MegaLinter SSH server diff --git a/flavors/ci_light/Dockerfile b/flavors/ci_light/Dockerfile index f016533ad85..168faf5397f 100644 --- a/flavors/ci_light/Dockerfile +++ b/flavors/ci_light/Dockerfile @@ -16,27 +16,16 @@ FROM koalaman/shellcheck:stable as shellcheck FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mrtazz/checkmake:latest as checkmake -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -54,7 +43,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -182,6 +171,7 @@ COPY --link --from=shfmt /bin/shfmt /usr/bin/ COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ #COPY__END ############################################################################################# @@ -206,10 +196,20 @@ RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/m # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + #OTHER__END ################################ @@ -227,6 +227,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/ci_light/flavor.json b/flavors/ci_light/flavor.json index fbf682dd37f..2cc5b066ff7 100644 --- a/flavors/ci_light/flavor.json +++ b/flavors/ci_light/flavor.json @@ -17,8 +17,11 @@ "MAKEFILE_CHECKMAKE", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", diff --git a/flavors/cupcake/Dockerfile b/flavors/cupcake/Dockerfile index 77852662205..1c914007400 100644 --- a/flavors/cupcake/Dockerfile +++ b/flavors/cupcake/Dockerfile @@ -30,33 +30,23 @@ RUN GOBIN=/usr/bin go install github.com/mgechev/revive@latest FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM ghcr.io/phpstan/phpstan:latest-php8.1 as phpstan -FROM zricethezav/gitleaks:v8.16.3 as gitleaks -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM checkmarx/kics:alpine as kics +FROM trufflesecurity/trufflehog:latest as trufflehog +FROM lycheeverse/lychee:latest-alpine as lychee +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint FROM tenable/terrascan:1.18.1 as terrascan FROM alpine/terragrunt:latest as terragrunt # Next FROM line commented because already managed by another linter # FROM alpine/terragrunt:latest as terragrunt -FROM checkmarx/kics:alpine as kics #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -74,7 +64,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -98,7 +88,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ py3-pyflakes \ nodejs \ @@ -107,6 +96,8 @@ RUN apk add --update --no-cache \ go \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -214,7 +205,8 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ sql-lint \ prettyjson \ @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser && \ + @typescript-eslint/parser \ + ts-standard && \ echo "Cleaning npm cache…" \ && npm cache clean --force || true \ && echo "Changing owner of node_modules files…" \ @@ -291,12 +283,14 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=phpstan /composer/vendor/phpstan/phpstan/phpstan.phar /usr/bin/phpstan COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=kics /app/bin/kics /usr/bin/ +COPY --from=kics /app/bin/assets /opt/kics/assets/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ COPY --link --from=terrascan /go/bin/terrascan /usr/bin/ COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ COPY --link --from=terragrunt /bin/terraform /usr/bin/ -COPY --link --from=kics /app/bin/kics /usr/bin/ -COPY --from=kics /app/bin/assets /opt/kics/assets/ #COPY__END ############################################################################################# @@ -322,7 +316,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -367,7 +361,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # actionlint installation # Managed with COPY --link --from=actionlint /usr/local/bin/actionlint /usr/bin/actionlint @@ -440,7 +433,8 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 # checkmake installation @@ -459,14 +453,37 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI # phplint installation -RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute \ +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g + + +# mypy installation +ENV MYPY_CACHE_DIR=/tmp # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + +# kics installation +# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ + && mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ + # trivy installation - && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + + +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ # tflint installation # Managed with COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ @@ -480,12 +497,6 @@ RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ # terraform-fmt installation # Managed with COPY --link --from=terragrunt /bin/terraform /usr/bin/ -# kics installation -# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ - && mkdir -p /opt/kics/assets -ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries -# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ - #OTHER__END ################################ @@ -503,6 +514,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/cupcake/flavor.json b/flavors/cupcake/flavor.json index 52b59e9506b..20fc8abe61f 100644 --- a/flavors/cupcake/flavor.json +++ b/flavors/cupcake/flavor.json @@ -64,9 +64,13 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RST_RST_LINT", "RST_RSTCHECK", "RST_RSTFMT", @@ -74,6 +78,7 @@ "RUST_CLIPPY", "SPELL_CSPELL", "SPELL_PROSELINT", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SWIFT_SWIFTLINT", @@ -81,7 +86,6 @@ "TERRAFORM_TERRASCAN", "TERRAFORM_TERRAGRUNT", "TERRAFORM_TERRAFORM_FMT", - "TERRAFORM_KICS", "TSX_ESLINT", "TYPESCRIPT_ES", "TYPESCRIPT_STANDARD", diff --git a/flavors/documentation/Dockerfile b/flavors/documentation/Dockerfile index c4922ca213b..148f6af646f 100644 --- a/flavors/documentation/Dockerfile +++ b/flavors/documentation/Dockerfile @@ -24,28 +24,18 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -63,7 +53,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -81,6 +71,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -230,7 +222,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -271,7 +265,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # checkmake installation # Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake @@ -282,13 +277,26 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -306,6 +314,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/documentation/flavor.json b/flavors/documentation/flavor.json index e170861aeca..d2ffe9fd296 100644 --- a/flavors/documentation/flavor.json +++ b/flavors/documentation/flavor.json @@ -37,14 +37,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/dotnet/Dockerfile b/flavors/dotnet/Dockerfile index d1d176ca255..83d3f35cd99 100644 --- a/flavors/dotnet/Dockerfile +++ b/flavors/dotnet/Dockerfile @@ -24,39 +24,29 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM 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 BICEP_EXE='bicep' +ARG BICEP_URI='https://github.com/Azure/bicep/releases/latest/download/bicep-linux-musl-x64' ARG BICEP_DIR='/usr/local/bin' ARG PSSA_VERSION='latest' #ARG__END @@ -71,7 +61,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -97,6 +87,7 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -250,7 +241,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -258,17 +251,13 @@ COPY --link --from=vale /bin/vale /bin/vale ############################################################################################# #OTHER__START # ARM installation -RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ @@ -283,17 +272,13 @@ 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" # POWERSHELL installation -RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ @@ -334,13 +319,9 @@ RUN curl --retry 5 --retry-delay 5 -sLO "${ARM_TTK_URI}" \ # Managed with COPY --link --from=shfmt /bin/shfmt /usr/bin/ # bicep_linter installation - && case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=musl-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ -esac \ -&& curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "https://github.com/Azure/bicep/releases/latest/download/bicep-linux-${POWERSHELL_ARCH}" \ -&& chmod +x "${BICEP_EXE}" \ -&& mv "${BICEP_EXE}" "${BICEP_DIR}" \ + && curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "${BICEP_URI}" \ + && chmod +x "${BICEP_EXE}" \ + && mv "${BICEP_EXE}" "${BICEP_DIR}" \ # csharpier installation && /usr/share/dotnet/dotnet tool install -g csharpier \ @@ -363,7 +344,8 @@ esac \ # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # checkmake installation # Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake @@ -381,12 +363,25 @@ esac \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + # 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 \ @@ -413,6 +408,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/dotnet/flavor.json b/flavors/dotnet/flavor.json index 3db4c2af97e..7677c7666a7 100644 --- a/flavors/dotnet/flavor.json +++ b/flavors/dotnet/flavor.json @@ -51,14 +51,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SQL_TSQLLINT", diff --git a/flavors/dotnetweb/Dockerfile b/flavors/dotnetweb/Dockerfile new file mode 100644 index 00000000000..dfa4912accd --- /dev/null +++ b/flavors/dotnetweb/Dockerfile @@ -0,0 +1,474 @@ +# syntax=docker/dockerfile:1 +# MEGALINTER FLAVOR [dotnetweb]: Optimized for C, C++, C# or VB based projects with JS/TS +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM rhysd/actionlint:latest as actionlint +# shellcheck is a dependency for actionlint + +FROM koalaman/shellcheck:stable as shellcheck +# Next FROM line commented because already managed by another linter +# FROM koalaman/shellcheck:stable as shellcheck +FROM mvdan/shfmt:latest-alpine as shfmt +FROM hadolint/hadolint:v2.12.0-alpine as hadolint +FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker +FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform +FROM mrtazz/checkmake:latest as checkmake +FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog +FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee +#FROM__END + +################## +# Get base image # +################## +FROM python:3.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @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 BICEP_EXE='bicep' +ARG BICEP_URI='https://github.com/Azure/bicep/releases/latest/download/bicep-linux-musl-x64' +ARG BICEP_DIR='/usr/local/bin' +ARG PSSA_VERSION='latest' +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev \ + openjdk11 \ + py3-pyflakes \ + nodejs \ + npm \ + yarn \ + helm \ + gcompat \ + libc6-compat \ + libc-dev \ + libxml2-dev \ + libxml2-utils \ + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START +RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip virtualenv \ + && mkdir -p "/venvs/ansible-lint" && cd "/venvs/ansible-lint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir ansible-lint && deactivate && cd ./../.. \ + && mkdir -p "/venvs/cpplint" && cd "/venvs/cpplint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir cpplint && deactivate && cd ./../.. \ + && mkdir -p "/venvs/djlint" && cd "/venvs/djlint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir djlint && deactivate && cd ./../.. \ + && mkdir -p "/venvs/checkov" && cd "/venvs/checkov" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir packaging checkov && deactivate && cd ./../.. \ + && mkdir -p "/venvs/semgrep" && cd "/venvs/semgrep" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir semgrep && deactivate && cd ./../.. \ + && mkdir -p "/venvs/snakemake" && cd "/venvs/snakemake" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir snakemake && deactivate && cd ./../.. \ + && mkdir -p "/venvs/snakefmt" && cd "/venvs/snakefmt" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir snakefmt && deactivate && cd ./../.. \ + && mkdir -p "/venvs/proselint" && cd "/venvs/proselint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir proselint && deactivate && cd ./../.. \ + && mkdir -p "/venvs/sqlfluff" && cd "/venvs/sqlfluff" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir sqlfluff && deactivate && cd ./../.. \ + && mkdir -p "/venvs/yamllint" && cd "/venvs/yamllint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir yamllint && deactivate && cd ./../.. \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf && rm -rf /root/.cache +ENV PATH="${PATH}":/venvs/ansible-lint/bin:/venvs/cpplint/bin:/venvs/djlint/bin:/venvs/checkov/bin:/venvs/semgrep/bin:/venvs/snakemake/bin:/venvs/snakefmt/bin:/venvs/proselint/bin:/venvs/sqlfluff/bin:/venvs/yamllint/bin +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START +WORKDIR /node-deps +RUN npm --no-cache install --ignore-scripts --omit=dev \ + typescript \ + @coffeelint/cli \ + jscpd \ + stylelint \ + stylelint-config-standard \ + stylelint-config-sass-guidelines \ + stylelint-scss \ + gherkin-lint \ + graphql \ + graphql-schema-linter \ + npm-groovy-lint \ + htmlhint \ + 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/core \ + @babel/eslint-parser \ + @microsoft/eslint-formatter-sarif \ + standard \ + prettier \ + @prantlf/jsonlint \ + eslint-plugin-jsonc \ + v8r \ + npm-package-json-lint \ + npm-package-json-lint-config-default \ + eslint-plugin-react \ + eslint-plugin-jsx-a11y \ + markdownlint-cli \ + markdown-link-check \ + markdown-table-formatter \ + @stoplight/spectral-cli \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ + cspell \ + sql-lint \ + tekton-lint \ + prettyjson \ + @typescript-eslint/eslint-plugin \ + @typescript-eslint/parser \ + ts-standard && \ + echo "Cleaning npm cache…" \ + && npm cache clean --force || true \ + && echo "Changing owner of node_modules files…" \ + && chown -R "$(id -u)":"$(id -g)" node_modules # fix for https://github.com/npm/cli/issues/5900 \ + && echo "Removing extra node_module files…" \ + && rm -rf /root/.npm/_cacache \ + && find . -name "*.d.ts" -delete \ + && find . -name "*.map" -delete \ + && find . -name "*.npmignore" -delete \ + && find . -name "*.travis.yml" -delete \ + && find . -name "CHANGELOG.md" -delete \ + && find . -name "README.md" -delete \ + && find . -name ".package-lock.json" -delete \ + && find . -name "package-lock.json" -delete \ + && find . -name "README.md" -delete +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + NODE_PATH="/node-deps/node_modules" + +############################## +# 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable \ + && export PATH="/root/.cargo/bin:${PATH}" \ + && cargo install --force --locked sarif-fmt shellcheck-sarif \ + && rm -rf /root/.cargo/registry /root/.cargo/git /root/.cache/sccache /root/.rustup +ENV PATH="/root/.cargo/bin:${PATH}" +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START +COPY --link --from=actionlint /usr/local/bin/actionlint /usr/bin/actionlint +# shellcheck is a dependency for actionlint + +COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck +# Next COPY line commented because already managed by another linter +# COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck +COPY --link --from=shfmt /bin/shfmt /usr/bin/ +COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint +COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checker +COPY --link --from=kubeconform /kubeconform /usr/bin/ +COPY --link --from=checkmake /checkmake /usr/bin/checkmake +COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ +COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ +COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# ARM installation +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ + 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 \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + +# POWERSHELL installation +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ + 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 \ + && chmod +x /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 6.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + +# actionlint installation +# Managed with COPY --link --from=actionlint /usr/local/bin/actionlint /usr/bin/actionlint +# # shellcheck is a dependency for actionlint +# Managed with COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck + +# 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 \ + +# bash-exec installation + && 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 +# Managed with # Next COPY line commented because already managed by another linter +# # COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck + +# shfmt installation +# Managed with COPY --link --from=shfmt /bin/shfmt /usr/bin/ + +# bicep_linter installation + && curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "${BICEP_URI}" \ + && chmod +x "${BICEP_EXE}" \ + && mv "${BICEP_EXE}" "${BICEP_DIR}" \ + +# csharpier installation + && /usr/share/dotnet/dotnet tool install -g csharpier \ + +# hadolint installation +# Managed with COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint + +# editorconfig-checker installation +# Managed with COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checker + +# dotenv-linter installation + && wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s \ + +# ktlint installation + && curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/releases/latest/download/ktlint && \ + chmod a+x ktlint && \ + mv "ktlint" /usr/bin/ \ + +# kubeconform installation +# Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ + +# kubescape installation + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ + +# checkmake installation +# Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake + +# powershell installation + && pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' \ + +# powershell_formatter installation +# Next line commented because already managed by another linter +# RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' + +# protolint installation +# Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ + +# gitleaks installation +# Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + +# trivy installation + && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ + +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + +# vale installation +# Managed with COPY --link --from=vale /bin/vale /bin/vale + +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + +# 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 6.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + && dotnet tool install --global TSQLLint + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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=dotnetweb +#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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + 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/dotnetweb/action.yml b/flavors/dotnetweb/action.yml new file mode 100644 index 00000000000..312a9a5f38a --- /dev/null +++ b/flavors/dotnetweb/action.yml @@ -0,0 +1,16 @@ + # Automatically @generated by build.py +name: "MegaLinter" +author: "Nicolas Vuillamy" +description: "[dotnetweb 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://oxsecurity/megalinter-dotnetweb:v7" + args: + - "-v" + - "/var/run/docker.sock:/var/run/docker.sock:rw" +branding: + icon: "check" + color: "green" diff --git a/flavors/dotnetweb/flavor.json b/flavors/dotnetweb/flavor.json new file mode 100644 index 00000000000..d0817f860e6 --- /dev/null +++ b/flavors/dotnetweb/flavor.json @@ -0,0 +1,86 @@ +{ + "descriptors": [ + "ARM", + "BASH", + "CSHARP", + "KOTLIN", + "POWERSHELL", + "TYPESCRIPT", + "VBDOTNET" + ], + "label": "Optimized for C, C++, C# or VB based projects with JS/TS", + "linters": [ + "ACTION_ACTIONLINT", + "ANSIBLE_ANSIBLE_LINT", + "ARM_ARM_TTK", + "BASH_EXEC", + "BASH_SHELLCHECK", + "BASH_SHFMT", + "BICEP_BICEP_LINTER", + "C_CPPLINT", + "COFFEE_COFFEELINT", + "COPYPASTE_JSCPD", + "CPP_CPPLINT", + "CSHARP_DOTNET_FORMAT", + "CSHARP_CSHARPIER", + "CSS_STYLELINT", + "CSS_SCSS_LINT", + "DOCKERFILE_HADOLINT", + "EDITORCONFIG_EDITORCONFIG_CHECKER", + "ENV_DOTENV_LINTER", + "GHERKIN_GHERKIN_LINT", + "GRAPHQL_GRAPHQL_SCHEMA_LINTER", + "GROOVY_NPM_GROOVY_LINT", + "HTML_DJLINT", + "HTML_HTMLHINT", + "JAVASCRIPT_ES", + "JAVASCRIPT_STANDARD", + "JAVASCRIPT_PRETTIER", + "JSON_JSONLINT", + "JSON_ESLINT_PLUGIN_JSONC", + "JSON_V8R", + "JSON_PRETTIER", + "JSON_NPM_PACKAGE_JSON_LINT", + "JSX_ESLINT", + "KOTLIN_KTLINT", + "KUBERNETES_KUBECONFORM", + "KUBERNETES_HELM", + "KUBERNETES_KUBESCAPE", + "MAKEFILE_CHECKMAKE", + "MARKDOWN_MARKDOWNLINT", + "MARKDOWN_MARKDOWN_LINK_CHECK", + "MARKDOWN_MARKDOWN_TABLE_FORMATTER", + "OPENAPI_SPECTRAL", + "POWERSHELL_POWERSHELL", + "POWERSHELL_POWERSHELL_FORMATTER", + "PROTOBUF_PROTOLINT", + "REPOSITORY_CHECKOV", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", + "SNAKEMAKE_LINT", + "SNAKEMAKE_SNAKEFMT", + "SPELL_CSPELL", + "SPELL_PROSELINT", + "SPELL_VALE", + "SPELL_LYCHEE", + "SQL_SQL_LINT", + "SQL_SQLFLUFF", + "SQL_TSQLLINT", + "TEKTON_TEKTON_LINT", + "TSX_ESLINT", + "TYPESCRIPT_ES", + "TYPESCRIPT_STANDARD", + "TYPESCRIPT_PRETTIER", + "VBDOTNET_DOTNET_FORMAT", + "XML_XMLLINT", + "YAML_PRETTIER", + "YAML_YAMLLINT", + "YAML_V8R" + ] +} diff --git a/flavors/go/Dockerfile b/flavors/go/Dockerfile index 9a7af0ff589..0acd96fc9c4 100644 --- a/flavors/go/Dockerfile +++ b/flavors/go/Dockerfile @@ -30,28 +30,18 @@ RUN GOBIN=/usr/bin go install github.com/mgechev/revive@latest FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -69,7 +59,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -88,6 +78,8 @@ RUN apk add --update --no-cache \ go \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -238,7 +230,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -286,7 +280,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # checkmake installation # Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake @@ -297,13 +292,26 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -321,6 +329,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/go/flavor.json b/flavors/go/flavor.json index 22782d44cf9..bd0c4d79b89 100644 --- a/flavors/go/flavor.json +++ b/flavors/go/flavor.json @@ -39,14 +39,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/java/Dockerfile b/flavors/java/Dockerfile index d82ccd7bc3f..60a2e42d987 100644 --- a/flavors/java/Dockerfile +++ b/flavors/java/Dockerfile @@ -24,28 +24,18 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -63,7 +53,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -81,6 +71,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -230,7 +222,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -255,7 +249,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -347,7 +341,8 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # checkmake installation # Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake @@ -358,13 +353,26 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -382,6 +390,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/java/flavor.json b/flavors/java/flavor.json index d679805be78..bbf54ce8b02 100644 --- a/flavors/java/flavor.json +++ b/flavors/java/flavor.json @@ -43,14 +43,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index 6d7c3678e6a..0e77dfb0aa9 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -23,28 +23,18 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -62,7 +52,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -80,6 +70,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -180,7 +172,8 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ tekton-lint \ prettyjson \ @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser && \ + @typescript-eslint/parser \ + ts-standard && \ echo "Cleaning npm cache…" \ && npm cache clean --force || true \ && echo "Changing owner of node_modules files…" \ @@ -249,7 +242,9 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -290,7 +285,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -298,13 +294,26 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -322,6 +331,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/javascript/flavor.json b/flavors/javascript/flavor.json index c4a58137ca5..7827e8e698e 100644 --- a/flavors/javascript/flavor.json +++ b/flavors/javascript/flavor.json @@ -43,14 +43,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 8a2b3927b18..8846adbcff2 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -24,28 +24,18 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM ghcr.io/phpstan/phpstan:latest-php8.1 as phpstan FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -63,7 +53,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -85,7 +75,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ py3-pyflakes \ nodejs \ @@ -93,6 +82,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -242,7 +233,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=phpstan /composer/vendor/phpstan/phpstan/phpstan.phar /usr/bin/phpstan COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -265,7 +258,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # actionlint installation # Managed with COPY --link --from=actionlint /usr/local/bin/actionlint /usr/bin/actionlint @@ -301,7 +293,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 # phpcs installation @@ -317,8 +310,8 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI # phplint installation -RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute \ +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g + # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -326,13 +319,26 @@ RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -350,6 +356,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/php/flavor.json b/flavors/php/flavor.json index 7945a17677d..56fe604a497 100644 --- a/flavors/php/flavor.json +++ b/flavors/php/flavor.json @@ -41,14 +41,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/python/Dockerfile b/flavors/python/Dockerfile index 471e4305b8c..1f5a7fe062a 100644 --- a/flavors/python/Dockerfile +++ b/flavors/python/Dockerfile @@ -24,28 +24,18 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM mrtazz/checkmake:latest as checkmake FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -63,7 +53,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -81,6 +71,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -241,7 +233,9 @@ COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=checkmake /checkmake /usr/bin/checkmake COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -282,7 +276,9 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 + # checkmake installation # Managed with COPY --link --from=checkmake /checkmake /usr/bin/checkmake @@ -290,16 +286,32 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ +# mypy installation +ENV MYPY_CACHE_DIR=/tmp + # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -317,6 +329,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/python/flavor.json b/flavors/python/flavor.json index b9e94ed8c7f..dbb6effdf86 100644 --- a/flavors/python/flavor.json +++ b/flavors/python/flavor.json @@ -45,9 +45,12 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RST_RST_LINT", "RST_RSTCHECK", "RST_RSTFMT", @@ -56,6 +59,7 @@ "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/ruby/Dockerfile b/flavors/ruby/Dockerfile index 24e6cc24a9f..0a4365f77e2 100644 --- a/flavors/ruby/Dockerfile +++ b/flavors/ruby/Dockerfile @@ -23,28 +23,18 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -62,7 +52,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -80,6 +70,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -234,7 +226,9 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -275,7 +269,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -283,13 +278,26 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -307,6 +315,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/ruby/flavor.json b/flavors/ruby/flavor.json index 3c87323af89..43872fd5a5a 100644 --- a/flavors/ruby/flavor.json +++ b/flavors/ruby/flavor.json @@ -36,15 +36,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RUBY_RUBOCOP", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/rust/Dockerfile b/flavors/rust/Dockerfile index 65add0cec04..118efb23f73 100644 --- a/flavors/rust/Dockerfile +++ b/flavors/rust/Dockerfile @@ -23,28 +23,18 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -62,7 +52,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -80,6 +70,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -228,7 +220,9 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -269,7 +263,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -277,13 +272,26 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -301,6 +309,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/rust/flavor.json b/flavors/rust/flavor.json index 1d5922e37cf..c6db111e2fe 100644 --- a/flavors/rust/flavor.json +++ b/flavors/rust/flavor.json @@ -36,15 +36,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RUST_CLIPPY", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/salesforce/Dockerfile b/flavors/salesforce/Dockerfile index e9a847316d3..bfdbb59766f 100644 --- a/flavors/salesforce/Dockerfile +++ b/flavors/salesforce/Dockerfile @@ -23,28 +23,18 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -62,7 +52,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -80,6 +70,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -231,7 +223,9 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -279,7 +273,8 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -287,9 +282,19 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # sfdx-scanner-apex installation && sfdx plugins:install @salesforce/sfdx-scanner \ && npm cache clean --force || true \ @@ -311,6 +316,9 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -328,6 +336,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/salesforce/flavor.json b/flavors/salesforce/flavor.json index 8578f417885..1ec8062873b 100644 --- a/flavors/salesforce/flavor.json +++ b/flavors/salesforce/flavor.json @@ -38,9 +38,12 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SALESFORCE_SFDX_SCANNER_APEX", "SALESFORCE_SFDX_SCANNER_AURA", "SALESFORCE_SFDX_SCANNER_LWC", @@ -49,6 +52,7 @@ "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", diff --git a/flavors/security/Dockerfile b/flavors/security/Dockerfile index 258ac972f17..e17f0304c26 100644 --- a/flavors/security/Dockerfile +++ b/flavors/security/Dockerfile @@ -18,31 +18,20 @@ FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM golang:alpine as dustilock RUN GOBIN=/usr/bin go install github.com/checkmarx/dustilock@v1.2.0 -FROM zricethezav/gitleaks:v8.16.3 as gitleaks -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM checkmarx/kics:alpine as kics +FROM trufflesecurity/trufflehog:latest as trufflehog +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint FROM tenable/terrascan:1.18.1 as terrascan FROM alpine/terragrunt:latest as terragrunt -FROM checkmarx/kics:alpine as kics #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -60,7 +49,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -73,11 +62,12 @@ RUN apk add --update --no-cache \ openssh \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ icu-libs \ libcurl \ libintl \ libssl1.1 \ - libstdc++ \ lttng-ust-dev \ zlib \ zlib-dev \ @@ -188,11 +178,12 @@ COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=dustilock /usr/bin/dustilock /usr/bin/dustilock COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=kics /app/bin/kics /usr/bin/ +COPY --from=kics /app/bin/assets /opt/kics/assets/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ COPY --link --from=terrascan /go/bin/terrascan /usr/bin/ COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ -COPY --link --from=kics /app/bin/kics /usr/bin/ -COPY --from=kics /app/bin/assets /opt/kics/assets/ #COPY__END ############################################################################################# @@ -213,7 +204,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # devskim installation && wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ @@ -221,7 +213,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" -RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI \ # dustilock installation # Managed with COPY --link --from=dustilock /usr/bin/dustilock /usr/bin/dustilock @@ -229,11 +221,28 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + +# kics installation +# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ + && mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ + # syft installation - && curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin \ +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin \ # trivy installation - && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ + && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + + +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ # tflint installation # Managed with COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ @@ -244,12 +253,6 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 \ # terragrunt installation # Managed with COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ -# kics installation -# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ - && mkdir -p /opt/kics/assets -ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries -# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ - #OTHER__END ################################ @@ -267,6 +270,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/security/flavor.json b/flavors/security/flavor.json index 359bedb48e1..0adcf34dd04 100644 --- a/flavors/security/flavor.json +++ b/flavors/security/flavor.json @@ -15,13 +15,16 @@ "REPOSITORY_DEVSKIM", "REPOSITORY_DUSTILOCK", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_SYFT", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "TERRAFORM_TFLINT", "TERRAFORM_TERRASCAN", - "TERRAFORM_TERRAGRUNT", - "TERRAFORM_KICS" + "TERRAFORM_TERRAGRUNT" ] } diff --git a/flavors/swift/Dockerfile b/flavors/swift/Dockerfile index 81ecf2a8875..fe5c5a7b571 100644 --- a/flavors/swift/Dockerfile +++ b/flavors/swift/Dockerfile @@ -23,28 +23,18 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale +FROM lycheeverse/lychee:latest-alpine as lychee #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -62,7 +52,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -82,6 +72,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -230,7 +222,9 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ #COPY__END ############################################################################################# @@ -272,7 +266,8 @@ RUN rc-update add docker boot && rc-service docker start || true \ # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -280,13 +275,26 @@ RUN rc-update add docker boot && rc-service docker start || true \ # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + # trivy installation && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + #OTHER__END ################################ @@ -304,6 +312,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/swift/flavor.json b/flavors/swift/flavor.json index 4beb845624c..77538bee8bd 100644 --- a/flavors/swift/flavor.json +++ b/flavors/swift/flavor.json @@ -36,14 +36,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SWIFT_SWIFTLINT", diff --git a/flavors/terraform/Dockerfile b/flavors/terraform/Dockerfile index 7512372dea4..8a980a6b61f 100644 --- a/flavors/terraform/Dockerfile +++ b/flavors/terraform/Dockerfile @@ -23,34 +23,24 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform FROM yoheimuta/protolint:latest as protolint -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks +FROM checkmarx/kics:alpine as kics +FROM trufflesecurity/trufflehog:latest as trufflehog FROM jdkato/vale:latest as vale -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM lycheeverse/lychee:latest-alpine as lychee +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint FROM tenable/terrascan:1.18.1 as terrascan FROM alpine/terragrunt:latest as terragrunt # Next FROM line commented because already managed by another linter # FROM alpine/terragrunt:latest as terragrunt -FROM checkmarx/kics:alpine as kics #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -68,7 +58,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -86,6 +76,8 @@ RUN apk add --update --no-cache \ yarn \ helm \ gcompat \ + libc6-compat \ + libstdc++ \ libc-dev \ libxml2-dev \ libxml2-utils \ @@ -234,13 +226,15 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke COPY --link --from=kubeconform /kubeconform /usr/bin/ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +COPY --link --from=kics /app/bin/kics /usr/bin/ +COPY --from=kics /app/bin/assets /opt/kics/assets/ +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ COPY --link --from=vale /bin/vale /bin/vale +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ COPY --link --from=terrascan /go/bin/terrascan /usr/bin/ COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ COPY --link --from=terragrunt /bin/terraform /usr/bin/ -COPY --link --from=kics /app/bin/kics /usr/bin/ -COPY --from=kics /app/bin/assets /opt/kics/assets/ #COPY__END ############################################################################################# @@ -281,7 +275,8 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # Managed with COPY --link --from=kubeconform /kubeconform /usr/bin/ # kubescape installation - && curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \ + && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 \ # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ @@ -289,12 +284,32 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # gitleaks installation # Managed with COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ +# grype installation + && curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 \ + +# kics installation +# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ + && mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ + # trivy installation - && wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin \ +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + + +# trivy-sbom installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ # vale installation # Managed with COPY --link --from=vale /bin/vale /bin/vale +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + # tflint installation # Managed with COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ @@ -307,12 +322,6 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil # terraform-fmt installation # Managed with COPY --link --from=terragrunt /bin/terraform /usr/bin/ -# kics installation -# Managed with COPY --link --from=kics /app/bin/kics /usr/bin/ - && mkdir -p /opt/kics/assets -ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries -# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ - #OTHER__END ################################ @@ -330,6 +339,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/flavors/terraform/flavor.json b/flavors/terraform/flavor.json index 78287fed738..3221d859758 100644 --- a/flavors/terraform/flavor.json +++ b/flavors/terraform/flavor.json @@ -36,14 +36,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -51,7 +56,6 @@ "TERRAFORM_TERRASCAN", "TERRAFORM_TERRAGRUNT", "TERRAFORM_TERRAFORM_FMT", - "TERRAFORM_KICS", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", diff --git a/linters/action_actionlint/Dockerfile b/linters/action_actionlint/Dockerfile index d6c02e67138..b9eb057c161 100644 --- a/linters/action_actionlint/Dockerfile +++ b/linters/action_actionlint/Dockerfile @@ -20,21 +20,9 @@ FROM koalaman/shellcheck:stable as shellcheck ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -52,7 +40,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -163,6 +151,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/ansible_ansible_lint/Dockerfile b/linters/ansible_ansible_lint/Dockerfile index c1ed4c12ab0..c99cabbccde 100644 --- a/linters/ansible_ansible_lint/Dockerfile +++ b/linters/ansible_ansible_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/arm_arm_ttk/Dockerfile b/linters/arm_arm_ttk/Dockerfile index 6522c860b3f..d624b650730 100644 --- a/linters/arm_arm_ttk/Dockerfile +++ b/linters/arm_arm_ttk/Dockerfile @@ -17,26 +17,13 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' ARG ARM_TTK_NAME='master.zip' @@ -54,7 +41,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -141,17 +128,13 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ############################################################################################# #OTHER__START # ARM installation -RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ @@ -184,6 +167,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/bash_exec/Dockerfile b/linters/bash_exec/Dockerfile index f526cc48616..e075e816bc6 100644 --- a/linters/bash_exec/Dockerfile +++ b/linters/bash_exec/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/bash_shellcheck/Dockerfile b/linters/bash_shellcheck/Dockerfile index d834b2504ae..add14db8788 100644 --- a/linters/bash_shellcheck/Dockerfile +++ b/linters/bash_shellcheck/Dockerfile @@ -17,21 +17,9 @@ FROM koalaman/shellcheck:stable as shellcheck ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -158,6 +146,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/bash_shfmt/Dockerfile b/linters/bash_shfmt/Dockerfile index c2556355b05..ad70807cd13 100644 --- a/linters/bash_shfmt/Dockerfile +++ b/linters/bash_shfmt/Dockerfile @@ -17,21 +17,9 @@ FROM mvdan/shfmt:latest-alpine as shfmt ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/bicep_bicep_linter/Dockerfile b/linters/bicep_bicep_linter/Dockerfile index 26dc8624716..c199f14b4cf 100644 --- a/linters/bicep_bicep_linter/Dockerfile +++ b/linters/bicep_bicep_linter/Dockerfile @@ -17,27 +17,15 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM ARG BICEP_EXE='bicep' +ARG BICEP_URI='https://github.com/Azure/bicep/releases/latest/download/bicep-linux-musl-x64' ARG BICEP_DIR='/usr/local/bin' #ARG__END @@ -51,7 +39,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -138,13 +126,9 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ############################################################################################# #OTHER__START # bicep_linter installation -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=musl-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ -esac \ -&& curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "https://github.com/Azure/bicep/releases/latest/download/bicep-linux-${POWERSHELL_ARCH}" \ -&& chmod +x "${BICEP_EXE}" \ -&& mv "${BICEP_EXE}" "${BICEP_DIR}" +RUN curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "${BICEP_URI}" \ + && chmod +x "${BICEP_EXE}" \ + && mv "${BICEP_EXE}" "${BICEP_DIR}" #OTHER__END @@ -164,6 +148,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/c_cpplint/Dockerfile b/linters/c_cpplint/Dockerfile index c2b5db4625b..c0c62641191 100644 --- a/linters/c_cpplint/Dockerfile +++ b/linters/c_cpplint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/clojure_clj_kondo/Dockerfile b/linters/clojure_clj_kondo/Dockerfile index e0dc59698bd..629bc41e31f 100644 --- a/linters/clojure_clj_kondo/Dockerfile +++ b/linters/clojure_clj_kondo/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -152,7 +140,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -199,6 +187,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/clojure_cljstyle/Dockerfile b/linters/clojure_cljstyle/Dockerfile index e4e18188f2e..e9420c6687b 100644 --- a/linters/clojure_cljstyle/Dockerfile +++ b/linters/clojure_cljstyle/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -152,7 +140,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -199,6 +187,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/cloudformation_cfn_lint/Dockerfile b/linters/cloudformation_cfn_lint/Dockerfile index bab44212f99..4fa7f00f639 100644 --- a/linters/cloudformation_cfn_lint/Dockerfile +++ b/linters/cloudformation_cfn_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/coffee_coffeelint/Dockerfile b/linters/coffee_coffeelint/Dockerfile index da7787898f6..cd622035da9 100644 --- a/linters/coffee_coffeelint/Dockerfile +++ b/linters/coffee_coffeelint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/copypaste_jscpd/Dockerfile b/linters/copypaste_jscpd/Dockerfile index 8a50d7726e4..9fad75d7173 100644 --- a/linters/copypaste_jscpd/Dockerfile +++ b/linters/copypaste_jscpd/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/cpp_cpplint/Dockerfile b/linters/cpp_cpplint/Dockerfile index f6857e0af1e..984b9bc2fae 100644 --- a/linters/cpp_cpplint/Dockerfile +++ b/linters/cpp_cpplint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/csharp_csharpier/Dockerfile b/linters/csharp_csharpier/Dockerfile index 4459ff25468..3b9b13538ff 100644 --- a/linters/csharp_csharpier/Dockerfile +++ b/linters/csharp_csharpier/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -169,6 +157,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/csharp_dotnet_format/Dockerfile b/linters/csharp_dotnet_format/Dockerfile index 05d2b9970fe..164bb9aac00 100644 --- a/linters/csharp_dotnet_format/Dockerfile +++ b/linters/csharp_dotnet_format/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -166,6 +154,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/css_scss_lint/Dockerfile b/linters/css_scss_lint/Dockerfile index d3b763e9678..5a191a61016 100644 --- a/linters/css_scss_lint/Dockerfile +++ b/linters/css_scss_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -158,6 +146,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/css_stylelint/Dockerfile b/linters/css_stylelint/Dockerfile index eef3764c4f7..48ca0149afe 100644 --- a/linters/css_stylelint/Dockerfile +++ b/linters/css_stylelint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -177,6 +165,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/dart_dartanalyzer/Dockerfile b/linters/dart_dartanalyzer/Dockerfile index 3a740d17835..2f42a47064d 100644 --- a/linters/dart_dartanalyzer/Dockerfile +++ b/linters/dart_dartanalyzer/Dockerfile @@ -17,26 +17,13 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM ARG DART_VERSION='2.8.4' #ARG__END @@ -50,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -153,7 +140,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -178,11 +165,7 @@ RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" \ # dartanalyzer installation - && case ${TARGETPLATFORM} in \ - "linux/amd64") DART_ARCH=x64 ;; \ - "linux/arm64") DART_ARCH=arm64 ;; \ - esac \ - && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-${DART_ARCH}-release.zip -O - -q | unzip -q - \ + && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ && chmod +x dart-sdk/bin/dart* \ && mv dart-sdk/bin/* /usr/bin/ && mv dart-sdk/lib/* /usr/lib/ && mv dart-sdk/include/* /usr/include/ \ && rm -r dart-sdk/ @@ -205,6 +188,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/dockerfile_hadolint/Dockerfile b/linters/dockerfile_hadolint/Dockerfile index b9bff05d826..a3491492ef2 100644 --- a/linters/dockerfile_hadolint/Dockerfile +++ b/linters/dockerfile_hadolint/Dockerfile @@ -17,21 +17,9 @@ FROM hadolint/hadolint:v2.12.0-alpine as hadolint ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/editorconfig_editorconfig_checker/Dockerfile b/linters/editorconfig_editorconfig_checker/Dockerfile index f06c3fe3567..d85093e437e 100644 --- a/linters/editorconfig_editorconfig_checker/Dockerfile +++ b/linters/editorconfig_editorconfig_checker/Dockerfile @@ -17,21 +17,9 @@ FROM mstruebing/editorconfig-checker:2.7.0 as editorconfig-checker ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/env_dotenv_linter/Dockerfile b/linters/env_dotenv_linter/Dockerfile index 7fd7589461f..d0420ae3dcf 100644 --- a/linters/env_dotenv_linter/Dockerfile +++ b/linters/env_dotenv_linter/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/gherkin_gherkin_lint/Dockerfile b/linters/gherkin_gherkin_lint/Dockerfile index c9bc502d035..c7615decb27 100644 --- a/linters/gherkin_gherkin_lint/Dockerfile +++ b/linters/gherkin_gherkin_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/go_golangci_lint/Dockerfile b/linters/go_golangci_lint/Dockerfile index ebde4fbf7c9..2b3b03beb15 100644 --- a/linters/go_golangci_lint/Dockerfile +++ b/linters/go_golangci_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -157,6 +145,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/go_revive/Dockerfile b/linters/go_revive/Dockerfile index 43509464ce8..88c42658f06 100644 --- a/linters/go_revive/Dockerfile +++ b/linters/go_revive/Dockerfile @@ -22,21 +22,9 @@ RUN GOBIN=/usr/bin go install github.com/mgechev/revive@latest ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -54,7 +42,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -159,6 +147,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/graphql_graphql_schema_linter/Dockerfile b/linters/graphql_graphql_schema_linter/Dockerfile index 1fb1f457803..56dd01b876f 100644 --- a/linters/graphql_graphql_schema_linter/Dockerfile +++ b/linters/graphql_graphql_schema_linter/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/groovy_npm_groovy_lint/Dockerfile b/linters/groovy_npm_groovy_lint/Dockerfile index d0d88359050..baade5a1bed 100644 --- a/linters/groovy_npm_groovy_lint/Dockerfile +++ b/linters/groovy_npm_groovy_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/html_djlint/Dockerfile b/linters/html_djlint/Dockerfile index b046a0129bf..79edd279e3b 100644 --- a/linters/html_djlint/Dockerfile +++ b/linters/html_djlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/html_htmlhint/Dockerfile b/linters/html_htmlhint/Dockerfile index bfc62d4edcf..943e33c8ece 100644 --- a/linters/html_htmlhint/Dockerfile +++ b/linters/html_htmlhint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/java_checkstyle/Dockerfile b/linters/java_checkstyle/Dockerfile index 961747662f5..27249907a12 100644 --- a/linters/java_checkstyle/Dockerfile +++ b/linters/java_checkstyle/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -168,6 +156,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/java_pmd/Dockerfile b/linters/java_pmd/Dockerfile index 2284e20601b..340da050f5a 100644 --- a/linters/java_pmd/Dockerfile +++ b/linters/java_pmd/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -164,6 +152,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/javascript_es/Dockerfile b/linters/javascript_es/Dockerfile index c051dbe0a43..3c2e5397592 100644 --- a/linters/javascript_es/Dockerfile +++ b/linters/javascript_es/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -186,6 +174,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/javascript_prettier/Dockerfile b/linters/javascript_prettier/Dockerfile index 1b61f42bc90..23533bb522f 100644 --- a/linters/javascript_prettier/Dockerfile +++ b/linters/javascript_prettier/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/javascript_standard/Dockerfile b/linters/javascript_standard/Dockerfile index 8ceb39ce2e9..181e1428557 100644 --- a/linters/javascript_standard/Dockerfile +++ b/linters/javascript_standard/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/json_eslint_plugin_jsonc/Dockerfile b/linters/json_eslint_plugin_jsonc/Dockerfile index 3af7d272b39..bea27fac6a9 100644 --- a/linters/json_eslint_plugin_jsonc/Dockerfile +++ b/linters/json_eslint_plugin_jsonc/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -176,6 +164,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/json_jsonlint/Dockerfile b/linters/json_jsonlint/Dockerfile index 2c07ec0f320..9327cc29105 100644 --- a/linters/json_jsonlint/Dockerfile +++ b/linters/json_jsonlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/json_npm_package_json_lint/Dockerfile b/linters/json_npm_package_json_lint/Dockerfile index 6c7f9035d97..003dd9e2dda 100644 --- a/linters/json_npm_package_json_lint/Dockerfile +++ b/linters/json_npm_package_json_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/json_prettier/Dockerfile b/linters/json_prettier/Dockerfile index c6287c5af6d..66f4b963b0b 100644 --- a/linters/json_prettier/Dockerfile +++ b/linters/json_prettier/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/json_v8r/Dockerfile b/linters/json_v8r/Dockerfile index c7a3d8f4cdf..c077c579483 100644 --- a/linters/json_v8r/Dockerfile +++ b/linters/json_v8r/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/jsx_eslint/Dockerfile b/linters/jsx_eslint/Dockerfile index e227ac6541a..6ced49b9191 100644 --- a/linters/jsx_eslint/Dockerfile +++ b/linters/jsx_eslint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -177,6 +165,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/kotlin_ktlint/Dockerfile b/linters/kotlin_ktlint/Dockerfile index 2ba42ba00c5..2cae97add88 100644 --- a/linters/kotlin_ktlint/Dockerfile +++ b/linters/kotlin_ktlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -158,6 +146,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/kubernetes_helm/Dockerfile b/linters/kubernetes_helm/Dockerfile index d658b2c1a91..948c712f8be 100644 --- a/linters/kubernetes_helm/Dockerfile +++ b/linters/kubernetes_helm/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -153,6 +141,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/kubernetes_kubeconform/Dockerfile b/linters/kubernetes_kubeconform/Dockerfile index 97331fadf40..4dbaf1db540 100644 --- a/linters/kubernetes_kubeconform/Dockerfile +++ b/linters/kubernetes_kubeconform/Dockerfile @@ -17,21 +17,9 @@ FROM ghcr.io/yannh/kubeconform:latest-alpine as kubeconform ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/kubernetes_kubescape/Dockerfile b/linters/kubernetes_kubescape/Dockerfile index eee1bcacfb5..b9f1e71e9ee 100644 --- a/linters/kubernetes_kubescape/Dockerfile +++ b/linters/kubernetes_kubescape/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -61,6 +49,8 @@ RUN apk add --update --no-cache \ musl-dev \ openssh \ gcompat \ + libc6-compat \ + libstdc++ \ && git config --global core.autocrlf true #APK__END @@ -136,7 +126,8 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ############################################################################################# #OTHER__START # kubescape installation -RUN curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash +RUN ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 #OTHER__END @@ -156,6 +147,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/latex_chktex/Dockerfile b/linters/latex_chktex/Dockerfile index 5e8dfce4a34..c048cec46b7 100644 --- a/linters/latex_chktex/Dockerfile +++ b/linters/latex_chktex/Dockerfile @@ -17,21 +17,9 @@ FROM ghcr.io/assignuser/chktex-alpine:latest as chktex ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/lua_luacheck/Dockerfile b/linters/lua_luacheck/Dockerfile index 01468aa29a9..84636edf03f 100644 --- a/linters/lua_luacheck/Dockerfile +++ b/linters/lua_luacheck/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -169,6 +157,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/makefile_checkmake/Dockerfile b/linters/makefile_checkmake/Dockerfile index 4222a71fdbe..855e51294b9 100644 --- a/linters/makefile_checkmake/Dockerfile +++ b/linters/makefile_checkmake/Dockerfile @@ -17,21 +17,9 @@ FROM mrtazz/checkmake:latest as checkmake ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/markdown_markdown_link_check/Dockerfile b/linters/markdown_markdown_link_check/Dockerfile index 68ebec08590..17a43a7ea4a 100644 --- a/linters/markdown_markdown_link_check/Dockerfile +++ b/linters/markdown_markdown_link_check/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/markdown_markdown_table_formatter/Dockerfile b/linters/markdown_markdown_table_formatter/Dockerfile index d4fb2379c43..7b1d9e1ff96 100644 --- a/linters/markdown_markdown_table_formatter/Dockerfile +++ b/linters/markdown_markdown_table_formatter/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/markdown_markdownlint/Dockerfile b/linters/markdown_markdownlint/Dockerfile index f6ed3f6bd93..3e1734eeae3 100644 --- a/linters/markdown_markdownlint/Dockerfile +++ b/linters/markdown_markdownlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/markdown_remark_lint/Dockerfile b/linters/markdown_remark_lint/Dockerfile index 407c00161e6..51817e6ce91 100644 --- a/linters/markdown_remark_lint/Dockerfile +++ b/linters/markdown_remark_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/openapi_spectral/Dockerfile b/linters/openapi_spectral/Dockerfile index bf83303f044..599a83eea18 100644 --- a/linters/openapi_spectral/Dockerfile +++ b/linters/openapi_spectral/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/perl_perlcritic/Dockerfile b/linters/perl_perlcritic/Dockerfile index c5702301642..4a5083f0fd0 100644 --- a/linters/perl_perlcritic/Dockerfile +++ b/linters/perl_perlcritic/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/php_phpcs/Dockerfile b/linters/php_phpcs/Dockerfile index 9f116f98660..411d06e52d8 100644 --- a/linters/php_phpcs/Dockerfile +++ b/linters/php_phpcs/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -70,7 +58,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ && git config --global core.autocrlf true #APK__END @@ -162,7 +149,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # phpcs installation RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install phpcs -g --trust-gpg-keys 31C7E470E2138192 @@ -185,6 +171,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/php_phplint/Dockerfile b/linters/php_phplint/Dockerfile index 3e3fac64ea2..8d330b1100b 100644 --- a/linters/php_phplint/Dockerfile +++ b/linters/php_phplint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -70,7 +58,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ && git config --global core.autocrlf true #APK__END @@ -162,11 +149,9 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # phplint installation -RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g #OTHER__END @@ -186,6 +171,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/php_phpstan/Dockerfile b/linters/php_phpstan/Dockerfile index b9c755d7875..13af2cb23f4 100644 --- a/linters/php_phpstan/Dockerfile +++ b/linters/php_phpstan/Dockerfile @@ -17,21 +17,9 @@ FROM ghcr.io/phpstan/phpstan:latest-php8.1 as phpstan ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -70,7 +58,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ && git config --global core.autocrlf true #APK__END @@ -162,7 +149,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # phpstan installation # Managed with COPY --link --from=phpstan /composer/vendor/phpstan/phpstan/phpstan.phar /usr/bin/phpstan @@ -185,6 +171,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/php_psalm/Dockerfile b/linters/php_psalm/Dockerfile index 0e64e8d662d..4afb63975ce 100644 --- a/linters/php_psalm/Dockerfile +++ b/linters/php_psalm/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -70,7 +58,6 @@ RUN apk add --update --no-cache \ php81-curl \ php81-dom \ php81-simplexml \ - composer \ dpkg \ && git config --global core.autocrlf true #APK__END @@ -162,7 +149,6 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 -ENV PATH="/root/.composer/vendor/bin:$PATH" # psalm installation RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0F1D262429A5 @@ -185,6 +171,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/powershell_powershell/Dockerfile b/linters/powershell_powershell/Dockerfile index 8c15dfbefbe..180bc53753d 100644 --- a/linters/powershell_powershell/Dockerfile +++ b/linters/powershell_powershell/Dockerfile @@ -17,26 +17,13 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' ARG PSSA_VERSION='latest' @@ -52,7 +39,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -139,17 +126,13 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ############################################################################################# #OTHER__START # POWERSHELL installation -RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ @@ -177,6 +160,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/powershell_powershell_formatter/Dockerfile b/linters/powershell_powershell_formatter/Dockerfile index c35ecac6bfc..8f4cb4e89ff 100644 --- a/linters/powershell_powershell_formatter/Dockerfile +++ b/linters/powershell_powershell_formatter/Dockerfile @@ -17,26 +17,13 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #ARG__START -ARG TARGETPLATFORM ARG PWSH_VERSION='latest' ARG PWSH_DIRECTORY='/opt/microsoft/powershell' ARG PSSA_VERSION='latest' @@ -52,7 +39,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -139,17 +126,13 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ############################################################################################# #OTHER__START # POWERSHELL installation -RUN --mount=type=secret,id=GITHUB_TOKEN case ${TARGETPLATFORM} in \ - "linux/amd64") POWERSHELL_ARCH=alpine-x64 ;; \ - "linux/arm64") POWERSHELL_ARCH=arm64 ;; \ - esac \ - && mkdir -p ${PWSH_DIRECTORY} \ +RUN --mount=type=secret,id=GITHUB_TOKEN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $(cat /run/secrets/GITHUB_TOKEN)" \ https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ - | grep linux-${POWERSHELL_ARCH} \ + | grep linux-alpine-x64 \ | cut -d '"' -f 4 \ | xargs -n 1 wget -O - \ | tar -xzC ${PWSH_DIRECTORY} \ @@ -177,6 +160,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/protobuf_protolint/Dockerfile b/linters/protobuf_protolint/Dockerfile index 53aac514443..1f200800402 100644 --- a/linters/protobuf_protolint/Dockerfile +++ b/linters/protobuf_protolint/Dockerfile @@ -17,21 +17,9 @@ FROM yoheimuta/protolint:latest as protolint ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/puppet_puppet_lint/Dockerfile b/linters/puppet_puppet_lint/Dockerfile index cdccae0a164..8fd17550d47 100644 --- a/linters/puppet_puppet_lint/Dockerfile +++ b/linters/puppet_puppet_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -158,6 +146,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_bandit/Dockerfile b/linters/python_bandit/Dockerfile index b71a4d88690..b444aeb67cc 100644 --- a/linters/python_bandit/Dockerfile +++ b/linters/python_bandit/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_black/Dockerfile b/linters/python_black/Dockerfile index efcab321c5d..c683bc9a832 100644 --- a/linters/python_black/Dockerfile +++ b/linters/python_black/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_flake8/Dockerfile b/linters/python_flake8/Dockerfile index 2049946e943..c6dcff60ffa 100644 --- a/linters/python_flake8/Dockerfile +++ b/linters/python_flake8/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_isort/Dockerfile b/linters/python_isort/Dockerfile index c31ae8d778c..4190bc2b1c4 100644 --- a/linters/python_isort/Dockerfile +++ b/linters/python_isort/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_mypy/Dockerfile b/linters/python_mypy/Dockerfile index a8e8a086367..0f5edbfd81f 100644 --- a/linters/python_mypy/Dockerfile +++ b/linters/python_mypy/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -137,6 +125,8 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START +# mypy installation +ENV MYPY_CACHE_DIR=/tmp #OTHER__END @@ -155,6 +145,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_pylint/Dockerfile b/linters/python_pylint/Dockerfile index 589885d5f08..ec1301be8fa 100644 --- a/linters/python_pylint/Dockerfile +++ b/linters/python_pylint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_pyright/Dockerfile b/linters/python_pyright/Dockerfile index 18a04d18ae4..4bca2bce859 100644 --- a/linters/python_pyright/Dockerfile +++ b/linters/python_pyright/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/python_ruff/Dockerfile b/linters/python_ruff/Dockerfile index 8bfab70560a..0a60b70de4c 100644 --- a/linters/python_ruff/Dockerfile +++ b/linters/python_ruff/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/r_lintr/Dockerfile b/linters/r_lintr/Dockerfile index 633e69dc183..88798831bfd 100644 --- a/linters/r_lintr/Dockerfile +++ b/linters/r_lintr/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -168,6 +156,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/raku_raku/Dockerfile b/linters/raku_raku/Dockerfile index 232e2f299f6..738bb403305 100644 --- a/linters/raku_raku/Dockerfile +++ b/linters/raku_raku/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -161,6 +149,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_checkov/Dockerfile b/linters/repository_checkov/Dockerfile index eb87338cc8e..c3e7733403b 100644 --- a/linters/repository_checkov/Dockerfile +++ b/linters/repository_checkov/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_devskim/Dockerfile b/linters/repository_devskim/Dockerfile index cf9c3fc877e..290a5cd9bbb 100644 --- a/linters/repository_devskim/Dockerfile +++ b/linters/repository_devskim/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -148,7 +136,7 @@ RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" -RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI #OTHER__END @@ -167,6 +155,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_dustilock/Dockerfile b/linters/repository_dustilock/Dockerfile index 9cb64ba36ec..a5c229e16bd 100644 --- a/linters/repository_dustilock/Dockerfile +++ b/linters/repository_dustilock/Dockerfile @@ -19,21 +19,9 @@ RUN GOBIN=/usr/bin go install github.com/checkmarx/dustilock@v1.2.0 ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -51,7 +39,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_git_diff/Dockerfile b/linters/repository_git_diff/Dockerfile index a2ff73f8b15..6e7f91c7539 100644 --- a/linters/repository_git_diff/Dockerfile +++ b/linters/repository_git_diff/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -152,6 +140,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_gitleaks/Dockerfile b/linters/repository_gitleaks/Dockerfile index 80decd5886b..6c87ee3ad8c 100644 --- a/linters/repository_gitleaks/Dockerfile +++ b/linters/repository_gitleaks/Dockerfile @@ -11,27 +11,15 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM zricethezav/gitleaks:v8.16.3 as gitleaks +FROM zricethezav/gitleaks:v8.17.0 as gitleaks #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_grype/Dockerfile b/linters/repository_grype/Dockerfile new file mode 100644 index 00000000000..8be162b4c89 --- /dev/null +++ b/linters/repository_grype/Dockerfile @@ -0,0 +1,213 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## 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.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START + +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# grype installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + 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_GRYPE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_GRYPE \ + 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 \ + SARIF_TO_HUMAN=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_kics/Dockerfile b/linters/repository_kics/Dockerfile new file mode 100644 index 00000000000..74d23916079 --- /dev/null +++ b/linters/repository_kics/Dockerfile @@ -0,0 +1,217 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## 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.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START +COPY --link --from=kics /app/bin/kics /usr/bin/ +COPY --from=kics /app/bin/assets /opt/kics/assets/ +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# kics installation +# Managed with COPY --link --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 +# Managed with COPY --from=kics /app/bin/assets /opt/kics/assets/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + 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_KICS \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_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 \ + SARIF_TO_HUMAN=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_secretlint/Dockerfile b/linters/repository_secretlint/Dockerfile index dcc5934ce0d..c96358be582 100644 --- a/linters/repository_secretlint/Dockerfile +++ b/linters/repository_secretlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -176,6 +164,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_semgrep/Dockerfile b/linters/repository_semgrep/Dockerfile index 0cb62309514..86162336d1d 100644 --- a/linters/repository_semgrep/Dockerfile +++ b/linters/repository_semgrep/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_syft/Dockerfile b/linters/repository_syft/Dockerfile index 2a119027b27..e090c1f97d4 100644 --- a/linters/repository_syft/Dockerfile +++ b/linters/repository_syft/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_trivy/Dockerfile b/linters/repository_trivy/Dockerfile index 6214045b276..38404d06f0f 100644 --- a/linters/repository_trivy/Dockerfile +++ b/linters/repository_trivy/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/repository_trivy_sbom/Dockerfile b/linters/repository_trivy_sbom/Dockerfile new file mode 100644 index 00000000000..a8360d56f28 --- /dev/null +++ b/linters/repository_trivy_sbom/Dockerfile @@ -0,0 +1,214 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## 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.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START + +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# trivy-sbom installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + 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_SBOM \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_TRIVY_SBOM \ + 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 \ + SARIF_TO_HUMAN=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_trufflehog/Dockerfile b/linters/repository_trufflehog/Dockerfile new file mode 100644 index 00000000000..50518dad8d5 --- /dev/null +++ b/linters/repository_trufflehog/Dockerfile @@ -0,0 +1,213 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM trufflesecurity/trufflehog:latest as trufflehog +#FROM__END + +################## +# Get base image # +################## +FROM python:3.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# trufflehog installation +# Managed with COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + 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_TRUFFLEHOG \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_TRUFFLEHOG \ + 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 \ + SARIF_TO_HUMAN=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 index 27dcc03d2ed..71b488a9649 100644 --- a/linters/rst_rst_lint/Dockerfile +++ b/linters/rst_rst_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/rst_rstcheck/Dockerfile b/linters/rst_rstcheck/Dockerfile index 56a1c275546..eadde222af7 100644 --- a/linters/rst_rstcheck/Dockerfile +++ b/linters/rst_rstcheck/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/rst_rstfmt/Dockerfile b/linters/rst_rstfmt/Dockerfile index 2912f096e68..15851840a29 100644 --- a/linters/rst_rstfmt/Dockerfile +++ b/linters/rst_rstfmt/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/ruby_rubocop/Dockerfile b/linters/ruby_rubocop/Dockerfile index edc60898de7..6551426416d 100644 --- a/linters/ruby_rubocop/Dockerfile +++ b/linters/ruby_rubocop/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -163,6 +151,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/rust_clippy/Dockerfile b/linters/rust_clippy/Dockerfile index 393daf36e4d..cb1c01d742d 100644 --- a/linters/rust_clippy/Dockerfile +++ b/linters/rust_clippy/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/salesforce_sfdx_scanner_apex/Dockerfile b/linters/salesforce_sfdx_scanner_apex/Dockerfile index 64173046b27..710ddcf3c92 100644 --- a/linters/salesforce_sfdx_scanner_apex/Dockerfile +++ b/linters/salesforce_sfdx_scanner_apex/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -187,6 +175,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/salesforce_sfdx_scanner_aura/Dockerfile b/linters/salesforce_sfdx_scanner_aura/Dockerfile index 9b8987f7a98..caa1bd060c7 100644 --- a/linters/salesforce_sfdx_scanner_aura/Dockerfile +++ b/linters/salesforce_sfdx_scanner_aura/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -187,6 +175,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/salesforce_sfdx_scanner_lwc/Dockerfile b/linters/salesforce_sfdx_scanner_lwc/Dockerfile index 4c7a8bad825..247bfb36d6f 100644 --- a/linters/salesforce_sfdx_scanner_lwc/Dockerfile +++ b/linters/salesforce_sfdx_scanner_lwc/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -187,6 +175,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/scala_scalafix/Dockerfile b/linters/scala_scalafix/Dockerfile index 6bde6aade08..e16861b486c 100644 --- a/linters/scala_scalafix/Dockerfile +++ b/linters/scala_scalafix/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -159,6 +147,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/snakemake_lint/Dockerfile b/linters/snakemake_lint/Dockerfile index 99b9937e2ab..9c7dbbe1dfc 100644 --- a/linters/snakemake_lint/Dockerfile +++ b/linters/snakemake_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/snakemake_snakefmt/Dockerfile b/linters/snakemake_snakefmt/Dockerfile index c420e96b5d0..d7d2ce82234 100644 --- a/linters/snakemake_snakefmt/Dockerfile +++ b/linters/snakemake_snakefmt/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/spell_cspell/Dockerfile b/linters/spell_cspell/Dockerfile index a4890715cf8..e477ee24941 100644 --- a/linters/spell_cspell/Dockerfile +++ b/linters/spell_cspell/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/spell_lychee/Dockerfile b/linters/spell_lychee/Dockerfile new file mode 100644 index 00000000000..e571d1faf13 --- /dev/null +++ b/linters/spell_lychee/Dockerfile @@ -0,0 +1,213 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM lycheeverse/lychee:latest-alpine as lychee +#FROM__END + +################## +# Get base image # +################## +FROM python:3.11.4-alpine3.17 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# 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 + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + 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 + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START +COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# lychee installation +# Managed with COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# 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://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SPELL_LYCHEE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SPELL_LYCHEE \ + 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 \ + SARIF_TO_HUMAN=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/spell_proselint/Dockerfile b/linters/spell_proselint/Dockerfile index b58cd58eb41..af470d772e7 100644 --- a/linters/spell_proselint/Dockerfile +++ b/linters/spell_proselint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/spell_vale/Dockerfile b/linters/spell_vale/Dockerfile index 9f5f95ab8d7..3ea23df23ae 100644 --- a/linters/spell_vale/Dockerfile +++ b/linters/spell_vale/Dockerfile @@ -17,21 +17,9 @@ FROM jdkato/vale:latest as vale ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/sql_sql_lint/Dockerfile b/linters/sql_sql_lint/Dockerfile index 64255debd37..97764795373 100644 --- a/linters/sql_sql_lint/Dockerfile +++ b/linters/sql_sql_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/sql_sqlfluff/Dockerfile b/linters/sql_sqlfluff/Dockerfile index 0f7300594bb..644e3af7b35 100644 --- a/linters/sql_sqlfluff/Dockerfile +++ b/linters/sql_sqlfluff/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/sql_tsqllint/Dockerfile b/linters/sql_tsqllint/Dockerfile index 517ead0ed77..8898cb6b9a9 100644 --- a/linters/sql_tsqllint/Dockerfile +++ b/linters/sql_tsqllint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -167,6 +155,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/swift_swiftlint/Dockerfile b/linters/swift_swiftlint/Dockerfile index e58cb534573..4c765c5de36 100644 --- a/linters/swift_swiftlint/Dockerfile +++ b/linters/swift_swiftlint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/tekton_tekton_lint/Dockerfile b/linters/tekton_tekton_lint/Dockerfile index 0932352679d..47d90a99f65 100644 --- a/linters/tekton_tekton_lint/Dockerfile +++ b/linters/tekton_tekton_lint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/terraform_kics/Dockerfile b/linters/terraform_kics/Dockerfile index 2ef552abd87..6d2c01aa370 100644 --- a/linters/terraform_kics/Dockerfile +++ b/linters/terraform_kics/Dockerfile @@ -158,6 +158,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/terraform_terraform_fmt/Dockerfile b/linters/terraform_terraform_fmt/Dockerfile index 33d62a4ed16..7316f417a29 100644 --- a/linters/terraform_terraform_fmt/Dockerfile +++ b/linters/terraform_terraform_fmt/Dockerfile @@ -17,21 +17,9 @@ FROM alpine/terragrunt:latest as terragrunt ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/terraform_terragrunt/Dockerfile b/linters/terraform_terragrunt/Dockerfile index a58ee317740..637f35c5886 100644 --- a/linters/terraform_terragrunt/Dockerfile +++ b/linters/terraform_terragrunt/Dockerfile @@ -17,21 +17,9 @@ FROM alpine/terragrunt:latest as terragrunt ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/terraform_terrascan/Dockerfile b/linters/terraform_terrascan/Dockerfile index 9eca4e85e80..fa210ee5360 100644 --- a/linters/terraform_terrascan/Dockerfile +++ b/linters/terraform_terrascan/Dockerfile @@ -17,21 +17,9 @@ FROM tenable/terrascan:1.18.1 as terrascan ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/terraform_tflint/Dockerfile b/linters/terraform_tflint/Dockerfile index 6446fb307ed..31156006ff0 100644 --- a/linters/terraform_tflint/Dockerfile +++ b/linters/terraform_tflint/Dockerfile @@ -11,27 +11,15 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint +FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint #FROM__END ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -154,6 +142,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/tsx_eslint/Dockerfile b/linters/tsx_eslint/Dockerfile index 199ccd3cd9e..b33b06e2e67 100644 --- a/linters/tsx_eslint/Dockerfile +++ b/linters/tsx_eslint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -186,6 +174,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/typescript_es/Dockerfile b/linters/typescript_es/Dockerfile index 8b11b04eb70..c8d8d515048 100644 --- a/linters/typescript_es/Dockerfile +++ b/linters/typescript_es/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -189,6 +177,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/typescript_prettier/Dockerfile b/linters/typescript_prettier/Dockerfile index cccf9227ed3..33a9b7badd7 100644 --- a/linters/typescript_prettier/Dockerfile +++ b/linters/typescript_prettier/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -175,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/typescript_standard/Dockerfile b/linters/typescript_standard/Dockerfile index b3ad68cb919..53ec41a7c75 100644 --- a/linters/typescript_standard/Dockerfile +++ b/linters/typescript_standard/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -99,9 +87,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ typescript \ - standard \ - @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser && \ + ts-standard && \ echo "Cleaning npm cache…" \ && npm cache clean --force || true \ && echo "Changing owner of node_modules files…" \ @@ -177,6 +163,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/vbdotnet_dotnet_format/Dockerfile b/linters/vbdotnet_dotnet_format/Dockerfile index ebbb14f8616..833db577905 100644 --- a/linters/vbdotnet_dotnet_format/Dockerfile +++ b/linters/vbdotnet_dotnet_format/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -166,6 +154,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/xml_xmllint/Dockerfile b/linters/xml_xmllint/Dockerfile index c9df745dc22..3e6c38e970d 100644 --- a/linters/xml_xmllint/Dockerfile +++ b/linters/xml_xmllint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -156,6 +144,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/yaml_prettier/Dockerfile b/linters/yaml_prettier/Dockerfile index 80720b46f6f..3fb3fee203d 100644 --- a/linters/yaml_prettier/Dockerfile +++ b/linters/yaml_prettier/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/yaml_v8r/Dockerfile b/linters/yaml_v8r/Dockerfile index c6d2ef3bea2..ce30aff6b31 100644 --- a/linters/yaml_v8r/Dockerfile +++ b/linters/yaml_v8r/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -174,6 +162,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/linters/yaml_yamllint/Dockerfile b/linters/yaml_yamllint/Dockerfile index 83d5bb222d7..2d17d271b33 100644 --- a/linters/yaml_yamllint/Dockerfile +++ b/linters/yaml_yamllint/Dockerfile @@ -17,21 +17,9 @@ ################## # Get base image # ################## - # https://stackoverflow.com/a/73711302/699056 -FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu - -FROM python:3.11.3-alpine3.17 +FROM python:3.11.4-alpine3.17 ARG GITHUB_TOKEN -# https://stackoverflow.com/a/73711302/699056 -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin/ -# https://stackoverflow.com/a/73711302/699056 -# https://stackoverflow.com/a/73359981/699056 -# https://stackoverflow.com/a/71209637/699056 -RUN apk add --update --no-cache libc6-compat \ - gcompat \ - qemu-x86_64 - ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# @@ -49,7 +37,7 @@ WORKDIR / ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ +RUN apk add --no-cache \ bash \ ca-certificates \ curl \ @@ -155,6 +143,9 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ COPY megalinter/descriptors /megalinter-descriptors COPY TEMPLATES /action/lib/.automation +# Copy server scripts +COPY server /server + ########################### # Get the build arguments # ########################### diff --git a/mega-linter-runner/.lycheeignore b/mega-linter-runner/.lycheeignore new file mode 100644 index 00000000000..99e3f30d799 --- /dev/null +++ b/mega-linter-runner/.lycheeignore @@ -0,0 +1,25 @@ +# These links are ignored by lychee link checker: https://github.com/lycheeverse/lychee +# The file allows you to list multiple regular expressions for exclusion (one pattern per line). +# The `.lycheeignore` file is only used for excluding URLs, not paths. Use the `exclude_path` key in the `lychee.toml` file. ref: https://github.com/lycheeverse/lycheeverse.github.io/blob/master/recipes/excluding-paths.md + +my-company.com +https://megalinter.io/ +https://megalinter.io/flavors/ +https://megalinter.io/configuration/ +https://www.linkedin.com/ +https://twitter.com +https://twitter.com/intent/tweet +https://fonts.gstatic.com +https://img.shields.io +http://mozilla.org/MPL/2.0/ +https://github.com/sider/goodcheck +https://api.github.com/repos/powershell/powershell/releases +https://storage.googleapis.com/dart-archive/channels/stable/release +https://stylelint.io/user-guide/integrations/other#analysis-platform-engines +https://raw.githubusercontent.com/some_org/some_repo/mega-linter-rules +https://raw.githubusercontent.com/cookiejar/megalinter-plugin-cookiejar/main/cookietemplate.mega-linter-descriptor.yml +https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/security.ico +https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/swift.ico +https://stylelint.io/user-guide/integrations/other#analysis-platform-engines +https://github.com/pmd/pmd/releases/download/pmd_releases +https://twitter.com/intent/tweet* diff --git a/mega-linter-runner/.mega-linter.yml b/mega-linter-runner/.mega-linter.yml index f7c841ef59c..155e5c8f5d9 100644 --- a/mega-linter-runner/.mega-linter.yml +++ b/mega-linter-runner/.mega-linter.yml @@ -7,7 +7,9 @@ APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment DISABLE: - EDITORCONFIG DISABLE_LINTERS: + - REPOSITORY_GRYPE - REPOSITORY_SEMGREP + - REPOSITORY_TRUFFLEHOG - SPELL_PROSELINT JAVASCRIPT_DEFAULT_STYLE: prettier YAML_FILTER_REGEX_EXCLUDE: (templates) diff --git a/mega-linter-runner/.trivyignore b/mega-linter-runner/.trivyignore index a2d265756c4..15c16550b24 100644 --- a/mega-linter-runner/.trivyignore +++ b/mega-linter-runner/.trivyignore @@ -4,3 +4,4 @@ CVE-2022-3517 CVE-2021-3807 CVE-2021-43138 CVE-2021-44906 +CVE-2023-26115 \ No newline at end of file diff --git a/mega-linter-runner/README.md b/mega-linter-runner/README.md index c0506c6dfb6..ae817d9cc71 100644 --- a/mega-linter-runner/README.md +++ b/mega-linter-runner/README.md @@ -15,7 +15,7 @@ [![Downloads/total](https://img.shields.io/npm/dt/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner) [![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?maxAge=2592000)](https://GitHub.com/oxsecurity/megalinter/stargazers/) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.5M-blue)](https://megalinter.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-4.8M-blue)](https://megalinter.io/flavors/) [![MegaLinter](https://github.com/oxsecurity/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://megalinter.io) [![codecov](https://codecov.io/gh/oxsecurity/megalinter/branch/master/graph/badge.svg)](https://codecov.io/gh/oxsecurity/megalinter) [![Secured with Trivy](https://img.shields.io/badge/Trivy-secured-green?logo=docker)](https://github.com/aquasecurity/trivy) @@ -153,7 +153,7 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me | | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md)
[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | | | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**csharpier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md)
[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md) | [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md) | [**dartanalyzer**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md)
[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![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) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**revive**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md)
[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md) | [**npm-groovy-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md)
[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**checkstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md)
[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -191,10 +191,10 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**sql-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md)
[_SQL_SQL_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**sqlfluff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md)
[_SQL_SQLFLUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | | | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**tsqllint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md)
[_SQL_TSQLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md) | [![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) | [**swiftlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SWIFT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift.md) | [**swiftlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [![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) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md)
[_TSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/jsx-eslint/eslint-plugin-react?cacheSeconds=3600)](https://github.com/jsx-eslint/eslint-plugin-react) ![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) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md)
[_TYPESCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?cacheSeconds=3600)](https://github.com/typescript-eslint/typescript-eslint) ![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) | [**standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md)
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**ts-standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/ts-standard?cacheSeconds=3600)](https://github.com/standard/ts-standard) ![autofix](https://shields.io/badge/-autofix-green) | | | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | | | [**Visual Basic .NET** (VBDOTNET)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md)
[_VBDOTNET_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | @@ -229,47 +229,51 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me ### Tooling formats -| | Tooling format | Linter | Additional | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [![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) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | -| | [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | -| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [![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) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | -| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | -| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | [![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) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | -| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | -| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [![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) | [**tflint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [![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) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terrascan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terragrunt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [![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**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terraform-fmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | -| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**kics**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md)
[_TERRAFORM_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | +| | Tooling format | Linter | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [![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) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | +| | [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | +| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [![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) | [**hadolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [![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) | [**editorconfig-checker**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [![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) | [**gherkin-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [![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) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | [![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) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [![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) | [**tekton-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [![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) | [**tflint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [![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) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terrascan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/tenable/terrascan?cacheSeconds=3600)](https://github.com/tenable/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terragrunt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [![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**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terraform-fmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | ### Other -| | Code quality checker | Linter | Additional | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md) | [**jscpd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [![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) | [**checkov**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**devskim**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**dustilock**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**git_diff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**gitleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**secretlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**semgrep**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**syft**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [![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) | [**cspell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md)
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | -| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**proselint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | -| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**vale**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md)
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | Code quality checker | Linter | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md) | [**jscpd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [![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) | [**checkov**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**devskim**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**dustilock**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**git_diff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**gitleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/gitleaks/gitleaks?cacheSeconds=3600)](https://github.com/gitleaks/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**grype**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md)
[_REPOSITORY_GRYPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/anchore/grype?cacheSeconds=3600)](https://github.com/anchore/grype) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**kics**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md)
[_REPOSITORY_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**secretlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**semgrep**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**syft**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy-sbom**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trufflehog**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md) | [![GitHub stars](https://img.shields.io/github/stars/trufflesecurity/trufflehog?cacheSeconds=3600)](https://github.com/trufflesecurity/trufflehog) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**cspell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md)
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**proselint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [![GitHub stars](https://img.shields.io/github/stars/amperser/proselint?cacheSeconds=3600)](https://github.com/amperser/proselint) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**vale**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md)
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [![GitHub stars](https://img.shields.io/github/stars/errata-ai/vale?cacheSeconds=3600)](https://github.com/errata-ai/vale) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**lychee**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md)
[_SPELL_LYCHEE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md) | [![GitHub stars](https://img.shields.io/github/stars/lycheeverse/lychee?cacheSeconds=3600)](https://github.com/lycheeverse/lychee) | diff --git a/mega-linter-runner/generators/mega-linter/templates/.drone.yml b/mega-linter-runner/generators/mega-linter/templates/.drone.yml index 9dd82ff0150..5360deb56e1 100644 --- a/mega-linter-runner/generators/mega-linter/templates/.drone.yml +++ b/mega-linter-runner/generators/mega-linter/templates/.drone.yml @@ -7,6 +7,6 @@ workspace: steps: - name: megalinter - image: oxsecurity/megalinter:v6 + image: oxsecurity/megalinter:v7 environment: DEFAULT_WORKSPACE: /tmp/lint 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 91431761a94..5dc948525f0 100644 --- a/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml +++ b/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml @@ -23,6 +23,12 @@ jobs: build: name: MegaLinter runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR + # Remove the ones you do not need + contents: write + issues: write + pull-requests: write steps: # Git Checkout - name: Checkout Code diff --git a/mega-linter-runner/lib/runner.js b/mega-linter-runner/lib/runner.js index b4112cd6115..baa6fd7ed9e 100644 --- a/mega-linter-runner/lib/runner.js +++ b/mega-linter-runner/lib/runner.js @@ -66,18 +66,18 @@ class MegaLinterRunner { (options.flavor === "all" || options.flavor == null) && this.isv4(release) ? "nvuillam/mega-linter" : options.flavor !== "all" && this.isv4(release) - ? `nvuillam/mega-linter-${options.flavor}` - : // << v4 retrocompatibility - // v5 retrocompatibility >> - (options.flavor === "all" || options.flavor == null) && - this.isv5(release) - ? "megalinter/megalinter" - : options.flavor !== "all" && this.isv5(release) - ? `megalinter/megalinter-${options.flavor}` - : // << v5 retrocompatibility - options.flavor === "all" || options.flavor == null - ? "oxsecurity/megalinter" - : `oxsecurity/megalinter-${options.flavor}`; + ? `nvuillam/mega-linter-${options.flavor}` + : // << v4 retrocompatibility + // v5 retrocompatibility >> + (options.flavor === "all" || options.flavor == null) && + this.isv5(release) + ? "megalinter/megalinter" + : options.flavor !== "all" && this.isv5(release) + ? `megalinter/megalinter-${options.flavor}` + : // << v5 retrocompatibility + options.flavor === "all" || options.flavor == null + ? "oxsecurity/megalinter" + : `oxsecurity/megalinter-${options.flavor}`; this.checkPreviousVersion(release); const dockerImage = options.image || `${dockerImageName}:${release}`; // Docker image can be directly sent in options @@ -90,6 +90,9 @@ ERROR: Docker engine has not been found on your system. - to run docker on CI, use a base image containing docker engine`); }); + // Get platform to use with docker pull & run + const imagePlatform = options.platform || "linux/amd64"; + // Pull docker image if (options.nodockerpull !== true) { console.info(`Pulling docker image ${dockerImage} ... `); @@ -99,7 +102,6 @@ ERROR: Docker engine has not been found on your system. console.info( "The next runs, it will be immediate (thanks to docker cache !)" ); - const imagePlatform = options.platform || "linux/amd64"; const spawnResPull = spawnSync( "docker", ["pull", "--platform", imagePlatform, dockerImage], @@ -127,7 +129,7 @@ ERROR: Docker engine has not been found on your system. // Build docker run options const lintPath = path.resolve(options.path || "."); - const commandArgs = ["run"]; + const commandArgs = ["run", "--platform", imagePlatform]; if (options["removeContainer"]) { commandArgs.push("--rm"); } diff --git a/mega-linter-runner/lib/upgrade.js b/mega-linter-runner/lib/upgrade.js index 96318200030..546d12bf4ee 100644 --- a/mega-linter-runner/lib/upgrade.js +++ b/mega-linter-runner/lib/upgrade.js @@ -267,7 +267,7 @@ jobs: }, // GitHub Action report folder { - regex: /Mega-Linter reports(.*)\n(.*)path:(.*)\n(.*)report/gm, + regex: /Mega-Linter reports(.*)\n(.*)path:(.*)\n(.*)report(?!s)/gm, replacement: "Mega-Linter reports$1\n$2path:$3\n$4megalinter-reports", test: ` name: Mega-Linter reports path: | @@ -347,6 +347,12 @@ jobs: test: "https://oxsecurity.github.io/megalinter/configuration", testRes: "https://megalinter.io/configuration", }, + { + regex: /https:\/\/megalinter.io\/configuration/gm, + replacement: "https://megalinter.io/config-file", + test: "https://megalinter.io/configuration/", + testRes: "https://megalinter.io/config-file/", + }, // Github actions flavors { regex: /oxsecurity\/megalinter\/flavors\/([a-z]*)@v6\.(.*)/gm, diff --git a/mega-linter-runner/package.json b/mega-linter-runner/package.json index a331933246f..c2049806124 100644 --- a/mega-linter-runner/package.json +++ b/mega-linter-runner/package.json @@ -1,6 +1,6 @@ { "name": "mega-linter-runner", - "version": "6.22.2", + "version": "7.1.0", "repository": { "type": "git", "url": "https://github.com/oxsecurity/megalinter.git" @@ -95,5 +95,8 @@ "assert": "^2.0.0", "eslint": "^7.14.0", "mocha": "^8.2.1" + }, + "resolutions": { + "semver": "7.5.2" } } diff --git a/mega-linter-runner/yarn.lock b/mega-linter-runner/yarn.lock index 30c90598f11..9d5742af328 100644 --- a/mega-linter-runner/yarn.lock +++ b/mega-linter-runner/yarn.lock @@ -3243,15 +3243,10 @@ scoped-regex@^2.0.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== +"semver@2 || 3 || 4 || 5", semver@7.5.2, 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.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== dependencies: lru-cache "^6.0.0" diff --git a/megalinter/Linter.py b/megalinter/Linter.py index 28ee0d97f2a..a7bb23af6e0 100644 --- a/megalinter/Linter.py +++ b/megalinter/Linter.py @@ -54,6 +54,7 @@ def __init__(self, params=None, linter_config=None): self.name = None self.disabled = False self.is_formatter = False + self.is_sbom = False self.linter_name = "Field 'linter_name' must be overridden at custom linter class level" # Ex: eslint self.linter_speed = 3 self.can_output_sarif = False @@ -87,6 +88,7 @@ def __init__(self, params=None, linter_config=None): self.is_plugin = False self.pre_commands = None self.post_commands = None + self.unsecured_env_variables = [] self.ignore_for_flavor_suggestions = False self.cli_lint_mode = "file" @@ -137,6 +139,7 @@ def __init__(self, params=None, linter_config=None): self.report_folder = "" self.reporters = [] + self.lint_command_log: list(str) | str | None = None # Initialize parameters default_params = { @@ -294,7 +297,8 @@ def __init__(self, params=None, linter_config=None): self.ignore_file_label = None self.ignore_file_error = None self.filter_regex_include = None - self.filter_regex_exclude = None + self.filter_regex_exclude_descriptor = None + self.filter_regex_exclude_linter = None self.post_linter_status = ( params["post_linter_status"] if "post_linter_status" in params @@ -664,6 +668,12 @@ def load_config_vars(self, params): self.request_id, self.name + "_POST_COMMANDS" ) + # Get secured variables allow list + if config.exists(self.request_id, self.name + "_UNSECURED_ENV_VARIABLES"): + self.unsecured_env_variables = config.get_list( + self.request_id, self.name + "_UNSECURED_ENV_VARIABLES" + ) + # Disable errors for this linter NAME + _DISABLE_ERRORS, then LANGUAGE + _DISABLE_ERRORS if config.get(self.request_id, self.name + "_DISABLE_ERRORS_IF_LESS_THAN"): self.disable_errors_if_less_than = int( @@ -687,17 +697,16 @@ def load_config_vars(self, params): == "true" ): self.disable_errors = True - # Exclude regex: try first NAME + _FILTER_REGEX_EXCLUDE, then LANGUAGE + _FILTER_REGEX_EXCLUDE + # Exclude regex: descriptor level + if config.exists(self.request_id, self.descriptor_id + "_FILTER_REGEX_EXCLUDE"): + self.filter_regex_exclude_descriptor = config.get( + self.request_id, self.descriptor_id + "_FILTER_REGEX_EXCLUDE" + ) + # Exclude regex: linter level if config.exists(self.request_id, self.name + "_FILTER_REGEX_EXCLUDE"): - self.filter_regex_exclude = config.get( + self.filter_regex_exclude_linter = config.get( self.request_id, self.name + "_FILTER_REGEX_EXCLUDE" ) - elif config.exists( - self.request_id, self.descriptor_id + "_FILTER_REGEX_EXCLUDE" - ): - self.filter_regex_exclude = config.get( - self.request_id, self.descriptor_id + "_FILTER_REGEX_EXCLUDE" - ) # Override default docker image version if config.exists(self.request_id, self.name + "_DOCKER_IMAGE_VERSION"): self.cli_docker_image_version = config.get( @@ -776,8 +785,10 @@ def run(self): # Generate linter reports self.elapsed_time_s = perf_counter() - self.start_perf for reporter in self.reporters: - reporter.produce_report() - + try: + reporter.produce_report() + except Exception as e: + logging.error("Unable to process reporter " + reporter.name + str(e)) return self def replace_vars(self, variables): @@ -832,7 +843,8 @@ def log_file_filters(self): log_object = { "name": self.name, "filter_regex_include": self.filter_regex_include, - "filter_regex_exclude": self.filter_regex_exclude, + "filter_regex_exclude_descriptor": self.filter_regex_exclude_descriptor, + "filter_regex_exclude_linter": self.filter_regex_exclude_linter, "files_sub_directory": self.files_sub_directory, "lint_all_files": self.lint_all_files, "lint_all_other_linters_files": self.lint_all_other_linters_files, @@ -851,7 +863,10 @@ def collect_files(self, all_files): self.files = utils.filter_files( all_files=all_files, filter_regex_include=self.filter_regex_include, - filter_regex_exclude=self.filter_regex_exclude, + filter_regex_exclude=[ + self.filter_regex_exclude_descriptor, + self.filter_regex_exclude_linter, + ], file_names_regex=self.file_names_regex, file_extensions=self.file_extensions, ignored_files=[], @@ -878,7 +893,11 @@ def process_linter(self, file=None): 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)}") + # Output command if debug mode + if os.environ.get("LOG_LEVEL", "INFO") == "DEBUG": + logging.debug(f"[{self.linter_name}] command: {str(command)}") + self.lint_command_log = command + # Run command via CLI return_code, return_output = self.execute_lint_command(command) logging.debug( f"[{self.linter_name}] result: {str(return_code)} {return_output}" @@ -891,7 +910,7 @@ def execute_lint_command(self, command): cwd = os.path.abspath(self.workspace) logging.debug(f"[{self.linter_name}] CWD: {cwd}") subprocess_env = { - **config.build_env(self.request_id), + **config.build_env(self.request_id, True, self.unsecured_env_variables), "FORCE_COLOR": "0", } if type(command) == str: @@ -907,6 +926,8 @@ def execute_lint_command(self, command): if sys.platform == "win32" else "/bin/bash", ) + return_code = process.returncode + return_stdout = utils.decode_utf8(process.stdout) else: # Use full executable path if we are on Windows if sys.platform == "win32": @@ -919,15 +940,26 @@ def execute_lint_command(self, command): return errno.ESRCH, msg # Call linter with a sub-process (RECOMMENDED: with a list of strings corresponding to the command) - process = subprocess.run( - command, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - env=subprocess_env, - cwd=cwd, - ) - return_code = process.returncode - return_stdout = utils.decode_utf8(process.stdout) + try: + process = subprocess.run( + command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + env=subprocess_env, + cwd=cwd, + ) + return_code = process.returncode + return_stdout = utils.decode_utf8(process.stdout) + except FileNotFoundError as err: + return_code = 999 + return_stdout = ( + f"Fatal error while calling {self.linter_name}: {str(err)}" + ) + except Exception as err: + return_code = 99 + return_stdout = ( + f"Fatal error while calling {self.linter_name}: {str(err)}" + ) self.manage_sarif_output(return_stdout) # Return linter result return return_code, return_stdout @@ -947,6 +979,10 @@ def manage_sarif_output(self, return_stdout): if os.path.isfile(self.sarif_default_output_file) else os.path.join(self.workspace, self.sarif_default_output_file) ) + if not os.path.isfile(linter_sarif_report): + linter_sarif_report = os.path.join( + self.report_folder, self.sarif_default_output_file + ) # Check that a sarif report really exists before moving it etc) if os.path.isfile(linter_sarif_report): @@ -1017,7 +1053,7 @@ def get_linter_version_output(self): logging.debug("Linter version command: " + str(command)) cwd = os.getcwd() if command[0] != "npm" else "~/" subprocess_env = { - **config.build_env(self.request_id), + **config.build_env(self.request_id, True, self.unsecured_env_variables), "FORCE_COLOR": "0", } try: @@ -1065,7 +1101,9 @@ def get_linter_help(self): command[0] = cli_absolute logging.debug("Linter help command: " + str(command)) subprocess_env = { - **config.build_env(self.request_id), + **config.build_env( + self.request_id, True, self.unsecured_env_variables + ), "FORCE_COLOR": "0", } process = subprocess.run( @@ -1313,6 +1351,18 @@ def get_total_number_errors(self, stdout: str): total_errors = sum( not line.isspace() and line != "" for line in stdout.splitlines() ) + # Count number of results in sarif format + elif self.cli_lint_errors_count == "sarif": + sarif = None + sarif_stdout = utils.find_json_in_stdout(stdout) + try: + sarif = json.loads(sarif_stdout) + except ValueError as e: + logging.warning(f"Unable to parse sarif ({str(e)}):" + stdout) + if sarif and sarif["runs"] and sarif["runs"][0]["results"]: + total_errors = len(sarif["runs"][0]["results"]) + else: + logging.warning("Unable to find results in :" + stdout) # Return result if found, else default value according to status if total_errors > 0: return total_errors diff --git a/megalinter/MegaLinter.py b/megalinter/MegaLinter.py index c07fa9bf1d5..8bcb894d5e7 100644 --- a/megalinter/MegaLinter.py +++ b/megalinter/MegaLinter.py @@ -211,10 +211,6 @@ def run(self): if linter.apply_fixes is True: linters_do_fixes = True - # Initialize reports - for reporter in self.reporters: - reporter.initialize() - # Display warning if selected flavors doesn't match all linters if ( flavor_factory.check_active_linters_match_flavor( @@ -222,10 +218,15 @@ def run(self): ) is False ): + # Remove linters that are not existing in the flavor active_linters = [ linter for linter in active_linters if linter.is_active is True ] + # Initialize reports + for reporter in self.reporters: + reporter.initialize() + if ( config.get(self.request_id, "PARALLEL", "true") == "true" and len(active_linters) > 1 @@ -703,7 +704,7 @@ def collect_files(self): filtered_files = utils.filter_files( all_files=all_files, filter_regex_include=self.filter_regex_include, - filter_regex_exclude=self.filter_regex_exclude, + filter_regex_exclude=[self.filter_regex_exclude], file_names_regex=self.file_names_regex, file_extensions=self.file_extensions, ignored_files=ignored_files, @@ -856,7 +857,7 @@ def check_results(self): self.check_updated_sources_failure() elif self.status == "warning": logging.warning( - c.yellow("◬ Successfully linted all files, but with ignored errors") + c.yellow("⚠️ Successfully linted all files, but with ignored errors") ) config.delete(self.request_id) self.check_updated_sources_failure() diff --git a/megalinter/config.py b/megalinter/config.py index 117de16fb91..e296759017c 100644 --- a/megalinter/config.py +++ b/megalinter/config.py @@ -2,6 +2,7 @@ import json import logging import os +import re import shlex import tempfile @@ -52,6 +53,9 @@ def init_config(request_id, workspace=None, params={}): ), f"Unable to retrieve config file {config_file_name}" with open(config_file, "wb") as f: f.write(r.content) + # Hardcoded path to config file + elif os.path.isfile(config_file_name): + config_file = config_file_name else: # Local configuration file with name forced by user config_file = workspace + os.path.sep + config_file_name @@ -232,13 +236,20 @@ def delete(request_id=None, key=None): set_config(request_id, config) -def build_env(request_id, secured=True): +def build_env(request_id, secured=True, allow_list=[]): secured_env_variables = [] + secured_env_variables_regex = [] if secured is True: secured_env_variables = list_secured_variables(request_id) + secured_env_variables_regex = list_secured_variables_regexes( + secured_env_variables + ) env_dict = {} for key, value in get_config(request_id).items(): - if key in secured_env_variables: + if ( + key in secured_env_variables + or match_variable_regexes(key, secured_env_variables_regex) + ) and key not in allow_list: env_dict[key] = "HIDDEN_BY_MEGALINTER" elif not isinstance(value, str): env_dict[key] = str(value) @@ -260,6 +271,7 @@ def list_secured_variables(request_id) -> list[str]: "GITLAB_ACCESS_TOKEN_MEGALINTER", "GITLAB_CUSTOM_CERTIFICATE", "WEBHOOK_REPORTER_BEARER_TOKEN", + "NODE_TOKEN", "NPM_TOKEN", "DOCKER_USERNAME", "DOCKER_PASSWORD", @@ -267,6 +279,8 @@ def list_secured_variables(request_id) -> list[str]: "GCR_USERNAME", "GCR_PASSWORD", "SMTP_PASSWORD", + "CI_SFDX_HARDIS_GITLAB_TOKEN" "(SFDX_CLIENT_ID_.*)", + "(SFDX_CLIENT_KEY_.*)", ], ) secured_env_variables = get_list( @@ -275,3 +289,20 @@ def list_secured_variables(request_id) -> list[str]: [], ) return secured_env_variables_default + secured_env_variables + + +def list_secured_variables_regexes(secured_env_variables: list[str]): + regexes = [] + for variable_expression in secured_env_variables: + if variable_expression.startswith("("): + regexes += [re.compile(variable_expression)] + return regexes + + +def match_variable_regexes( + variable_name, secured_env_variable_regexes: list[re.Pattern] +): + for regex in secured_env_variable_regexes: + if regex.search(variable_name): + return True + return False diff --git a/megalinter/constants.py b/megalinter/constants.py index ba3a3aec8a7..2b85c3f57b9 100644 --- a/megalinter/constants.py +++ b/megalinter/constants.py @@ -19,9 +19,7 @@ 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_SCHEMA_URI = "https://json.schemastore.org/sarif-2.1.0.json" DEFAULT_SARIF_VERSION = "2.1.0" DEFAULT_RELEASE = "v7" diff --git a/megalinter/descriptors/all_flavors.json b/megalinter/descriptors/all_flavors.json index 6d17e75fa62..650f2cf5351 100644 --- a/megalinter/descriptors/all_flavors.json +++ b/megalinter/descriptors/all_flavors.json @@ -18,8 +18,11 @@ "MAKEFILE_CHECKMAKE", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", @@ -92,9 +95,13 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RST_RST_LINT", "RST_RSTCHECK", "RST_RSTFMT", @@ -102,6 +109,7 @@ "RUST_CLIPPY", "SPELL_CSPELL", "SPELL_PROSELINT", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SWIFT_SWIFTLINT", @@ -109,7 +117,6 @@ "TERRAFORM_TERRASCAN", "TERRAFORM_TERRAGRUNT", "TERRAFORM_TERRAFORM_FMT", - "TERRAFORM_KICS", "TSX_ESLINT", "TYPESCRIPT_ES", "TYPESCRIPT_STANDARD", @@ -159,14 +166,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -229,14 +240,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SQL_TSQLLINT", @@ -248,6 +263,92 @@ "YAML_V8R" ] }, + "dotnetweb": { + "descriptors": [ + "ARM", + "BASH", + "CSHARP", + "KOTLIN", + "POWERSHELL", + "TYPESCRIPT", + "VBDOTNET" + ], + "label": "Optimized for C, C++, C# or VB based projects with JS/TS", + "linters": [ + "ACTION_ACTIONLINT", + "ANSIBLE_ANSIBLE_LINT", + "ARM_ARM_TTK", + "BASH_EXEC", + "BASH_SHELLCHECK", + "BASH_SHFMT", + "BICEP_BICEP_LINTER", + "C_CPPLINT", + "COFFEE_COFFEELINT", + "COPYPASTE_JSCPD", + "CPP_CPPLINT", + "CSHARP_DOTNET_FORMAT", + "CSHARP_CSHARPIER", + "CSS_STYLELINT", + "CSS_SCSS_LINT", + "DOCKERFILE_HADOLINT", + "EDITORCONFIG_EDITORCONFIG_CHECKER", + "ENV_DOTENV_LINTER", + "GHERKIN_GHERKIN_LINT", + "GRAPHQL_GRAPHQL_SCHEMA_LINTER", + "GROOVY_NPM_GROOVY_LINT", + "HTML_DJLINT", + "HTML_HTMLHINT", + "JAVASCRIPT_ES", + "JAVASCRIPT_STANDARD", + "JAVASCRIPT_PRETTIER", + "JSON_JSONLINT", + "JSON_ESLINT_PLUGIN_JSONC", + "JSON_V8R", + "JSON_PRETTIER", + "JSON_NPM_PACKAGE_JSON_LINT", + "JSX_ESLINT", + "KOTLIN_KTLINT", + "KUBERNETES_KUBECONFORM", + "KUBERNETES_HELM", + "KUBERNETES_KUBESCAPE", + "MAKEFILE_CHECKMAKE", + "MARKDOWN_MARKDOWNLINT", + "MARKDOWN_MARKDOWN_LINK_CHECK", + "MARKDOWN_MARKDOWN_TABLE_FORMATTER", + "OPENAPI_SPECTRAL", + "POWERSHELL_POWERSHELL", + "POWERSHELL_POWERSHELL_FORMATTER", + "PROTOBUF_PROTOLINT", + "REPOSITORY_CHECKOV", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", + "SNAKEMAKE_LINT", + "SNAKEMAKE_SNAKEFMT", + "SPELL_CSPELL", + "SPELL_PROSELINT", + "SPELL_VALE", + "SPELL_LYCHEE", + "SQL_SQL_LINT", + "SQL_SQLFLUFF", + "SQL_TSQLLINT", + "TEKTON_TEKTON_LINT", + "TSX_ESLINT", + "TYPESCRIPT_ES", + "TYPESCRIPT_STANDARD", + "TYPESCRIPT_PRETTIER", + "VBDOTNET_DOTNET_FORMAT", + "XML_XMLLINT", + "YAML_PRETTIER", + "YAML_YAMLLINT", + "YAML_V8R" + ] + }, "go": { "descriptors": [ "BASH", @@ -289,14 +390,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -351,14 +456,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -413,14 +522,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -477,14 +590,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -541,9 +658,12 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RST_RST_LINT", "RST_RSTCHECK", "RST_RSTFMT", @@ -552,6 +672,7 @@ "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -599,15 +720,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RUBY_RUBOCOP", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -655,15 +780,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RUST_CLIPPY", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -713,9 +842,12 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SALESFORCE_SFDX_SCANNER_APEX", "SALESFORCE_SFDX_SCANNER_AURA", "SALESFORCE_SFDX_SCANNER_LWC", @@ -724,6 +856,7 @@ "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -750,14 +883,17 @@ "REPOSITORY_DEVSKIM", "REPOSITORY_DUSTILOCK", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_SYFT", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "TERRAFORM_TFLINT", "TERRAFORM_TERRASCAN", - "TERRAFORM_TERRAGRUNT", - "TERRAFORM_KICS" + "TERRAFORM_TERRAGRUNT" ] }, "swift": { @@ -798,14 +934,18 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SWIFT_SWIFTLINT", @@ -854,14 +994,19 @@ "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "SNAKEMAKE_LINT", "SNAKEMAKE_SNAKEFMT", "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "TEKTON_TEKTON_LINT", @@ -869,7 +1014,6 @@ "TERRAFORM_TERRASCAN", "TERRAFORM_TERRAGRUNT", "TERRAFORM_TERRAFORM_FMT", - "TERRAFORM_KICS", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", diff --git a/megalinter/descriptors/arm.megalinter-descriptor.yml b/megalinter/descriptors/arm.megalinter-descriptor.yml index 0ee19086296..52e8ccc4b9e 100644 --- a/megalinter/descriptors/arm.megalinter-descriptor.yml +++ b/megalinter/descriptors/arm.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: ARM descriptor_type: tooling_format descriptor_flavors: - dotnet + - dotnetweb file_extensions: - ".json" file_contains_regex: diff --git a/megalinter/descriptors/bicep.megalinter-descriptor.yml b/megalinter/descriptors/bicep.megalinter-descriptor.yml index 7a6ad642102..68b68f611c4 100644 --- a/megalinter/descriptors/bicep.megalinter-descriptor.yml +++ b/megalinter/descriptors/bicep.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: BICEP descriptor_type: tooling_format descriptor_flavors: - dotnet + - dotnetweb linters: - class: BicepLinter cli_help_arg_name: --help diff --git a/megalinter/descriptors/c.megalinter-descriptor.yml b/megalinter/descriptors/c.megalinter-descriptor.yml index 269abd0ae41..c2b2cd634e9 100644 --- a/megalinter/descriptors/c.megalinter-descriptor.yml +++ b/megalinter/descriptors/c.megalinter-descriptor.yml @@ -3,6 +3,7 @@ descriptor_type: language descriptor_flavors: - cupcake - dotnet + - dotnetweb file_extensions: - ".c" - ".h" diff --git a/megalinter/descriptors/clojure.megalinter-descriptor.yml b/megalinter/descriptors/clojure.megalinter-descriptor.yml index 56c9d532568..ad4d69b685e 100644 --- a/megalinter/descriptors/clojure.megalinter-descriptor.yml +++ b/megalinter/descriptors/clojure.megalinter-descriptor.yml @@ -28,7 +28,7 @@ install: Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ @@ -101,6 +101,7 @@ linters: linter_rules_inline_disable_url: https://github.com/greglook/cljstyle#ignoring-forms linter_megalinter_ref_url: https://github.com/greglook/cljstyle/blob/main/doc/integrations.md config_file_name: .cljstyle + cli_config_arg_name: "" cli_lint_extra_args: - "check" cli_lint_fix_arg_name: "fix" diff --git a/megalinter/descriptors/coffee.megalinter-descriptor.yml b/megalinter/descriptors/coffee.megalinter-descriptor.yml index 0800a79359b..a7c75537b81 100644 --- a/megalinter/descriptors/coffee.megalinter-descriptor.yml +++ b/megalinter/descriptors/coffee.megalinter-descriptor.yml @@ -1,6 +1,7 @@ descriptor_id: COFFEE descriptor_type: language descriptor_flavors: + - dotnetweb - javascript file_extensions: - ".coffee" diff --git a/megalinter/descriptors/cpp.megalinter-descriptor.yml b/megalinter/descriptors/cpp.megalinter-descriptor.yml index 5b14bf42cfc..2e249711590 100644 --- a/megalinter/descriptors/cpp.megalinter-descriptor.yml +++ b/megalinter/descriptors/cpp.megalinter-descriptor.yml @@ -4,6 +4,7 @@ descriptor_type: language descriptor_flavors: - cupcake - dotnet + - dotnetweb file_extensions: - ".cpp" - ".h" diff --git a/megalinter/descriptors/csharp.megalinter-descriptor.yml b/megalinter/descriptors/csharp.megalinter-descriptor.yml index ee5e26954f5..521c23da041 100644 --- a/megalinter/descriptors/csharp.megalinter-descriptor.yml +++ b/megalinter/descriptors/csharp.megalinter-descriptor.yml @@ -3,6 +3,7 @@ descriptor_label: "C#" descriptor_type: language descriptor_flavors: - dotnet + - dotnetweb file_extensions: - ".cs" install: diff --git a/megalinter/descriptors/css.megalinter-descriptor.yml b/megalinter/descriptors/css.megalinter-descriptor.yml index 6387b4052c4..b75b414fa80 100644 --- a/megalinter/descriptors/css.megalinter-descriptor.yml +++ b/megalinter/descriptors/css.megalinter-descriptor.yml @@ -14,10 +14,10 @@ linters: linter_url: https://stylelint.io linter_rules_url: https://stylelint.io/user-guide/rules/list linter_repo: https://github.com/stylelint/stylelint - linter_banner_image_url: https://github.com/stylelint/stylelint/raw/master/identity/stylelint-icon-and-text-white.png + linter_banner_image_url: https://github.com/stylelint/stylelint/raw/main/identity/stylelint-icon-and-text-white.png linter_rules_configuration_url: https://stylelint.io/user-guide/configure linter_rules_inline_disable_url: https://stylelint.io/user-guide/ignore-code - linter_megalinter_ref_url: https://stylelint.io/user-guide/integrations/other#analysis-platform-engines + # linter_megalinter_ref_url: https://stylelint.io/user-guide/integrations/other#analysis-platform-engines cli_lint_mode: list_of_files config_file_name: .stylelintrc.json cli_config_arg_name: "--config" diff --git a/megalinter/descriptors/dart.megalinter-descriptor.yml b/megalinter/descriptors/dart.megalinter-descriptor.yml index f170d461f7d..f038ee405e9 100644 --- a/megalinter/descriptors/dart.megalinter-descriptor.yml +++ b/megalinter/descriptors/dart.megalinter-descriptor.yml @@ -22,7 +22,7 @@ install: Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ 1QIDAQAB\ -----END PUBLIC KEY-----" | sed 's/ */\\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ - wget --quiet \ + wget --quiet --tries=10 --waitretry=10 \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ diff --git a/megalinter/descriptors/gherkin.megalinter-descriptor.yml b/megalinter/descriptors/gherkin.megalinter-descriptor.yml index 76b0a5455fe..6e711d30f08 100644 --- a/megalinter/descriptors/gherkin.megalinter-descriptor.yml +++ b/megalinter/descriptors/gherkin.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: GHERKIN descriptor_type: tooling_format descriptor_flavors: - dotnet + - dotnetweb file_extensions: - ".feature" linters: diff --git a/megalinter/descriptors/go.megalinter-descriptor.yml b/megalinter/descriptors/go.megalinter-descriptor.yml index 708c16d9687..7246a5a6d8a 100644 --- a/megalinter/descriptors/go.megalinter-descriptor.yml +++ b/megalinter/descriptors/go.megalinter-descriptor.yml @@ -19,6 +19,7 @@ linters: cli_lint_mode: list_of_files cli_lint_extra_args: - "run" + cli_lint_fix_arg_name: --fix cli_version_arg_name: "version" version_extract_regex: "((\\d+(\\.\\d+)+)|(master))" examples: diff --git a/megalinter/descriptors/java.megalinter-descriptor.yml b/megalinter/descriptors/java.megalinter-descriptor.yml index 3268a01ad3c..c3ba5a3eb59 100644 --- a/megalinter/descriptors/java.megalinter-descriptor.yml +++ b/megalinter/descriptors/java.megalinter-descriptor.yml @@ -25,7 +25,7 @@ linters: 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 - linter_rules_inline_disable_url: https://checkstyle.sourceforge.io/config_filters.html#SuppressionCommentFilter + linter_rules_inline_disable_url: https://checkstyle.sourceforge.io/filters/suppresswarningsfilter.html#SuppressWarningsFilter linter_megalinter_ref_url: https://checkstyle.sourceforge.io/index.html#Related_Tools_Active_Tools config_file_name: sun_checks.xml cli_executable: java @@ -80,10 +80,10 @@ linters: linter_repo: https://github.com/pmd/pmd linter_url: https://pmd.github.io/ linter_spdx_license: Apache-2.0 - linter_rules_url: https://pmd.github.io/pmd-6.55.0/pmd_rules_java.html - linter_rules_configuration_url: https://pmd.github.io/pmd-6.55.0/pmd_userdocs_configuring_rules.html - linter_rules_inline_disable_url: https://pmd.github.io/pmd-6.55.0/pmd_userdocs_suppressing_warnings.html - linter_image_url: https://pmd.github.io/img/pmd_logo.png + linter_rules_url: https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java.html + linter_rules_configuration_url: https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_configuring_rules.html + linter_rules_inline_disable_url: https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_suppressing_warnings.html + linter_image_url: https://github.com/pmd/pmd/raw/master/docs/images/logo/PMD.svg linter_megalinter_ref_url: https://pmd.sourceforge.io/pmd-6.55.0/pmd_userdocs_tools_ci.html cli_lint_mode: list_of_files cli_executable: /usr/bin/pmd/bin/run.sh diff --git a/megalinter/descriptors/javascript.megalinter-descriptor.yml b/megalinter/descriptors/javascript.megalinter-descriptor.yml index 4e426317f1b..0c493e9053c 100644 --- a/megalinter/descriptors/javascript.megalinter-descriptor.yml +++ b/megalinter/descriptors/javascript.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: JAVASCRIPT descriptor_type: language descriptor_flavors: - cupcake + - dotnetweb - javascript file_extensions: - ".js" diff --git a/megalinter/descriptors/json.megalinter-descriptor.yml b/megalinter/descriptors/json.megalinter-descriptor.yml index 79e818e6448..d765974b273 100644 --- a/megalinter/descriptors/json.megalinter-descriptor.yml +++ b/megalinter/descriptors/json.megalinter-descriptor.yml @@ -246,6 +246,7 @@ linters: descriptor_flavors: - cupcake - dotnet + - dotnetweb - javascript - salesforce file_names_regex: diff --git a/megalinter/descriptors/jsx.megalinter-descriptor.yml b/megalinter/descriptors/jsx.megalinter-descriptor.yml index 250f441116d..03c8081988e 100644 --- a/megalinter/descriptors/jsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/jsx.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: JSX descriptor_type: language descriptor_flavors: - cupcake + - dotnetweb - javascript file_extensions: - ".jsx" diff --git a/megalinter/descriptors/kubernetes.megalinter-descriptor.yml b/megalinter/descriptors/kubernetes.megalinter-descriptor.yml index f093fe82e86..d7a1d4b0d9d 100644 --- a/megalinter/descriptors/kubernetes.megalinter-descriptor.yml +++ b/megalinter/descriptors/kubernetes.megalinter-descriptor.yml @@ -105,13 +105,18 @@ linters: vscode: - name: Kubescape url: https://marketplace.visualstudio.com/items?itemName=kubescape.kubescape + downgraded_version: true + downgraded_reason: https://github.com/kubescape/kubescape/issues/1271 install: apk: - curl - gcompat + - libc6-compat + - libstdc++ dockerfile: - | - RUN curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash + RUN ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \ + curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6 supported_platforms: platform: - linux/amd64 diff --git a/megalinter/descriptors/makefile.megalinter-descriptor.yml b/megalinter/descriptors/makefile.megalinter-descriptor.yml index 1c50362830d..72d74995be9 100644 --- a/megalinter/descriptors/makefile.megalinter-descriptor.yml +++ b/megalinter/descriptors/makefile.megalinter-descriptor.yml @@ -6,6 +6,7 @@ descriptor_flavors: - cupcake - documentation - dotnet + - dotnetweb - go - java - python diff --git a/megalinter/descriptors/php.megalinter-descriptor.yml b/megalinter/descriptors/php.megalinter-descriptor.yml index 2a51e197b75..e4a28d933c9 100644 --- a/megalinter/descriptors/php.megalinter-descriptor.yml +++ b/megalinter/descriptors/php.megalinter-descriptor.yml @@ -17,7 +17,6 @@ install: - php81-curl - php81-dom - php81-simplexml - - composer - dpkg dockerfile: - | @@ -35,7 +34,6 @@ install: && mv phive.phar /usr/local/bin/phive \ && rm phive.phar.asc \ && update-alternatives --install /usr/bin/php php /usr/bin/php81 110 - - ENV PATH="/root/.composer/vendor/bin:$PATH" supported_platforms: platform: - linux/amd64 @@ -173,8 +171,7 @@ linters: install: dockerfile: - | - RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ - && composer global config bin-dir --absolute + RUN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g supported_platforms: platform: - linux/amd64 diff --git a/megalinter/descriptors/powershell.megalinter-descriptor.yml b/megalinter/descriptors/powershell.megalinter-descriptor.yml index b53c85a557a..5d68f11d257 100644 --- a/megalinter/descriptors/powershell.megalinter-descriptor.yml +++ b/megalinter/descriptors/powershell.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: POWERSHELL descriptor_type: language descriptor_flavors: - dotnet + - dotnetweb file_extensions: - ".ps1" - ".psm1" diff --git a/megalinter/descriptors/python.megalinter-descriptor.yml b/megalinter/descriptors/python.megalinter-descriptor.yml index b4e83b6e92d..6f9ec7b1e63 100644 --- a/megalinter/descriptors/python.megalinter-descriptor.yml +++ b/megalinter/descriptors/python.megalinter-descriptor.yml @@ -92,7 +92,7 @@ linters: url: https://github.com/jorgenschaefer/elpy idea: - name: black - url: https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea + url: https://black.readthedocs.io/en/stable/integrations/editors.html#pycharm-intellij-idea sublime: - name: sublack url: https://github.com/jgirardet/sublack @@ -142,8 +142,8 @@ linters: linter_repo: https://github.com/PyCQA/isort linter_speed: 5 linter_banner_image_url: https://raw.githubusercontent.com/pycqa/isort/develop/art/logo_large.png - linter_rules_configuration_url: https://pycqa.github.io/isort/docs/configuration/config_files/ - linter_rules_inline_disable_url: https://pycqa.github.io/isort/docs/configuration/action_comments/ + linter_rules_configuration_url: https://pycqa.github.io/isort/docs/configuration/config_files.html + linter_rules_inline_disable_url: https://pycqa.github.io/isort/docs/configuration/action_comments.html cli_lint_mode: list_of_files config_file_name: .isort.cfg cli_config_arg_name: "--settings-file" @@ -204,8 +204,8 @@ linters: linter_url: https://bandit.readthedocs.io/en/latest/ linter_repo: https://github.com/PyCQA/bandit linter_rules_url: https://bandit.readthedocs.io/en/latest/plugins/index.html#complete-test-plugin-listing - linter_banner_image_url: https://github.com/PyCQA/bandit/raw/master/logo/logotype-sm.png - linter_image_url: https://github.com/PyCQA/bandit/raw/master/logo/logomark.png + linter_banner_image_url: https://github.com/PyCQA/bandit/raw/main/logo/logotype-sm.png + linter_image_url: https://github.com/PyCQA/bandit/raw/main/logo/logomark.png linter_rules_configuration_url: https://bandit.readthedocs.io/en/latest/config.html# linter_rules_inline_disable_url: https://bandit.readthedocs.io/en/latest/config.html#suppressing-individual-lines cli_lint_mode: list_of_files @@ -271,6 +271,8 @@ linters: - "mypy myfile.py" - "mypy --config-file .mypy.yml myfile.py" install: + dockerfile: + - ENV MYPY_CACHE_DIR=/tmp # Avoid mypy cache to mess with other linters pip: - mypy supported_platforms: diff --git a/megalinter/descriptors/repository.megalinter-descriptor.yml b/megalinter/descriptors/repository.megalinter-descriptor.yml index bfb5b701e52..2ada85488d1 100644 --- a/megalinter/descriptors/repository.megalinter-descriptor.yml +++ b/megalinter/descriptors/repository.megalinter-descriptor.yml @@ -58,6 +58,9 @@ linters: ignore_for_flavor_suggestions: true linter_text: | Use `--ignore-globs` to ignore files and/or folders + + Example: + `REPOSITORY_DEVSKIM_ARGUMENTS: ['--ignore-globs','**/megalinter-reports/**,**/.git/**,**/bin/**']` linter_url: https://github.com/microsoft/DevSkim linter_repo: https://github.com/microsoft/DevSkim linter_speed: 1 @@ -71,17 +74,17 @@ linters: - --file-format - sarif cli_lint_extra_args_after: + - --source-code - "." - -E - - --ignore-globs - - "**/megalinter-reports/**" - cli_lint_errors_count: regex_count - cli_lint_errors_regex: "(\\[.*\\])" + - --skip-git-ignored-files + cli_help_arg_name: --help + cli_version_arg_name: --version + cli_lint_errors_count: sarif test_folder: devskim examples: - "devskim analyze ." - "devskim analyze --file-format sarif ." - downgraded_version: true install: apk: - icu-libs @@ -98,7 +101,7 @@ linters: && chmod +x dotnet-install.sh \ && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 6.0 -version latest - ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" - - RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 + - RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI supported_platforms: platform: - linux/amd64 @@ -246,7 +249,7 @@ linters: - "gitleaks detect -c .gitleaks.toml --redact --no-git --verbose --source ." install: dockerfile: - - FROM zricethezav/gitleaks:v8.16.3 as gitleaks + - FROM zricethezav/gitleaks:v8.17.0 as gitleaks - COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ supported_platforms: platform: @@ -263,6 +266,83 @@ linters: description: Pull Request target commit sha (N/A to supported scenarios) default_value: "" + # GRYPE + - linter_name: grype + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - cupcake + - security + linter_speed: 2 + linter_url: https://github.com/anchore/grype + linter_repo: https://github.com/anchore/grype + linter_rules_url: https://github.com/anchore/grype#vulnerability-summary + linter_banner_image_url: https://user-images.githubusercontent.com/5199289/136855393-d0a9eef9-ccf1-4e2b-9d7c-7aad16a567e5.png + linter_rules_configuration_url: https://github.com/anchore/grype#configuration + cli_lint_mode: project + cli_config_arg_name: "--config" + config_file_name: .grype.yaml + cli_lint_extra_args_after: + - dir:. + cli_sarif_args: + - --output + - sarif + cli_version_arg_name: version + examples: + - "grype dir:." + downgraded_version: true + downgraded_reason: https://github.com/anchore/grype/issues/1388 + install: + dockerfile: + - RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin v0.63.1 + test_folder: repository_grype + + # KICS + - linter_name: kics + can_output_sarif: true + descriptor_flavors: + - cupcake + - terraform + - security + linter_speed: 2 + linter_url: https://www.kics.io + linter_repo: https://github.com/checkmarx/kics + linter_rules_url: https://docs.kics.io/latest/queries/all-queries/ + linter_banner_image_url: https://raw.githubusercontent.com/checkmarx/kics/master/docs/img/logo/kics-hat-logo.png + linter_rules_configuration_url: https://docs.kics.io/latest/configuration-file/ + linter_rules_inline_disable_url: https://docs.kics.io/latest/running-kics/#using_commands_on_scanned_files_as_comments + linter_megalinter_ref_url: https://docs.kics.io/latest/integrations/ + cli_lint_mode: project + cli_config_arg_name: "--config" + config_file_name: kics.config + cli_executable: kics + cli_lint_extra_args: + - scan + cli_lint_extra_args_after: + - --no-progress + - --path + - "." + sarif_default_output_file: kics-results.sarif + cli_sarif_args: + - --output-name + - kics-results.sarif + - --output-path + - "{{REPORT_FOLDER}}" + - --report-formats + - "sarif" + cli_version_arg_name: "version" + examples: + - "kics scan --path ." + install: + dockerfile: + - FROM checkmarx/kics:alpine as kics + - COPY --link --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/ + test_folder: repository_kics + # SECRETLINT - class: SecretLintLinter linter_name: secretlint @@ -275,7 +355,7 @@ linters: linter_speed: 1 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_banner_image_url: https://github.com/secretlint/secretlint/raw/master/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_rules_ignore_config_url: https://github.com/secretlint/secretlint/blob/master/docs/configuration.md#secretlintignore @@ -369,6 +449,7 @@ linters: - class: SyftLinter linter_name: syft can_output_sarif: true + is_sbom: true descriptor_flavors: - security ignore_for_flavor_suggestions: true @@ -407,13 +488,13 @@ linters: - cupcake - security linter_text: | - You can ignore a list of errors by defining a [.trivyignore file](https://aquasecurity.github.io/trivy/latest/docs/vulnerability/examples/filter/#by-vulnerability-ids) + You can ignore a list of errors by defining a [.trivyignore file](https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-finding-ids) linter_url: https://aquasecurity.github.io/trivy/ linter_repo: https://github.com/aquasecurity/trivy linter_speed: 2 - linter_banner_image_url: https://aquasecurity.github.io/trivy/v0.35/imgs/logo.png - linter_rules_configuration_url: https://aquasecurity.github.io/trivy/latest/docs/references/customization/config-file/ - linter_rules_ignore_config_url: https://aquasecurity.github.io/trivy/latest/docs/secret/examples/#skip-directories + linter_banner_image_url: https://github.com/aquasecurity/trivy/raw/main/docs/imgs/logo.png + linter_rules_configuration_url: https://aquasecurity.github.io/trivy/latest/docs/configuration/ + linter_rules_ignore_config_url: https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-inline-comments cli_lint_mode: project config_file_name: trivy.yaml cli_config_arg_name: --config @@ -445,3 +526,77 @@ linters: vscode: - name: VSCode Trivy url: https://marketplace.visualstudio.com/items?itemName=AquaSecurityOfficial.trivy-vulnerability-scanner + + # TRIVY SBOM + - linter_name: trivy-sbom + class: TrivySbomLinter + can_output_sarif: true + is_sbom: true + name: REPOSITORY_TRIVY_SBOM + cli_executable: trivy + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - cupcake + - security + linter_text: | + Generates SBOM (Software Bill Of Material) using Trivy + linter_url: https://aquasecurity.github.io/trivy/ + linter_repo: https://github.com/aquasecurity/trivy + linter_speed: 2 + linter_banner_image_url: https://github.com/aquasecurity/trivy/raw/main/docs/imgs/logo.png + linter_rules_configuration_url: https://aquasecurity.github.io/trivy/latest/docs/configuration/ + linter_rules_ignore_config_url: https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/#by-inline-comments + cli_lint_mode: project + config_file_name: trivy-sbom.yaml + cli_config_arg_name: --config + cli_lint_extra_args: + - fs + - --format + - cyclonedx + cli_lint_extra_args_after: + - "." + cli_sarif_args: + - --output + - "{{SARIF_OUTPUT_FILE}}.trivy-sbom.json" + test_folder: trivy + examples: + - "trivy fs --format cyclonedx ." + - "trivy fs --config trivy-sbom.yaml --format cyclonedx ." + install: + dockerfile: + - | + RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + ide: + vscode: + - name: VSCode Trivy + url: https://marketplace.visualstudio.com/items?itemName=AquaSecurityOfficial.trivy-vulnerability-scanner + + # TRUFFLEHOG + - linter_name: trufflehog + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - cupcake + - security + linter_speed: 2 + linter_url: https://github.com/trufflesecurity/trufflehog + linter_repo: https://github.com/trufflesecurity/trufflehog + linter_banner_image_url: https://storage.googleapis.com/trufflehog-static-sources/pixel_pig.png + linter_rules_configuration_url: https://github.com/trufflesecurity/trufflehog#regex-detector-alpha + cli_lint_mode: project + cli_config_arg_name: "--config" + config_file_name: .trufflehog.yml + cli_lint_extra_args: + - filesystem + - "." + - --fail + cli_help_arg_name: --help + cli_version_arg_name: --version + examples: + - "trufflehog filesystem ." + install: + dockerfile: + - FROM trufflesecurity/trufflehog:latest as trufflehog + - COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + test_folder: gitleaks diff --git a/megalinter/descriptors/salesforce.megalinter-descriptor.yml b/megalinter/descriptors/salesforce.megalinter-descriptor.yml index 7f095159934..6d5838524f2 100644 --- a/megalinter/descriptors/salesforce.megalinter-descriptor.yml +++ b/megalinter/descriptors/salesforce.megalinter-descriptor.yml @@ -46,10 +46,10 @@ linters: **Workaround: Restricted to PMD** linter_url: https://forcedotcom.github.io/sfdx-scanner/ linter_repo: https://github.com/forcedotcom/sfdx-scanner - linter_rules_url: https://pmd.github.io/latest/pmd_rules_apex.html + linter_rules_url: https://docs.pmd-code.org/latest/pmd_rules_apex.html linter_image_url: https://forcedotcom.github.io/sfdx-scanner/assets/images/sfdx_scanner_logo.png - linter_rules_configuration_url: https://pmd.github.io/latest/pmd_userdocs_making_rulesets.html - linter_rules_inline_disable_url: https://pmd.github.io/latest/pmd_userdocs_suppressing_warnings.html + linter_rules_configuration_url: https://docs.pmd-code.org/latest/pmd_userdocs_making_rulesets.html + linter_rules_inline_disable_url: https://docs.pmd-code.org/latest/pmd_userdocs_suppressing_warnings.html linter_megalinter_ref_url: https://github.com/forcedotcom/sfdx-scanner/pull/307 config_file_name: apex-pmd-ruleset.xml cli_executable: sfdx diff --git a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json index c4e59e3ab22..2e5b015004e 100644 --- a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json +++ b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json @@ -31,6 +31,12 @@ ], "title": "Folder where to run the command", "type": "string" + }, + "secured_env": { + "Description": "Hides sensitive variables from ENV variables when calling the command", + "default": true, + "title": "Secured Environment Variables", + "type": "boolean" } }, "required": [], @@ -180,10 +186,14 @@ "REPOSITORY_DUSTILOCK", "REPOSITORY_GIT_DIFF", "REPOSITORY_GITLEAKS", + "REPOSITORY_GRYPE", + "REPOSITORY_KICS", "REPOSITORY_SECRETLINT", "REPOSITORY_SEMGREP", "REPOSITORY_SYFT", "REPOSITORY_TRIVY", + "REPOSITORY_TRIVY_SBOM", + "REPOSITORY_TRUFFLEHOG", "RST_RST_LINT", "RST_RSTCHECK", "RST_RSTFMT", @@ -198,6 +208,7 @@ "SPELL_CSPELL", "SPELL_PROSELINT", "SPELL_VALE", + "SPELL_LYCHEE", "SQL_SQL_LINT", "SQL_SQLFLUFF", "SQL_TSQLLINT", @@ -207,7 +218,6 @@ "TERRAFORM_TERRASCAN", "TERRAFORM_TERRAGRUNT", "TERRAFORM_TERRAFORM_FMT", - "TERRAFORM_KICS", "TSX_ESLINT", "TYPESCRIPT_ES", "TYPESCRIPT_STANDARD", @@ -224,7 +234,8 @@ "KUBERNETES_KUBEVAL", "REPOSITORY_GOODCHECK", "SPELL_MISSPELL", - "TERRAFORM_CHECKOV" + "TERRAFORM_CHECKOV", + "TERRAFORM_KICS" ], "type": "string" } @@ -370,6 +381,16 @@ "title": "ACTION_ACTIONLINT: Custom config file path", "type": "string" }, + "ACTION_ACTIONLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/ACTION_ACTIONLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling ACTION_ACTIONLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "ACTION_ACTIONLINT: Unsecured env variables", + "type": "array" + }, "ACTION_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/ACTION_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for ACTION descriptor", @@ -519,6 +540,16 @@ "title": "ANSIBLE_ANSIBLE_LINT: Custom config file path", "type": "string" }, + "ANSIBLE_ANSIBLE_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/ANSIBLE_ANSIBLE_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling ANSIBLE_ANSIBLE_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "ANSIBLE_ANSIBLE_LINT: Unsecured env variables", + "type": "array" + }, "ANSIBLE_DIRECTORY": { "$id": "#/properties/ANSIBLE_DIRECTORY", "default": "ansible", @@ -692,6 +723,16 @@ "title": "ARM_ARM_TTK: Custom config file path", "type": "string" }, + "ARM_ARM_TTK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/ARM_ARM_TTK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling ARM_ARM_TTK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "ARM_ARM_TTK: Unsecured env variables", + "type": "array" + }, "ARM_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/ARM_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for ARM descriptor", @@ -838,6 +879,16 @@ "title": "BASH_EXEC: Define or override a list of bash commands to run before the linter", "type": "array" }, + "BASH_EXEC_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/BASH_EXEC_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling BASH_EXEC and its pre/post commands", + "items": { + "type": "string" + }, + "title": "BASH_EXEC: Unsecured env variables", + "type": "array" + }, "BASH_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/BASH_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for BASH descriptor", @@ -968,6 +1019,16 @@ "title": "BASH_SHELLCHECK: Define or override a list of bash commands to run before the linter", "type": "array" }, + "BASH_SHELLCHECK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/BASH_SHELLCHECK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling BASH_SHELLCHECK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "BASH_SHELLCHECK: Unsecured env variables", + "type": "array" + }, "BASH_SHFMT_ARGUMENTS": { "$id": "#/properties/BASH_SHFMT_ARGUMENTS", "description": "BASH_SHFMT: User custom arguments to add in linter CLI call", @@ -1088,6 +1149,16 @@ "title": "BASH_SHFMT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "BASH_SHFMT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/BASH_SHFMT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling BASH_SHFMT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "BASH_SHFMT: Unsecured env variables", + "type": "array" + }, "BICEP_BICEP_LINTER_ARGUMENTS": { "$id": "#/properties/BICEP_BICEP_LINTER_ARGUMENTS", "description": "BICEP_BICEP_LINTER: User custom arguments to add in linter CLI call", @@ -1207,6 +1278,16 @@ "title": "BICEP_BICEP_LINTER: Define or override a list of bash commands to run before the linter", "type": "array" }, + "BICEP_BICEP_LINTER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/BICEP_BICEP_LINTER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling BICEP_BICEP_LINTER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "BICEP_BICEP_LINTER: Unsecured env variables", + "type": "array" + }, "BICEP_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/BICEP_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for BICEP descriptor", @@ -1356,6 +1437,16 @@ "title": "CLOJURE_CLJSTYLE: Custom config file path", "type": "string" }, + "CLOJURE_CLJSTYLE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CLOJURE_CLJSTYLE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CLOJURE_CLJSTYLE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CLOJURE_CLJSTYLE: Unsecured env variables", + "type": "array" + }, "CLOJURE_CLJ_KONDO_ARGUMENTS": { "$id": "#/properties/CLOJURE_CLJ_KONDO_ARGUMENTS", "description": "CLOJURE_CLJ_KONDO: User custom arguments to add in linter CLI call", @@ -1495,6 +1586,16 @@ "title": "CLOJURE_CLJ_KONDO: Custom config file path", "type": "string" }, + "CLOJURE_CLJ_KONDO_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CLOJURE_CLJ_KONDO_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CLOJURE_CLJ_KONDO and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CLOJURE_CLJ_KONDO: Unsecured env variables", + "type": "array" + }, "CLOJURE_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/CLOJURE_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for CLOJURE descriptor", @@ -1645,6 +1746,16 @@ "title": "CLOUDFORMATION_CFN_LINT: Custom config file path", "type": "string" }, + "CLOUDFORMATION_CFN_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CLOUDFORMATION_CFN_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CLOUDFORMATION_CFN_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CLOUDFORMATION_CFN_LINT: Unsecured env variables", + "type": "array" + }, "CLOUDFORMATION_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/CLOUDFORMATION_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for CLOUDFORMATION descriptor", @@ -1794,6 +1905,16 @@ "title": "COFFEE_COFFEELINT: Custom config file path", "type": "string" }, + "COFFEE_COFFEELINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/COFFEE_COFFEELINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling COFFEE_COFFEELINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "COFFEE_COFFEELINT: Unsecured env variables", + "type": "array" + }, "COFFEE_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/COFFEE_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for COFFEE descriptor", @@ -1936,6 +2057,16 @@ "title": "COPYPASTE_JSCPD: Custom config file path", "type": "string" }, + "COPYPASTE_JSCPD_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/COPYPASTE_JSCPD_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling COPYPASTE_JSCPD and its pre/post commands", + "items": { + "type": "string" + }, + "title": "COPYPASTE_JSCPD: Unsecured env variables", + "type": "array" + }, "CPP_CPPLINT_ARGUMENTS": { "$id": "#/properties/CPP_CPPLINT_ARGUMENTS", "description": "CPP_CPPLINT: User custom arguments to add in linter CLI call", @@ -2056,6 +2187,16 @@ "title": "CPP_CPPLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "CPP_CPPLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CPP_CPPLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CPP_CPPLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CPP_CPPLINT: Unsecured env variables", + "type": "array" + }, "CPP_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/CPP_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for CPP descriptor", @@ -2086,7 +2227,7 @@ "items": { "type": "string" }, - "title": "CREDENTIALS_SECRETLINT: Custom arguments", + "title": "(removed) CREDENTIALS_SECRETLINT: Custom arguments", "type": [ "array", "string" @@ -2096,19 +2237,19 @@ "$id": "#/properties/CREDENTIALS_SECRETLINT_CONFIG_FILE", "default": ".secretlintrc.json", "description": "CREDENTIALS_SECRETLINT: User custom config file name if different from default", - "title": "CREDENTIALS_SECRETLINT: Custom config file name", + "title": "(removed) CREDENTIALS_SECRETLINT: Custom config file name", "type": "string" }, "CREDENTIALS_SECRETLINT_DISABLE_ERRORS": { "$id": "#/properties/CREDENTIALS_SECRETLINT_DISABLE_ERRORS", "default": false, - "title": "CREDENTIALS_SECRETLINT: Linter does not make MegaLinter fail even if errors are found", + "title": "(removed) CREDENTIALS_SECRETLINT: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, "CREDENTIALS_SECRETLINT_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/CREDENTIALS_SECRETLINT_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "CREDENTIALS_SECRETLINT: Maximum number of errors allowed", + "title": "(removed) CREDENTIALS_SECRETLINT: Maximum number of errors allowed", "type": "number" }, "CREDENTIALS_SECRETLINT_FILE_EXTENSIONS": { @@ -2120,7 +2261,7 @@ "items": { "type": "string" }, - "title": "CREDENTIALS_SECRETLINT: Override descriptor/linter matching files extensions", + "title": "(removed) CREDENTIALS_SECRETLINT: Override descriptor/linter matching files extensions", "type": "array" }, "CREDENTIALS_SECRETLINT_FILE_NAMES_REGEX": { @@ -2132,7 +2273,7 @@ "items": { "type": "string" }, - "title": "CREDENTIALS_SECRETLINT: Override descriptor/linter matching file name regex", + "title": "(removed) CREDENTIALS_SECRETLINT: Override descriptor/linter matching file name regex", "type": "array" }, "CREDENTIALS_SECRETLINT_POST_COMMANDS": { @@ -2149,7 +2290,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "CREDENTIALS_SECRETLINT: Define or override a list of bash commands to run after the linter", + "title": "(removed) CREDENTIALS_SECRETLINT: Define or override a list of bash commands to run after the linter", "type": "array" }, "CREDENTIALS_SECRETLINT_PRE_COMMANDS": { @@ -2166,13 +2307,13 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "CREDENTIALS_SECRETLINT: Define or override a list of bash commands to run before the linter", + "title": "(removed) CREDENTIALS_SECRETLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, "CREDENTIALS_SECRETLINT_RULES_PATH": { "$id": "#/properties/CREDENTIALS_SECRETLINT_RULES_PATH", "description": "CREDENTIALS_SECRETLINT: Path where to find linter configuration file", - "title": "CREDENTIALS_SECRETLINT: Custom config file path", + "title": "(removed) CREDENTIALS_SECRETLINT: Custom config file path", "type": "string" }, "CSHARP_CSHARPIER_ARGUMENTS": { @@ -2295,6 +2436,16 @@ "title": "CSHARP_CSHARPIER: Define or override a list of bash commands to run before the linter", "type": "array" }, + "CSHARP_CSHARPIER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CSHARP_CSHARPIER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CSHARP_CSHARPIER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CSHARP_CSHARPIER: Unsecured env variables", + "type": "array" + }, "CSHARP_DOTNET_FORMAT_ARGUMENTS": { "$id": "#/properties/CSHARP_DOTNET_FORMAT_ARGUMENTS", "description": "CSHARP_DOTNET_FORMAT: User custom arguments to add in linter CLI call", @@ -2414,6 +2565,16 @@ "title": "CSHARP_DOTNET_FORMAT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "CSHARP_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CSHARP_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CSHARP_DOTNET_FORMAT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CSHARP_DOTNET_FORMAT: Unsecured env variables", + "type": "array" + }, "CSHARP_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/CSHARP_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for CSHARP descriptor", @@ -2573,6 +2734,16 @@ "title": "CSS_SCSS_LINT: Custom config file path", "type": "string" }, + "CSS_SCSS_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CSS_SCSS_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CSS_SCSS_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CSS_SCSS_LINT: Unsecured env variables", + "type": "array" + }, "CSS_STYLELINT_ARGUMENTS": { "$id": "#/properties/CSS_STYLELINT_ARGUMENTS", "description": "CSS_STYLELINT: User custom arguments to add in linter CLI call", @@ -2713,6 +2884,16 @@ "title": "CSS_STYLELINT: Custom config file path", "type": "string" }, + "CSS_STYLELINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/CSS_STYLELINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling CSS_STYLELINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "CSS_STYLELINT: Unsecured env variables", + "type": "array" + }, "C_CPPLINT_ARGUMENTS": { "$id": "#/properties/C_CPPLINT_ARGUMENTS", "description": "C_CPPLINT: User custom arguments to add in linter CLI call", @@ -2833,6 +3014,16 @@ "title": "C_CPPLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "C_CPPLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/C_CPPLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling C_CPPLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "C_CPPLINT: Unsecured env variables", + "type": "array" + }, "C_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/C_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for C descriptor", @@ -2982,6 +3173,16 @@ "title": "DART_DARTANALYZER: Custom config file path", "type": "string" }, + "DART_DARTANALYZER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/DART_DARTANALYZER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling DART_DARTANALYZER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "DART_DARTANALYZER: Unsecured env variables", + "type": "array" + }, "DART_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/DART_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for DART descriptor", @@ -3072,7 +3273,7 @@ "items": { "type": "string" }, - "title": "DOCKERFILE_DOCKERFILELINT: Custom arguments", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Custom arguments", "type": [ "array", "string" @@ -3086,26 +3287,26 @@ "list_of_files", "project" ], - "title": "DOCKERFILE_DOCKERFILELINT: Override default cli lint mode", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Override default cli lint mode", "type": "string" }, "DOCKERFILE_DOCKERFILELINT_CONFIG_FILE": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_CONFIG_FILE", "default": ".dockerfilelintrc", "description": "DOCKERFILE_DOCKERFILELINT: User custom config file name if different from default", - "title": "DOCKERFILE_DOCKERFILELINT: Custom config file name", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Custom config file name", "type": "string" }, "DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS", "default": false, - "title": "DOCKERFILE_DOCKERFILELINT: Linter does not make MegaLinter fail even if errors are found", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, "DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "DOCKERFILE_DOCKERFILELINT: Maximum number of errors allowed", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Maximum number of errors allowed", "type": "number" }, "DOCKERFILE_DOCKERFILELINT_FILE_EXTENSIONS": { @@ -3117,14 +3318,14 @@ "items": { "type": "string" }, - "title": "DOCKERFILE_DOCKERFILELINT: Override descriptor/linter matching files extensions", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Override descriptor/linter matching files extensions", "type": "array" }, "DOCKERFILE_DOCKERFILELINT_FILE_NAME": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_FILE_NAME", "default": ".dockerfilelintrc", "description": "DOCKERFILE_DOCKERFILELINT: User custom config file name if different from default", - "title": "DOCKERFILE_DOCKERFILELINT: Custom config file name", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Custom config file name", "type": "string" }, "DOCKERFILE_DOCKERFILELINT_FILE_NAMES_REGEX": { @@ -3136,17 +3337,17 @@ "items": { "type": "string" }, - "title": "DOCKERFILE_DOCKERFILELINT: Override descriptor/linter matching file name regex", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Override descriptor/linter matching file name regex", "type": "array" }, "DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_EXCLUDE", - "title": "DOCKERFILE_DOCKERFILELINT: Excluding Regex", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Excluding Regex", "type": "string" }, "DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_INCLUDE": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_INCLUDE", - "title": "DOCKERFILE_DOCKERFILELINT: Including Regex", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Including Regex", "type": "string" }, "DOCKERFILE_DOCKERFILELINT_POST_COMMANDS": { @@ -3163,7 +3364,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "DOCKERFILE_DOCKERFILELINT: Define or override a list of bash commands to run after the linter", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Define or override a list of bash commands to run after the linter", "type": "array" }, "DOCKERFILE_DOCKERFILELINT_PRE_COMMANDS": { @@ -3180,13 +3381,13 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "DOCKERFILE_DOCKERFILELINT: Define or override a list of bash commands to run before the linter", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Define or override a list of bash commands to run before the linter", "type": "array" }, "DOCKERFILE_DOCKERFILELINT_RULES_PATH": { "$id": "#/properties/DOCKERFILE_DOCKERFILELINT_RULES_PATH", "description": "DOCKERFILE_DOCKERFILELINT: Path where to find linter configuration file", - "title": "DOCKERFILE_DOCKERFILELINT: Custom config file path", + "title": "(removed) DOCKERFILE_DOCKERFILELINT: Custom config file path", "type": "string" }, "DOCKERFILE_FILTER_REGEX_EXCLUDE": { @@ -3339,6 +3540,16 @@ "title": "DOCKERFILE_HADOLINT: Custom config file path", "type": "string" }, + "DOCKERFILE_HADOLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/DOCKERFILE_HADOLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling DOCKERFILE_HADOLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "DOCKERFILE_HADOLINT: Unsecured env variables", + "type": "array" + }, "EDITORCONFIG_EDITORCONFIG_CHECKER_ARGUMENTS": { "$id": "#/properties/EDITORCONFIG_EDITORCONFIG_CHECKER_ARGUMENTS", "description": "EDITORCONFIG_EDITORCONFIG_CHECKER: User custom arguments to add in linter CLI call", @@ -3479,6 +3690,16 @@ "title": "EDITORCONFIG_EDITORCONFIG_CHECKER: Custom config file path", "type": "string" }, + "EDITORCONFIG_EDITORCONFIG_CHECKER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/EDITORCONFIG_EDITORCONFIG_CHECKER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling EDITORCONFIG_EDITORCONFIG_CHECKER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "EDITORCONFIG_EDITORCONFIG_CHECKER: Unsecured env variables", + "type": "array" + }, "EDITORCONFIG_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/EDITORCONFIG_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for EDITORCONFIG descriptor", @@ -3688,6 +3909,16 @@ "title": "ENV_DOTENV_LINTER: Define or override a list of bash commands to run before the linter", "type": "array" }, + "ENV_DOTENV_LINTER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/ENV_DOTENV_LINTER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling ENV_DOTENV_LINTER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "ENV_DOTENV_LINTER: Unsecured env variables", + "type": "array" + }, "ENV_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/ENV_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for ENV descriptor", @@ -3946,6 +4177,16 @@ "title": "GHERKIN_GHERKIN_LINT: Custom config file path", "type": "string" }, + "GHERKIN_GHERKIN_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/GHERKIN_GHERKIN_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling GHERKIN_GHERKIN_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "GHERKIN_GHERKIN_LINT: Unsecured env variables", + "type": "array" + }, "GITHUB_API_URL": { "$id": "#/properties/GITHUB_API_URL", "default": "https://api.github.com", @@ -4044,7 +4285,7 @@ "items": { "type": "string" }, - "title": "GIT_GIT_DIFF: Custom arguments", + "title": "(removed) GIT_GIT_DIFF: Custom arguments", "type": [ "array", "string" @@ -4053,13 +4294,13 @@ "GIT_GIT_DIFF_DISABLE_ERRORS": { "$id": "#/properties/GIT_GIT_DIFF_DISABLE_ERRORS", "default": false, - "title": "GIT_GIT_DIFF: Linter does not make MegaLinter fail even if errors are found", + "title": "(removed) GIT_GIT_DIFF: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, "GIT_GIT_DIFF_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/GIT_GIT_DIFF_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "GIT_GIT_DIFF: Maximum number of errors allowed", + "title": "(removed) GIT_GIT_DIFF: Maximum number of errors allowed", "type": "number" }, "GIT_GIT_DIFF_FILE_EXTENSIONS": { @@ -4071,7 +4312,7 @@ "items": { "type": "string" }, - "title": "GIT_GIT_DIFF: Override descriptor/linter matching files extensions", + "title": "(removed) GIT_GIT_DIFF: Override descriptor/linter matching files extensions", "type": "array" }, "GIT_GIT_DIFF_FILE_NAMES_REGEX": { @@ -4083,7 +4324,7 @@ "items": { "type": "string" }, - "title": "GIT_GIT_DIFF: Override descriptor/linter matching file name regex", + "title": "(removed) GIT_GIT_DIFF: Override descriptor/linter matching file name regex", "type": "array" }, "GIT_GIT_DIFF_POST_COMMANDS": { @@ -4100,7 +4341,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "GIT_GIT_DIFF: Define or override a list of bash commands to run after the linter", + "title": "(removed) GIT_GIT_DIFF: Define or override a list of bash commands to run after the linter", "type": "array" }, "GIT_GIT_DIFF_PRE_COMMANDS": { @@ -4117,7 +4358,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "GIT_GIT_DIFF: Define or override a list of bash commands to run before the linter", + "title": "(removed) GIT_GIT_DIFF: Define or override a list of bash commands to run before the linter", "type": "array" }, "GO_FILTER_REGEX_EXCLUDE": { @@ -4270,6 +4511,16 @@ "title": "GO_GOLANGCI_LINT: Custom config file path", "type": "string" }, + "GO_GOLANGCI_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/GO_GOLANGCI_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling GO_GOLANGCI_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "GO_GOLANGCI_LINT: Unsecured env variables", + "type": "array" + }, "GO_REVIVE_ARGUMENTS": { "$id": "#/properties/GO_REVIVE_ARGUMENTS", "description": "GO_REVIVE: User custom arguments to add in linter CLI call", @@ -4403,6 +4654,16 @@ "title": "GO_REVIVE: Custom config file path", "type": "string" }, + "GO_REVIVE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/GO_REVIVE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling GO_REVIVE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "GO_REVIVE: Unsecured env variables", + "type": "array" + }, "GRAPHQL_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/GRAPHQL_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for GRAPHQL descriptor", @@ -4552,6 +4813,16 @@ "title": "GRAPHQL_GRAPHQL_SCHEMA_LINTER: Custom config file path", "type": "string" }, + "GRAPHQL_GRAPHQL_SCHEMA_LINTER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/GRAPHQL_GRAPHQL_SCHEMA_LINTER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling GRAPHQL_GRAPHQL_SCHEMA_LINTER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "GRAPHQL_GRAPHQL_SCHEMA_LINTER: Unsecured env variables", + "type": "array" + }, "GROOVY_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/GROOVY_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for GROOVY descriptor", @@ -4702,6 +4973,16 @@ "title": "GROOVY_NPM_GROOVY_LINT: Custom config file path", "type": "string" }, + "GROOVY_NPM_GROOVY_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/GROOVY_NPM_GROOVY_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling GROOVY_NPM_GROOVY_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "GROOVY_NPM_GROOVY_LINT: Unsecured env variables", + "type": "array" + }, "HTML_DJLINT_ARGUMENTS": { "$id": "#/properties/HTML_DJLINT_ARGUMENTS", "description": "HTML_DJLINT: User custom arguments to add in linter CLI call", @@ -4822,6 +5103,16 @@ "title": "HTML_DJLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "HTML_DJLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/HTML_DJLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling HTML_DJLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "HTML_DJLINT: Unsecured env variables", + "type": "array" + }, "HTML_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/HTML_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for HTML descriptor", @@ -4972,6 +5263,16 @@ "title": "HTML_HTMLHINT: Custom config file path", "type": "string" }, + "HTML_HTMLHINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/HTML_HTMLHINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling HTML_HTMLHINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "HTML_HTMLHINT: Unsecured env variables", + "type": "array" + }, "IGNORE_GENERATED_FILES": { "$id": "#/properties/IGNORE_GENERATED_FILES", "default": false, @@ -5138,6 +5439,16 @@ "title": "JAVASCRIPT_ES: Custom config file path", "type": "string" }, + "JAVASCRIPT_ES_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JAVASCRIPT_ES_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JAVASCRIPT_ES and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JAVASCRIPT_ES: Unsecured env variables", + "type": "array" + }, "JAVASCRIPT_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/JAVASCRIPT_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for JAVASCRIPT descriptor", @@ -5281,6 +5592,16 @@ "title": "JAVASCRIPT_PRETTIER: Custom config file path", "type": "string" }, + "JAVASCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JAVASCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JAVASCRIPT_PRETTIER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JAVASCRIPT_PRETTIER: Unsecured env variables", + "type": "array" + }, "JAVASCRIPT_STANDARD_ARGUMENTS": { "$id": "#/properties/JAVASCRIPT_STANDARD_ARGUMENTS", "description": "JAVASCRIPT_STANDARD: User custom arguments to add in linter CLI call", @@ -5401,6 +5722,16 @@ "title": "JAVASCRIPT_STANDARD: Define or override a list of bash commands to run before the linter", "type": "array" }, + "JAVASCRIPT_STANDARD_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JAVASCRIPT_STANDARD_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JAVASCRIPT_STANDARD and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JAVASCRIPT_STANDARD: Unsecured env variables", + "type": "array" + }, "JAVA_CHECKSTYLE_ARGUMENTS": { "$id": "#/properties/JAVA_CHECKSTYLE_ARGUMENTS", "description": "JAVA_CHECKSTYLE: User custom arguments to add in linter CLI call", @@ -5541,6 +5872,16 @@ "title": "JAVA_CHECKSTYLE: Custom config file path", "type": "string" }, + "JAVA_CHECKSTYLE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JAVA_CHECKSTYLE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JAVA_CHECKSTYLE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JAVA_CHECKSTYLE: Unsecured env variables", + "type": "array" + }, "JAVA_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/JAVA_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for JAVA descriptor", @@ -5684,6 +6025,16 @@ "title": "JAVA_PMD: Custom config file path", "type": "string" }, + "JAVA_PMD_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JAVA_PMD_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JAVA_PMD and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JAVA_PMD: Unsecured env variables", + "type": "array" + }, "JSON_ESLINT_PLUGIN_JSONC_ARGUMENTS": { "$id": "#/properties/JSON_ESLINT_PLUGIN_JSONC_ARGUMENTS", "description": "JSON_ESLINT_PLUGIN_JSONC: User custom arguments to add in linter CLI call", @@ -5824,6 +6175,16 @@ "title": "JSON_ESLINT_PLUGIN_JSONC: Custom config file path", "type": "string" }, + "JSON_ESLINT_PLUGIN_JSONC_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSON_ESLINT_PLUGIN_JSONC_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSON_ESLINT_PLUGIN_JSONC and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSON_ESLINT_PLUGIN_JSONC: Unsecured env variables", + "type": "array" + }, "JSON_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/JSON_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for JSON descriptor", @@ -5967,6 +6328,16 @@ "title": "JSON_JSONLINT: Custom config file path", "type": "string" }, + "JSON_JSONLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSON_JSONLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSON_JSONLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSON_JSONLINT: Unsecured env variables", + "type": "array" + }, "JSON_NPM_PACKAGE_JSON_LINT_ARGUMENTS": { "$id": "#/properties/JSON_NPM_PACKAGE_JSON_LINT_ARGUMENTS", "description": "JSON_NPM_PACKAGE_JSON_LINT: User custom arguments to add in linter CLI call", @@ -6079,6 +6450,16 @@ "title": "JSON_NPM_PACKAGE_JSON_LINT: Custom config file path", "type": "string" }, + "JSON_NPM_PACKAGE_JSON_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSON_NPM_PACKAGE_JSON_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSON_NPM_PACKAGE_JSON_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSON_NPM_PACKAGE_JSON_LINT: Unsecured env variables", + "type": "array" + }, "JSON_PRETTIER_ARGUMENTS": { "$id": "#/properties/JSON_PRETTIER_ARGUMENTS", "description": "JSON_PRETTIER: User custom arguments to add in linter CLI call", @@ -6212,6 +6593,16 @@ "title": "JSON_PRETTIER: Custom config file path", "type": "string" }, + "JSON_PRETTIER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSON_PRETTIER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSON_PRETTIER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSON_PRETTIER: Unsecured env variables", + "type": "array" + }, "JSON_REPORTER": { "$id": "#/properties/JSON_REPORTER", "default": false, @@ -6350,6 +6741,16 @@ "title": "JSON_V8R: Define or override a list of bash commands to run before the linter", "type": "array" }, + "JSON_V8R_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSON_V8R_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSON_V8R and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSON_V8R: Unsecured env variables", + "type": "array" + }, "JSX_ESLINT_ARGUMENTS": { "$id": "#/properties/JSX_ESLINT_ARGUMENTS", "description": "JSX_ESLINT: User custom arguments to add in linter CLI call", @@ -6490,6 +6891,16 @@ "title": "JSX_ESLINT: Custom config file path", "type": "string" }, + "JSX_ESLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/JSX_ESLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling JSX_ESLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "JSX_ESLINT: Unsecured env variables", + "type": "array" + }, "JSX_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/JSX_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for JSX descriptor", @@ -6629,6 +7040,16 @@ "title": "KOTLIN_KTLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "KOTLIN_KTLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/KOTLIN_KTLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling KOTLIN_KTLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "KOTLIN_KTLINT: Unsecured env variables", + "type": "array" + }, "KUBERNETES_DIRECTORY": { "$id": "#/properties/KUBERNETES_DIRECTORY", "title": "Directory containing KUBERNETES files", @@ -6749,6 +7170,16 @@ "title": "KUBERNETES_HELM: Define or override a list of bash commands to run before the linter", "type": "array" }, + "KUBERNETES_HELM_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/KUBERNETES_HELM_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling KUBERNETES_HELM and its pre/post commands", + "items": { + "type": "string" + }, + "title": "KUBERNETES_HELM: Unsecured env variables", + "type": "array" + }, "KUBERNETES_KUBECONFORM_ARGUMENTS": { "$id": "#/properties/KUBERNETES_KUBECONFORM_ARGUMENTS", "description": "KUBERNETES_KUBECONFORM: User custom arguments to add in linter CLI call", @@ -6875,7 +7306,132 @@ "title": "KUBERNETES_KUBECONFORM: Define or override a list of bash commands to run before the linter", "type": "array" }, - "KUBERNETES_KUBEVAL_ARGUMENTS": { + "KUBERNETES_KUBECONFORM_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/KUBERNETES_KUBECONFORM_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling KUBERNETES_KUBECONFORM and its pre/post commands", + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBECONFORM: Unsecured env variables", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_ARGUMENTS": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_ARGUMENTS", + "description": "KUBERNETES_KUBESCAPE: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBESCAPE: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "KUBERNETES_KUBESCAPE_CLI_EXECUTABLE": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_CLI_EXECUTABLE", + "default": [ + [ + "kubescape" + ] + ], + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBESCAPE: CLI Executable", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_DIRECTORY": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_DIRECTORY", + "default": "", + "title": "KUBERNETES_KUBESCAPE: Directory containing KUBERNETES files", + "type": "string" + }, + "KUBERNETES_KUBESCAPE_DISABLE_ERRORS": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_DISABLE_ERRORS", + "default": false, + "title": "KUBERNETES_KUBESCAPE: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "KUBERNETES_KUBESCAPE_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "KUBERNETES_KUBESCAPE: Maximum number of errors allowed", + "type": "number" + }, + "KUBERNETES_KUBESCAPE_FILE_EXTENSIONS": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBESCAPE: Override descriptor/linter matching files extensions", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_FILE_NAMES_REGEX": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBESCAPE: Override descriptor/linter matching file name regex", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_POST_COMMANDS": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "KUBERNETES_KUBESCAPE: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_PRE_COMMANDS": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "KUBERNETES_KUBESCAPE: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "KUBERNETES_KUBESCAPE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/KUBERNETES_KUBESCAPE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling KUBERNETES_KUBESCAPE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "KUBERNETES_KUBESCAPE: Unsecured env variables", + "type": "array" + }, + "KUBERNETES_KUBEVAL_ARGUMENTS": { "$id": "#/properties/KUBERNETES_KUBEVAL_ARGUMENTS", "description": "KUBERNETES_KUBEVAL: User custom arguments to add in linter CLI call", "examples:": [ @@ -6885,7 +7441,7 @@ "items": { "type": "string" }, - "title": "KUBERNETES_KUBEVAL: Custom arguments", + "title": "(removed) KUBERNETES_KUBEVAL: Custom arguments", "type": [ "array", "string" @@ -6901,7 +7457,7 @@ "items": { "type": "string" }, - "title": "KUBERNETES_KUBEVAL: CLI Executable", + "title": "(removed) KUBERNETES_KUBEVAL: CLI Executable", "type": "array" }, "KUBERNETES_KUBEVAL_CLI_LINT_MODE": { @@ -6911,25 +7467,25 @@ "file", "project" ], - "title": "KUBERNETES_KUBEVAL: Override default cli lint mode", + "title": "(removed) KUBERNETES_KUBEVAL: Override default cli lint mode", "type": "string" }, "KUBERNETES_KUBEVAL_DIRECTORY": { "$id": "#/properties/KUBERNETES_KUBEVAL_DIRECTORY", "default": "kubernetes", - "title": "KUBERNETES_KUBEVAL: Directory containing KUBERNETES files", + "title": "(removed) KUBERNETES_KUBEVAL: Directory containing KUBERNETES files", "type": "string" }, "KUBERNETES_KUBEVAL_DISABLE_ERRORS": { "$id": "#/properties/KUBERNETES_KUBEVAL_DISABLE_ERRORS", "default": false, - "title": "KUBERNETES_KUBEVAL: Linter doesn't make MegaLinter fail even if errors are found", + "title": "(removed) KUBERNETES_KUBEVAL: Linter doesn't make MegaLinter fail even if errors are found", "type": "boolean" }, "KUBERNETES_KUBEVAL_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/KUBERNETES_KUBEVAL_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "KUBERNETES_KUBEVAL: Maximum number of errors allowed", + "title": "(removed) KUBERNETES_KUBEVAL: Maximum number of errors allowed", "type": "number" }, "KUBERNETES_KUBEVAL_FILE_EXTENSIONS": { @@ -6941,7 +7497,7 @@ "items": { "type": "string" }, - "title": "KUBERNETES_KUBEVAL: Override descriptor/linter matching files extensions", + "title": "(removed) KUBERNETES_KUBEVAL: Override descriptor/linter matching files extensions", "type": "array" }, "KUBERNETES_KUBEVAL_FILE_NAMES_REGEX": { @@ -6953,17 +7509,17 @@ "items": { "type": "string" }, - "title": "KUBERNETES_KUBEVAL: Override descriptor/linter matching file name regex", + "title": "(removed) KUBERNETES_KUBEVAL: Override descriptor/linter matching file name regex", "type": "array" }, "KUBERNETES_KUBEVAL_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/KUBERNETES_KUBEVAL_FILTER_REGEX_EXCLUDE", - "title": "KUBERNETES_KUBEVAL: Excluding Regex", + "title": "(removed) KUBERNETES_KUBEVAL: Excluding Regex", "type": "string" }, "KUBERNETES_KUBEVAL_FILTER_REGEX_INCLUDE": { "$id": "#/properties/KUBERNETES_KUBEVAL_FILTER_REGEX_INCLUDE", - "title": "KUBERNETES_KUBEVAL: Including Regex", + "title": "(removed) KUBERNETES_KUBEVAL: Including Regex", "type": "string" }, "KUBERNETES_KUBEVAL_POST_COMMANDS": { @@ -6980,7 +7536,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "KUBERNETES_KUBEVAL: Define or override a list of bash commands to run after the linter", + "title": "(removed) KUBERNETES_KUBEVAL: Define or override a list of bash commands to run after the linter", "type": "array" }, "KUBERNETES_KUBEVAL_PRE_COMMANDS": { @@ -6997,7 +7553,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "KUBERNETES_KUBEVAL: Define or override a list of bash commands to run before the linter", + "title": "(removed) KUBERNETES_KUBEVAL: Define or override a list of bash commands to run before the linter", "type": "array" }, "LATEX_CHKTEX_ARGUMENTS": { @@ -7139,6 +7695,16 @@ "title": "LATEX_CHKTEX: Custom config file path", "type": "string" }, + "LATEX_CHKTEX_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/LATEX_CHKTEX_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling LATEX_CHKTEX and its pre/post commands", + "items": { + "type": "string" + }, + "title": "LATEX_CHKTEX: Unsecured env variables", + "type": "array" + }, "LATEX_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/LATEX_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for LATEX descriptor", @@ -7329,6 +7895,16 @@ "title": "LUA_LUACHECK: Custom config file path", "type": "string" }, + "LUA_LUACHECK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/LUA_LUACHECK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling LUA_LUACHECK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "LUA_LUACHECK: Unsecured env variables", + "type": "array" + }, "MAKEFILE_CHECKMAKE_ARGUMENTS": { "$id": "#/properties/MAKEFILE_CHECKMAKE_ARGUMENTS", "description": "MAKEFILE_CHECKMAKE: User custom arguments to add in linter CLI call", @@ -7461,6 +8037,16 @@ "title": "MAKEFILE_CHECKMAKE: Custom config file path", "type": "string" }, + "MAKEFILE_CHECKMAKE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/MAKEFILE_CHECKMAKE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling MAKEFILE_CHECKMAKE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "MAKEFILE_CHECKMAKE: Unsecured env variables", + "type": "array" + }, "MAKEFILE_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/MAKEFILE_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for MAKEFILE descriptor", @@ -7631,6 +8217,16 @@ "title": "MARKDOWN_MARKDOWNLINT: Custom config file path", "type": "string" }, + "MARKDOWN_MARKDOWNLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/MARKDOWN_MARKDOWNLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWNLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "MARKDOWN_MARKDOWNLINT: Unsecured env variables", + "type": "array" + }, "MARKDOWN_MARKDOWN_LINK_CHECK_ARGUMENTS": { "$id": "#/properties/MARKDOWN_MARKDOWN_LINK_CHECK_ARGUMENTS", "description": "MARKDOWN_MARKDOWN_LINK_CHECK: User custom arguments to add in linter CLI call", @@ -7771,6 +8367,16 @@ "title": "MARKDOWN_MARKDOWN_LINK_CHECK: Custom config file path", "type": "string" }, + "MARKDOWN_MARKDOWN_LINK_CHECK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/MARKDOWN_MARKDOWN_LINK_CHECK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWN_LINK_CHECK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "MARKDOWN_MARKDOWN_LINK_CHECK: Unsecured env variables", + "type": "array" + }, "MARKDOWN_MARKDOWN_TABLE_FORMATTER_ARGUMENTS": { "$id": "#/properties/MARKDOWN_MARKDOWN_TABLE_FORMATTER_ARGUMENTS", "description": "MARKDOWN_MARKDOWN_TABLE_FORMATTER: User custom arguments to add in linter CLI call", @@ -7891,6 +8497,16 @@ "title": "MARKDOWN_MARKDOWN_TABLE_FORMATTER: Define or override a list of bash commands to run before the linter", "type": "array" }, + "MARKDOWN_MARKDOWN_TABLE_FORMATTER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/MARKDOWN_MARKDOWN_TABLE_FORMATTER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling MARKDOWN_MARKDOWN_TABLE_FORMATTER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "MARKDOWN_MARKDOWN_TABLE_FORMATTER: Unsecured env variables", + "type": "array" + }, "MARKDOWN_MARKDOWN_TABLE_PRETTIFY_ARGUMENTS": { "$id": "#/properties/MARKDOWN_MARKDOWN_TABLE_PRETTIFY_ARGUMENTS", "description": "MARKDOWN_MARKDOWN_TABLE_PRETTIFY: User custom arguments to add in linter CLI call", @@ -8076,6 +8692,16 @@ "title": "MARKDOWN_REMARK_LINT: Custom config file path", "type": "string" }, + "MARKDOWN_REMARK_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/MARKDOWN_REMARK_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling MARKDOWN_REMARK_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "MARKDOWN_REMARK_LINT: Unsecured env variables", + "type": "array" + }, "MEGALINTER_FILES_TO_LINT": { "$id": "#/properties/MEGALINTER_FILES_TO_LINT", "description": "Comma-separated list of files to analyze. Using this variable will bypass other file listing methods", @@ -8247,6 +8873,16 @@ "title": "OPENAPI_SPECTRAL: Custom config file path", "type": "string" }, + "OPENAPI_SPECTRAL_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/OPENAPI_SPECTRAL_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling OPENAPI_SPECTRAL and its pre/post commands", + "items": { + "type": "string" + }, + "title": "OPENAPI_SPECTRAL: Unsecured env variables", + "type": "array" + }, "OUTPUT_DETAIL": { "$id": "#/properties/OUTPUT_DETAIL", "description": "(DEPRECATED) Output detail for text reporter: only error files (simple) or all files (detailed)", @@ -8403,6 +9039,16 @@ "title": "PERL_PERLCRITIC: Define or override a list of bash commands to run before the linter", "type": "array" }, + "PERL_PERLCRITIC_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PERL_PERLCRITIC_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PERL_PERLCRITIC and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PERL_PERLCRITIC: Unsecured env variables", + "type": "array" + }, "PHP_BUILTIN_ARGUMENTS": { "$id": "#/properties/PHP_BUILTIN_ARGUMENTS", "description": "PHP_BUILTIN: User custom arguments to add in linter CLI call", @@ -8413,7 +9059,7 @@ "items": { "type": "string" }, - "title": "PHP_BUILTIN: Custom arguments", + "title": "(removed) PHP_BUILTIN: Custom arguments", "type": [ "array", "string" @@ -8421,7 +9067,7 @@ }, "PHP_BUILTIN_CLI_EXECUTABLE": { "$id": "#/properties/PHP_BUILTIN_CLI_EXECUTABLE", - "title": "PHP_BUILTIN: Override default CLI executable for linting request", + "title": "(removed) PHP_BUILTIN: Override default CLI executable for linting request", "type": "string" }, "PHP_BUILTIN_CLI_LINT_MODE": { @@ -8432,19 +9078,19 @@ "list_of_files", "project" ], - "title": "PHP_BUILTIN: Override default cli lint mode", + "title": "(removed) PHP_BUILTIN: Override default cli lint mode", "type": "string" }, "PHP_BUILTIN_DISABLE_ERRORS": { "$id": "#/properties/PHP_BUILTIN_DISABLE_ERRORS", "default": false, - "title": "PHP_BUILTIN: Linter does not make MegaLinter fail even if errors are found", + "title": "(removed) PHP_BUILTIN: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, "PHP_BUILTIN_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/PHP_BUILTIN_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "PHP_BUILTIN: Maximum number of errors allowed", + "title": "(removed) PHP_BUILTIN: Maximum number of errors allowed", "type": "number" }, "PHP_BUILTIN_FILE_EXTENSIONS": { @@ -8456,7 +9102,7 @@ "items": { "type": "string" }, - "title": "PHP_BUILTIN: Override descriptor/linter matching files extensions", + "title": "(removed) PHP_BUILTIN: Override descriptor/linter matching files extensions", "type": "array" }, "PHP_BUILTIN_FILE_NAMES_REGEX": { @@ -8468,17 +9114,17 @@ "items": { "type": "string" }, - "title": "PHP_BUILTIN: Override descriptor/linter matching file name regex", + "title": "(removed) PHP_BUILTIN: Override descriptor/linter matching file name regex", "type": "array" }, "PHP_BUILTIN_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/PHP_BUILTIN_FILTER_REGEX_EXCLUDE", - "title": "PHP_BUILTIN: Excluding Regex", + "title": "(removed) PHP_BUILTIN: Excluding Regex", "type": "string" }, "PHP_BUILTIN_FILTER_REGEX_INCLUDE": { "$id": "#/properties/PHP_BUILTIN_FILTER_REGEX_INCLUDE", - "title": "PHP_BUILTIN: Including Regex", + "title": "(removed) PHP_BUILTIN: Including Regex", "type": "string" }, "PHP_BUILTIN_POST_COMMANDS": { @@ -8495,7 +9141,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "PHP_BUILTIN: Define or override a list of bash commands to run after the linter", + "title": "(removed) PHP_BUILTIN: Define or override a list of bash commands to run after the linter", "type": "array" }, "PHP_BUILTIN_PRE_COMMANDS": { @@ -8512,7 +9158,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "PHP_BUILTIN: Define or override a list of bash commands to run before the linter", + "title": "(removed) PHP_BUILTIN: Define or override a list of bash commands to run before the linter", "type": "array" }, "PHP_FILTER_REGEX_EXCLUDE": { @@ -8665,6 +9311,16 @@ "title": "PHP_PHPCS: Custom config file path", "type": "string" }, + "PHP_PHPCS_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PHP_PHPCS_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PHP_PHPCS and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PHP_PHPCS: Unsecured env variables", + "type": "array" + }, "PHP_PHPLINT_ARGUMENTS": { "$id": "#/properties/PHP_PHPLINT_ARGUMENTS", "description": "PHP_PHPLINT: User custom arguments to add in linter CLI call", @@ -8805,6 +9461,16 @@ "title": "PHP_PHPLINT: Custom config file path", "type": "string" }, + "PHP_PHPLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PHP_PHPLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PHP_PHPLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PHP_PHPLINT: Unsecured env variables", + "type": "array" + }, "PHP_PHPSTAN_ARGUMENTS": { "$id": "#/properties/PHP_PHPSTAN_ARGUMENTS", "description": "PHP_PHPSTAN: User custom arguments to add in linter CLI call", @@ -8945,6 +9611,16 @@ "title": "PHP_PHPSTAN: Custom config file path", "type": "string" }, + "PHP_PHPSTAN_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PHP_PHPSTAN_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PHP_PHPSTAN and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PHP_PHPSTAN: Unsecured env variables", + "type": "array" + }, "PHP_PSALM_ARGUMENTS": { "$id": "#/properties/PHP_PSALM_ARGUMENTS", "description": "PHP_PSALM: User custom arguments to add in linter CLI call", @@ -9085,6 +9761,16 @@ "title": "PHP_PSALM: Custom config file path", "type": "string" }, + "PHP_PSALM_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PHP_PSALM_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PHP_PSALM and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PHP_PSALM: Unsecured env variables", + "type": "array" + }, "PLUGINS": { "$id": "#/properties/PLUGINS", "description": "List of MegaLinter plugins. URL must follow format https://**/mega-linter-plugin-**/**.mega-linter-descriptor.yml", @@ -9373,6 +10059,16 @@ "title": "POWERSHELL_POWERSHELL_FORMATTER: Custom config file path", "type": "string" }, + "POWERSHELL_POWERSHELL_FORMATTER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/POWERSHELL_POWERSHELL_FORMATTER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling POWERSHELL_POWERSHELL_FORMATTER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "POWERSHELL_POWERSHELL_FORMATTER: Unsecured env variables", + "type": "array" + }, "POWERSHELL_POWERSHELL_POST_COMMANDS": { "$id": "#/properties/POWERSHELL_POWERSHELL_POST_COMMANDS", "examples": [ @@ -9413,6 +10109,16 @@ "title": "POWERSHELL_POWERSHELL: Custom config file path", "type": "string" }, + "POWERSHELL_POWERSHELL_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/POWERSHELL_POWERSHELL_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling POWERSHELL_POWERSHELL and its pre/post commands", + "items": { + "type": "string" + }, + "title": "POWERSHELL_POWERSHELL: Unsecured env variables", + "type": "array" + }, "PRE_COMMANDS": { "$id": "#/properties/PRE_COMMANDS", "default": [], @@ -9599,6 +10305,16 @@ "title": "PROTOBUF_PROTOLINT: Custom config file path", "type": "string" }, + "PROTOBUF_PROTOLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PROTOBUF_PROTOLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PROTOBUF_PROTOLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PROTOBUF_PROTOLINT: Unsecured env variables", + "type": "array" + }, "PUPPET_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/PUPPET_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for PUPPET descriptor", @@ -9748,6 +10464,16 @@ "title": "PUPPET_PUPPET_LINT: Custom config file path", "type": "string" }, + "PUPPET_PUPPET_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PUPPET_PUPPET_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PUPPET_PUPPET_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PUPPET_PUPPET_LINT: Unsecured env variables", + "type": "array" + }, "PYTHON_BANDIT_ARGUMENTS": { "$id": "#/properties/PYTHON_BANDIT_ARGUMENTS", "description": "PYTHON_BANDIT: User custom arguments to add in linter CLI call", @@ -9881,6 +10607,16 @@ "title": "PYTHON_BANDIT: Custom config file path", "type": "string" }, + "PYTHON_BANDIT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_BANDIT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_BANDIT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_BANDIT: Unsecured env variables", + "type": "array" + }, "PYTHON_BLACK_ARGUMENTS": { "$id": "#/properties/PYTHON_BLACK_ARGUMENTS", "description": "PYTHON_BLACK: User custom arguments to add in linter CLI call", @@ -10021,6 +10757,16 @@ "title": "PYTHON_BLACK: Custom config file path", "type": "string" }, + "PYTHON_BLACK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_BLACK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_BLACK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_BLACK: Unsecured env variables", + "type": "array" + }, "PYTHON_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/PYTHON_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for PYTHON descriptor", @@ -10171,6 +10917,16 @@ "title": "PYTHON_FLAKE8: Custom config file path", "type": "string" }, + "PYTHON_FLAKE8_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_FLAKE8_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_FLAKE8 and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_FLAKE8: Unsecured env variables", + "type": "array" + }, "PYTHON_ISORT_ARGUMENTS": { "$id": "#/properties/PYTHON_ISORT_ARGUMENTS", "description": "PYTHON_ISORT: User custom arguments to add in linter CLI call", @@ -10311,6 +11067,16 @@ "title": "PYTHON_ISORT: Custom config file path", "type": "string" }, + "PYTHON_ISORT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_ISORT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_ISORT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_ISORT: Unsecured env variables", + "type": "array" + }, "PYTHON_MYPY_ARGUMENTS": { "$id": "#/properties/PYTHON_MYPY_ARGUMENTS", "description": "PYTHON_MYPY: User custom arguments to add in linter CLI call", @@ -10444,6 +11210,16 @@ "title": "PYTHON_MYPY: Custom config file path", "type": "string" }, + "PYTHON_MYPY_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_MYPY_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_MYPY and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_MYPY: Unsecured env variables", + "type": "array" + }, "PYTHON_PYLINT_ARGUMENTS": { "$id": "#/properties/PYTHON_PYLINT_ARGUMENTS", "description": "PYTHON_PYLINT: User custom arguments to add in linter CLI call", @@ -10584,6 +11360,16 @@ "title": "PYTHON_PYLINT: Custom config file path", "type": "string" }, + "PYTHON_PYLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_PYLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_PYLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_PYLINT: Unsecured env variables", + "type": "array" + }, "PYTHON_PYRIGHT_ARGUMENTS": { "$id": "#/properties/PYTHON_PYRIGHT_ARGUMENTS", "description": "PYTHON_PYRIGHT: User custom arguments to add in linter CLI call", @@ -10717,6 +11503,16 @@ "title": "PYTHON_PYRIGHT: Custom config file path", "type": "string" }, + "PYTHON_PYRIGHT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_PYRIGHT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_PYRIGHT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_PYRIGHT: Unsecured env variables", + "type": "array" + }, "PYTHON_RUFF_ARGUMENTS": { "$id": "#/properties/PYTHON_RUFF_ARGUMENTS", "description": "PYTHON_RUFF: User custom arguments to add in linter CLI call", @@ -10850,6 +11646,16 @@ "title": "PYTHON_RUFF: Custom config file path", "type": "string" }, + "PYTHON_RUFF_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/PYTHON_RUFF_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling PYTHON_RUFF and its pre/post commands", + "items": { + "type": "string" + }, + "title": "PYTHON_RUFF: Unsecured env variables", + "type": "array" + }, "RAKU_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/RAKU_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for RAKU descriptor", @@ -10999,6 +11805,16 @@ "title": "RAKU_RAKU: Custom config file path", "type": "string" }, + "RAKU_RAKU_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RAKU_RAKU_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RAKU_RAKU and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RAKU_RAKU: Unsecured env variables", + "type": "array" + }, "REPORTERS_MARKDOWN_TYPE": { "$id": "#/properties/REPORTERS_MARKDOWN_TYPE", "default": "advanced", @@ -11105,6 +11921,16 @@ "title": "REPOSITORY_CHECKOV: Custom config file path", "type": "string" }, + "REPOSITORY_CHECKOV_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_CHECKOV_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_CHECKOV and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_CHECKOV: Unsecured env variables", + "type": "array" + }, "REPOSITORY_DEVSKIM_ARGUMENTS": { "$id": "#/properties/REPOSITORY_DEVSKIM_ARGUMENTS", "description": "REPOSITORY_DEVSKIM: User custom arguments to add in linter CLI call", @@ -11180,11 +12006,21 @@ "title": "REPOSITORY_DEVSKIM: Define or override a list of bash commands to run before the linter", "type": "array" }, - "REPOSITORY_DUSTILOCK_ARGUMENTS": { - "$id": "#/properties/REPOSITORY_DUSTILOCK_ARGUMENTS", - "description": "REPOSITORY_DUSTILOCK: User custom arguments to add in linter CLI call", - "examples:": [ - "--foo", + "REPOSITORY_DEVSKIM_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_DEVSKIM_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_DEVSKIM and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_DEVSKIM: Unsecured env variables", + "type": "array" + }, + "REPOSITORY_DUSTILOCK_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_ARGUMENTS", + "description": "REPOSITORY_DUSTILOCK: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", "bar" ], "items": { @@ -11255,6 +12091,16 @@ "title": "REPOSITORY_DUSTILOCK: Define or override a list of bash commands to run before the linter", "type": "array" }, + "REPOSITORY_DUSTILOCK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_DUSTILOCK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_DUSTILOCK: Unsecured env variables", + "type": "array" + }, "REPOSITORY_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/REPOSITORY_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for REPOSITORY descriptor", @@ -11353,6 +12199,16 @@ "title": "REPOSITORY_GITLEAKS: Custom config file path", "type": "string" }, + "REPOSITORY_GITLEAKS_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_GITLEAKS_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_GITLEAKS and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_GITLEAKS: Unsecured env variables", + "type": "array" + }, "REPOSITORY_GIT_DIFF_ARGUMENTS": { "$id": "#/properties/REPOSITORY_GIT_DIFF_ARGUMENTS", "description": "REPOSITORY_GIT_DIFF: User custom arguments to add in linter CLI call", @@ -11428,6 +12284,16 @@ "title": "REPOSITORY_GIT_DIFF: Define or override a list of bash commands to run before the linter", "type": "array" }, + "REPOSITORY_GIT_DIFF_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_GIT_DIFF and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_GIT_DIFF: Unsecured env variables", + "type": "array" + }, "REPOSITORY_GOODCHECK_ARGUMENTS": { "$id": "#/properties/REPOSITORY_GOODCHECK_ARGUMENTS", "description": "REPOSITORY_GOODCHECK: User custom arguments to add in linter CLI call", @@ -11438,7 +12304,7 @@ "items": { "type": "string" }, - "title": "REPOSITORY_GOODCHECK: Custom arguments", + "title": "(removed) REPOSITORY_GOODCHECK: Custom arguments", "type": [ "array", "string" @@ -11454,26 +12320,26 @@ "items": { "type": "string" }, - "title": "REPOSITORY_GOODCHECK: CLI Executable", + "title": "(removed) REPOSITORY_GOODCHECK: CLI Executable", "type": "array" }, "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", + "title": "(removed) REPOSITORY_GOODCHECK: Custom config file name", "type": "string" }, "REPOSITORY_GOODCHECK_DISABLE_ERRORS": { "$id": "#/properties/REPOSITORY_GOODCHECK_DISABLE_ERRORS", "default": false, - "title": "REPOSITORY_GOODCHECK: Linter doesn't make MegaLinter fail even if errors are found", + "title": "(removed) REPOSITORY_GOODCHECK: Linter doesn't 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", + "title": "(removed) REPOSITORY_GOODCHECK: Maximum number of errors allowed", "type": "number" }, "REPOSITORY_GOODCHECK_POST_COMMANDS": { @@ -11490,7 +12356,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "REPOSITORY_GOODCHECK: Define or override a list of bash commands to run after the linter", + "title": "(removed) REPOSITORY_GOODCHECK: Define or override a list of bash commands to run after the linter", "type": "array" }, "REPOSITORY_GOODCHECK_PRE_COMMANDS": { @@ -11507,15 +12373,211 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "REPOSITORY_GOODCHECK: Define or override a list of bash commands to run before the linter", + "title": "(removed) 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", + "title": "(removed) REPOSITORY_GOODCHECK: Custom config file path", + "type": "string" + }, + "REPOSITORY_GRYPE_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_GRYPE_ARGUMENTS", + "description": "REPOSITORY_GRYPE: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_GRYPE: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_GRYPE_CLI_EXECUTABLE": { + "$id": "#/properties/REPOSITORY_GRYPE_CLI_EXECUTABLE", + "default": [ + [ + "grype" + ] + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_GRYPE: CLI Executable", + "type": "array" + }, + "REPOSITORY_GRYPE_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_GRYPE_CONFIG_FILE", + "default": ".grype.yaml", + "description": "REPOSITORY_GRYPE: User custom config file name if different from default", + "title": "REPOSITORY_GRYPE: Custom config file name", + "type": "string" + }, + "REPOSITORY_GRYPE_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_GRYPE_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_GRYPE: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_GRYPE_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_GRYPE_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_GRYPE: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_GRYPE_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_GRYPE_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_GRYPE: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_GRYPE_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_GRYPE_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_GRYPE: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_GRYPE_RULES_PATH": { + "$id": "#/properties/REPOSITORY_GRYPE_RULES_PATH", + "description": "REPOSITORY_GRYPE: Path where to find linter configuration file", + "title": "REPOSITORY_GRYPE: Custom config file path", "type": "string" }, + "REPOSITORY_GRYPE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_GRYPE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_GRYPE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_GRYPE: Unsecured env variables", + "type": "array" + }, + "REPOSITORY_KICS_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_KICS_ARGUMENTS", + "description": "REPOSITORY_KICS: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_KICS: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_KICS_CLI_EXECUTABLE": { + "$id": "#/properties/REPOSITORY_KICS_CLI_EXECUTABLE", + "default": [ + [ + "kics" + ] + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_KICS: CLI Executable", + "type": "array" + }, + "REPOSITORY_KICS_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_KICS_CONFIG_FILE", + "default": "kics.config", + "description": "REPOSITORY_KICS: User custom config file name if different from default", + "title": "REPOSITORY_KICS: Custom config file name", + "type": "string" + }, + "REPOSITORY_KICS_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_KICS_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_KICS: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_KICS_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_KICS_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_KICS: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_KICS_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_KICS_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_KICS: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_KICS_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_KICS_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_KICS: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_KICS_RULES_PATH": { + "$id": "#/properties/REPOSITORY_KICS_RULES_PATH", + "description": "REPOSITORY_KICS: Path where to find linter configuration file", + "title": "REPOSITORY_KICS: Custom config file path", + "type": "string" + }, + "REPOSITORY_KICS_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_KICS_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_KICS and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_KICS: Unsecured env variables", + "type": "array" + }, "REPOSITORY_SECRETLINT_ARGUMENTS": { "$id": "#/properties/REPOSITORY_SECRETLINT_ARGUMENTS", "description": "REPOSITORY_SECRETLINT: User custom arguments to add in linter CLI call", @@ -11604,6 +12666,16 @@ "title": "REPOSITORY_SECRETLINT: Custom config file path", "type": "string" }, + "REPOSITORY_SECRETLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_SECRETLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_SECRETLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_SECRETLINT: Unsecured env variables", + "type": "array" + }, "REPOSITORY_SEMGREP_ARGUMENTS": { "$id": "#/properties/REPOSITORY_SEMGREP_ARGUMENTS", "description": "REPOSITORY_SEMGREP: User custom arguments to add in linter CLI call", @@ -11679,6 +12751,16 @@ "title": "REPOSITORY_SEMGREP: Define or override a list of bash commands to run before the linter", "type": "array" }, + "REPOSITORY_SEMGREP_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_SEMGREP_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_SEMGREP and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_SEMGREP: Unsecured env variables", + "type": "array" + }, "REPOSITORY_SYFT_ARGUMENTS": { "$id": "#/properties/REPOSITORY_SYFT_ARGUMENTS", "description": "REPOSITORY_SYFT: User custom arguments to add in linter CLI call", @@ -11767,6 +12849,16 @@ "title": "REPOSITORY_SYFT: Custom config file path", "type": "string" }, + "REPOSITORY_SYFT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_SYFT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_SYFT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_SYFT: Unsecured env variables", + "type": "array" + }, "REPOSITORY_TRIVY_ARGUMENTS": { "$id": "#/properties/REPOSITORY_TRIVY_ARGUMENTS", "description": "REPOSITORY_TRIVY: User custom arguments to add in linter CLI call", @@ -11855,6 +12947,212 @@ "title": "REPOSITORY_TRIVY: Custom config file path", "type": "string" }, + "REPOSITORY_TRIVY_SBOM_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_ARGUMENTS", + "description": "REPOSITORY_TRIVY_SBOM: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY_SBOM: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_TRIVY_SBOM_CLI_EXECUTABLE": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_CLI_EXECUTABLE", + "default": [ + [ + "trivy" + ] + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY_SBOM: CLI Executable", + "type": "array" + }, + "REPOSITORY_TRIVY_SBOM_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_CONFIG_FILE", + "default": "trivy-sbom.yaml", + "description": "REPOSITORY_TRIVY_SBOM: User custom config file name if different from default", + "title": "REPOSITORY_TRIVY_SBOM: Custom config file name", + "type": "string" + }, + "REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_TRIVY_SBOM: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_TRIVY_SBOM: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_TRIVY_SBOM_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRIVY_SBOM: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_TRIVY_SBOM_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRIVY_SBOM: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_TRIVY_SBOM_RULES_PATH": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_RULES_PATH", + "description": "REPOSITORY_TRIVY_SBOM: Path where to find linter configuration file", + "title": "REPOSITORY_TRIVY_SBOM: Custom config file path", + "type": "string" + }, + "REPOSITORY_TRIVY_SBOM_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_TRIVY_SBOM_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_TRIVY_SBOM and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY_SBOM: Unsecured env variables", + "type": "array" + }, + "REPOSITORY_TRIVY_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_TRIVY_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_TRIVY and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY: Unsecured env variables", + "type": "array" + }, + "REPOSITORY_TRUFFLEHOG_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_ARGUMENTS", + "description": "REPOSITORY_TRUFFLEHOG: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRUFFLEHOG: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_TRUFFLEHOG_CLI_EXECUTABLE": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_CLI_EXECUTABLE", + "default": [ + [ + "trufflehog" + ] + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRUFFLEHOG: CLI Executable", + "type": "array" + }, + "REPOSITORY_TRUFFLEHOG_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_CONFIG_FILE", + "default": ".trufflehog.yml", + "description": "REPOSITORY_TRUFFLEHOG: User custom config file name if different from default", + "title": "REPOSITORY_TRUFFLEHOG: Custom config file name", + "type": "string" + }, + "REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_TRUFFLEHOG: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_TRUFFLEHOG: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_TRUFFLEHOG_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRUFFLEHOG: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_TRUFFLEHOG_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRUFFLEHOG: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_TRUFFLEHOG_RULES_PATH": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_RULES_PATH", + "description": "REPOSITORY_TRUFFLEHOG: Path where to find linter configuration file", + "title": "REPOSITORY_TRUFFLEHOG: Custom config file path", + "type": "string" + }, + "REPOSITORY_TRUFFLEHOG_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/REPOSITORY_TRUFFLEHOG_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling REPOSITORY_TRUFFLEHOG and its pre/post commands", + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRUFFLEHOG: Unsecured env variables", + "type": "array" + }, "RST_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/RST_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for RST descriptor", @@ -12004,6 +13302,16 @@ "title": "RST_RSTCHECK: Custom config file path", "type": "string" }, + "RST_RSTCHECK_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RST_RSTCHECK_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RST_RSTCHECK and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RST_RSTCHECK: Unsecured env variables", + "type": "array" + }, "RST_RSTFMT_ARGUMENTS": { "$id": "#/properties/RST_RSTFMT_ARGUMENTS", "description": "RST_RSTFMT: User custom arguments to add in linter CLI call", @@ -12123,6 +13431,16 @@ "title": "RST_RSTFMT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "RST_RSTFMT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RST_RSTFMT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RST_RSTFMT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RST_RSTFMT: Unsecured env variables", + "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", @@ -12242,6 +13560,16 @@ "title": "RST_RST_LINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "RST_RST_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RST_RST_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RST_RST_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RST_RST_LINT: Unsecured env variables", + "type": "array" + }, "RUBY_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/RUBY_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for RUBY descriptor", @@ -12391,6 +13719,16 @@ "title": "RUBY_RUBOCOP: Custom config file path", "type": "string" }, + "RUBY_RUBOCOP_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RUBY_RUBOCOP_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RUBY_RUBOCOP and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RUBY_RUBOCOP: Unsecured env variables", + "type": "array" + }, "RUST_CLIPPY_ARGUMENTS": { "$id": "#/properties/RUST_CLIPPY_ARGUMENTS", "description": "RUST_CLIPPY: User custom arguments to add in linter CLI call", @@ -12510,6 +13848,16 @@ "title": "RUST_CLIPPY: Custom config file path", "type": "string" }, + "RUST_CLIPPY_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/RUST_CLIPPY_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling RUST_CLIPPY and its pre/post commands", + "items": { + "type": "string" + }, + "title": "RUST_CLIPPY: Unsecured env variables", + "type": "array" + }, "RUST_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/RUST_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for RUST descriptor", @@ -12669,6 +14017,16 @@ "title": "R_LINTR: Custom config file path", "type": "string" }, + "R_LINTR_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/R_LINTR_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling R_LINTR and its pre/post commands", + "items": { + "type": "string" + }, + "title": "R_LINTR: Unsecured env variables", + "type": "array" + }, "SALESFORCE_DIRECTORY": { "$id": "#/properties/SALESFORCE_DIRECTORY", "default": "force-app", @@ -12779,6 +14137,16 @@ "title": "SALESFORCE_SFDX_SCANNER_APEX: Custom config file path", "type": "string" }, + "SALESFORCE_SFDX_SCANNER_APEX_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SALESFORCE_SFDX_SCANNER_APEX_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_APEX and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SALESFORCE_SFDX_SCANNER_APEX: Unsecured env variables", + "type": "array" + }, "SALESFORCE_SFDX_SCANNER_ARGUMENTS": { "$id": "#/properties/SALESFORCE_SFDX_SCANNER_ARGUMENTS", "description": "SALESFORCE_SFDX_SCANNER: User custom arguments to add in linter CLI call", @@ -12889,6 +14257,16 @@ "title": "SALESFORCE_SFDX_SCANNER_AURA: Custom config file path", "type": "string" }, + "SALESFORCE_SFDX_SCANNER_AURA_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SALESFORCE_SFDX_SCANNER_AURA_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_AURA and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SALESFORCE_SFDX_SCANNER_AURA: Unsecured env variables", + "type": "array" + }, "SALESFORCE_SFDX_SCANNER_DIRECTORY": { "$id": "#/properties/SALESFORCE_SFDX_SCANNER_DIRECTORY", "default": "force-app", @@ -13035,6 +14413,16 @@ "title": "SALESFORCE_SFDX_SCANNER_LWC: Custom config file path", "type": "string" }, + "SALESFORCE_SFDX_SCANNER_LWC_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SALESFORCE_SFDX_SCANNER_LWC_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SALESFORCE_SFDX_SCANNER_LWC and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SALESFORCE_SFDX_SCANNER_LWC: Unsecured env variables", + "type": "array" + }, "SARIF_REPORTER": { "$id": "#/properties/SARIF_REPORTER", "default": false, @@ -13213,6 +14601,16 @@ "title": "SCALA_SCALAFIX: Custom config file path", "type": "string" }, + "SCALA_SCALAFIX_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SCALA_SCALAFIX_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SCALA_SCALAFIX and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SCALA_SCALAFIX: Unsecured env variables", + "type": "array" + }, "SECURED_ENV_VARIABLES": { "$id": "#/properties/SECURED_ENV_VARIABLES", "default": [ @@ -13405,6 +14803,16 @@ "title": "SNAKEMAKE_LINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "SNAKEMAKE_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SNAKEMAKE_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SNAKEMAKE_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SNAKEMAKE_LINT: Unsecured env variables", + "type": "array" + }, "SNAKEMAKE_SNAKEFMT_ARGUMENTS": { "$id": "#/properties/SNAKEMAKE_SNAKEFMT_ARGUMENTS", "description": "SNAKEMAKE_SNAKEFMT: User custom arguments to add in linter CLI call", @@ -13544,6 +14952,16 @@ "title": "SNAKEMAKE_SNAKEFMT: Custom config file path", "type": "string" }, + "SNAKEMAKE_SNAKEFMT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SNAKEMAKE_SNAKEFMT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SNAKEMAKE_SNAKEFMT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SNAKEMAKE_SNAKEFMT: Unsecured env variables", + "type": "array" + }, "SPELL_CSPELL_ANALYZE_FILE_NAMES": { "$id": "#/properties/SPELL_CSPELL_ANALYZE_FILE_NAMES", "default": false, @@ -13691,6 +15109,16 @@ "title": "SPELL_CSPELL: Custom config file path", "type": "string" }, + "SPELL_CSPELL_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SPELL_CSPELL_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SPELL_CSPELL and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SPELL_CSPELL: Unsecured env variables", + "type": "array" + }, "SPELL_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/SPELL_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for SPELL descriptor", @@ -13701,6 +15129,149 @@ "title": "Including regex filter for SPELL descriptor", "type": "string" }, + "SPELL_LYCHEE_ARGUMENTS": { + "$id": "#/properties/SPELL_LYCHEE_ARGUMENTS", + "description": "SPELL_LYCHEE: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "SPELL_LYCHEE: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "SPELL_LYCHEE_CLI_EXECUTABLE": { + "$id": "#/properties/SPELL_LYCHEE_CLI_EXECUTABLE", + "default": [ + [ + "lychee" + ] + ], + "items": { + "type": "string" + }, + "title": "SPELL_LYCHEE: CLI Executable", + "type": "array" + }, + "SPELL_LYCHEE_CLI_LINT_MODE": { + "$id": "#/properties/SPELL_LYCHEE_CLI_LINT_MODE", + "default": "list_of_files", + "enum": [ + "file", + "list_of_files", + "project" + ], + "title": "SPELL_LYCHEE: Override default cli lint mode", + "type": "string" + }, + "SPELL_LYCHEE_CONFIG_FILE": { + "$id": "#/properties/SPELL_LYCHEE_CONFIG_FILE", + "default": "lychee.toml", + "description": "SPELL_LYCHEE: User custom config file name if different from default", + "title": "SPELL_LYCHEE: Custom config file name", + "type": "string" + }, + "SPELL_LYCHEE_DISABLE_ERRORS": { + "$id": "#/properties/SPELL_LYCHEE_DISABLE_ERRORS", + "default": false, + "title": "SPELL_LYCHEE: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "SPELL_LYCHEE_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/SPELL_LYCHEE_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "SPELL_LYCHEE: Maximum number of errors allowed", + "type": "number" + }, + "SPELL_LYCHEE_FILE_EXTENSIONS": { + "$id": "#/properties/SPELL_LYCHEE_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "SPELL_LYCHEE: Override descriptor/linter matching files extensions", + "type": "array" + }, + "SPELL_LYCHEE_FILE_NAMES_REGEX": { + "$id": "#/properties/SPELL_LYCHEE_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "SPELL_LYCHEE: Override descriptor/linter matching file name regex", + "type": "array" + }, + "SPELL_LYCHEE_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/SPELL_LYCHEE_FILTER_REGEX_EXCLUDE", + "title": "SPELL_LYCHEE: Excluding Regex", + "type": "string" + }, + "SPELL_LYCHEE_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/SPELL_LYCHEE_FILTER_REGEX_INCLUDE", + "title": "SPELL_LYCHEE: Including Regex", + "type": "string" + }, + "SPELL_LYCHEE_POST_COMMANDS": { + "$id": "#/properties/SPELL_LYCHEE_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "SPELL_LYCHEE: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "SPELL_LYCHEE_PRE_COMMANDS": { + "$id": "#/properties/SPELL_LYCHEE_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "SPELL_LYCHEE: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "SPELL_LYCHEE_RULES_PATH": { + "$id": "#/properties/SPELL_LYCHEE_RULES_PATH", + "description": "SPELL_LYCHEE: Path where to find linter configuration file", + "title": "SPELL_LYCHEE: Custom config file path", + "type": "string" + }, + "SPELL_LYCHEE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SPELL_LYCHEE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SPELL_LYCHEE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SPELL_LYCHEE: Unsecured env variables", + "type": "array" + }, "SPELL_MISSPELL_ARGUMENTS": { "$id": "#/properties/SPELL_MISSPELL_ARGUMENTS", "description": "SPELL_MISSPELL: User custom arguments to add in linter CLI call", @@ -13954,6 +15525,16 @@ "title": "SPELL_PROSELINT: Custom config file path", "type": "string" }, + "SPELL_PROSELINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SPELL_PROSELINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SPELL_PROSELINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SPELL_PROSELINT: Unsecured env variables", + "type": "array" + }, "SPELL_VALE_ARGUMENTS": { "$id": "#/properties/SPELL_VALE_ARGUMENTS", "description": "SPELL_VALE: User custom arguments to add in linter CLI call", @@ -14087,6 +15668,16 @@ "title": "SPELL_VALE: Custom config file path", "type": "string" }, + "SPELL_VALE_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SPELL_VALE_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SPELL_VALE and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SPELL_VALE: Unsecured env variables", + "type": "array" + }, "SQL_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/SQL_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for SQL descriptor", @@ -14230,6 +15821,16 @@ "title": "SQL_SQLFLUFF: Custom config file path", "type": "string" }, + "SQL_SQLFLUFF_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SQL_SQLFLUFF_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SQL_SQLFLUFF and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SQL_SQLFLUFF: Unsecured env variables", + "type": "array" + }, "SQL_SQL_LINT_ARGUMENTS": { "$id": "#/properties/SQL_SQL_LINT_ARGUMENTS", "description": "SQL_SQL_LINT: User custom arguments to add in linter CLI call", @@ -14369,6 +15970,16 @@ "title": "SQL_SQL_LINT: Custom config file path", "type": "string" }, + "SQL_SQL_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SQL_SQL_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SQL_SQL_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SQL_SQL_LINT: Unsecured env variables", + "type": "array" + }, "SQL_TSQLLINT_ARGUMENTS": { "$id": "#/properties/SQL_TSQLLINT_ARGUMENTS", "description": "SQL_TSQLLINT: User custom arguments to add in linter CLI call", @@ -14502,6 +16113,16 @@ "title": "SQL_TSQLLINT: Custom config file path", "type": "string" }, + "SQL_TSQLLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SQL_TSQLLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SQL_TSQLLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SQL_TSQLLINT: Unsecured env variables", + "type": "array" + }, "SWIFT_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/SWIFT_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for SWIFT descriptor", @@ -14624,6 +16245,16 @@ "title": "SWIFT_SWIFTLINT: Custom config file path", "type": "string" }, + "SWIFT_SWIFTLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/SWIFT_SWIFTLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling SWIFT_SWIFTLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "SWIFT_SWIFTLINT: Unsecured env variables", + "type": "array" + }, "TAP_REPORTER": { "$id": "#/properties/TAP_REPORTER", "default": false, @@ -14787,6 +16418,16 @@ "title": "TEKTON_TEKTON_LINT: Custom config file path", "type": "string" }, + "TEKTON_TEKTON_LINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TEKTON_TEKTON_LINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TEKTON_TEKTON_LINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TEKTON_TEKTON_LINT: Unsecured env variables", + "type": "array" + }, "TERRAFORM_CHECKOV_ARGUMENTS": { "$id": "#/properties/TERRAFORM_CHECKOV_ARGUMENTS", "description": "TERRAFORM_CHECKOV: User custom arguments to add in linter CLI call", @@ -14797,7 +16438,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_CHECKOV: Custom arguments", + "title": "(removed) TERRAFORM_CHECKOV: Custom arguments", "type": [ "array", "string" @@ -14813,7 +16454,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_CHECKOV: CLI Executable", + "title": "(removed) TERRAFORM_CHECKOV: CLI Executable", "type": "array" }, "TERRAFORM_CHECKOV_CLI_LINT_MODE": { @@ -14823,19 +16464,19 @@ "file", "project" ], - "title": "TERRAFORM_CHECKOV: Override default cli lint mode", + "title": "(removed) TERRAFORM_CHECKOV: Override default cli lint mode", "type": "string" }, "TERRAFORM_CHECKOV_DISABLE_ERRORS": { "$id": "#/properties/TERRAFORM_CHECKOV_DISABLE_ERRORS", "default": false, - "title": "TERRAFORM_CHECKOV: Linter doesn't make MegaLinter fail even if errors are found", + "title": "(removed) TERRAFORM_CHECKOV: Linter doesn't make MegaLinter fail even if errors are found", "type": "boolean" }, "TERRAFORM_CHECKOV_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/TERRAFORM_CHECKOV_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "TERRAFORM_CHECKOV: Maximum number of errors allowed", + "title": "(removed) TERRAFORM_CHECKOV: Maximum number of errors allowed", "type": "number" }, "TERRAFORM_CHECKOV_FILE_EXTENSIONS": { @@ -14847,7 +16488,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_CHECKOV: Override descriptor/linter matching files extensions", + "title": "(removed) TERRAFORM_CHECKOV: Override descriptor/linter matching files extensions", "type": "array" }, "TERRAFORM_CHECKOV_FILE_NAMES_REGEX": { @@ -14859,17 +16500,17 @@ "items": { "type": "string" }, - "title": "TERRAFORM_CHECKOV: Override descriptor/linter matching file name regex", + "title": "(removed) TERRAFORM_CHECKOV: Override descriptor/linter matching file name regex", "type": "array" }, "TERRAFORM_CHECKOV_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/TERRAFORM_CHECKOV_FILTER_REGEX_EXCLUDE", - "title": "TERRAFORM_CHECKOV: Excluding Regex", + "title": "(removed) TERRAFORM_CHECKOV: Excluding Regex", "type": "string" }, "TERRAFORM_CHECKOV_FILTER_REGEX_INCLUDE": { "$id": "#/properties/TERRAFORM_CHECKOV_FILTER_REGEX_INCLUDE", - "title": "TERRAFORM_CHECKOV: Including Regex", + "title": "(removed) TERRAFORM_CHECKOV: Including Regex", "type": "string" }, "TERRAFORM_CHECKOV_POST_COMMANDS": { @@ -14886,7 +16527,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "TERRAFORM_CHECKOV: Define or override a list of bash commands to run after the linter", + "title": "(removed) TERRAFORM_CHECKOV: Define or override a list of bash commands to run after the linter", "type": "array" }, "TERRAFORM_CHECKOV_PRE_COMMANDS": { @@ -14903,7 +16544,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "TERRAFORM_CHECKOV: Define or override a list of bash commands to run before the linter", + "title": "(removed) TERRAFORM_CHECKOV: Define or override a list of bash commands to run before the linter", "type": "array" }, "TERRAFORM_FILTER_REGEX_EXCLUDE": { @@ -14926,7 +16567,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_KICS: Custom arguments", + "title": "(removed) TERRAFORM_KICS: Custom arguments", "type": [ "array", "string" @@ -14942,7 +16583,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_KICS: CLI Executable", + "title": "(removed) TERRAFORM_KICS: CLI Executable", "type": "array" }, "TERRAFORM_KICS_CLI_LINT_MODE": { @@ -14952,19 +16593,19 @@ "file", "project" ], - "title": "TERRAFORM_KICS: Override default cli lint mode", + "title": "(removed) TERRAFORM_KICS: Override default cli lint mode", "type": "string" }, "TERRAFORM_KICS_DISABLE_ERRORS": { "$id": "#/properties/TERRAFORM_KICS_DISABLE_ERRORS", "default": false, - "title": "TERRAFORM_KICS: Linter doesn't make MegaLinter fail even if errors are found", + "title": "(removed) TERRAFORM_KICS: Linter doesn't make MegaLinter fail even if errors are found", "type": "boolean" }, "TERRAFORM_KICS_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/TERRAFORM_KICS_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "TERRAFORM_KICS: Maximum number of errors allowed", + "title": "(removed) TERRAFORM_KICS: Maximum number of errors allowed", "type": "number" }, "TERRAFORM_KICS_FILE_EXTENSIONS": { @@ -14976,7 +16617,7 @@ "items": { "type": "string" }, - "title": "TERRAFORM_KICS: Override descriptor/linter matching files extensions", + "title": "(removed) TERRAFORM_KICS: Override descriptor/linter matching files extensions", "type": "array" }, "TERRAFORM_KICS_FILE_NAMES_REGEX": { @@ -14988,17 +16629,17 @@ "items": { "type": "string" }, - "title": "TERRAFORM_KICS: Override descriptor/linter matching file name regex", + "title": "(removed) TERRAFORM_KICS: Override descriptor/linter matching file name regex", "type": "array" }, "TERRAFORM_KICS_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/TERRAFORM_KICS_FILTER_REGEX_EXCLUDE", - "title": "TERRAFORM_KICS: Excluding Regex", + "title": "(removed) TERRAFORM_KICS: Excluding Regex", "type": "string" }, "TERRAFORM_KICS_FILTER_REGEX_INCLUDE": { "$id": "#/properties/TERRAFORM_KICS_FILTER_REGEX_INCLUDE", - "title": "TERRAFORM_KICS: Including Regex", + "title": "(removed) TERRAFORM_KICS: Including Regex", "type": "string" }, "TERRAFORM_KICS_POST_COMMANDS": { @@ -15015,7 +16656,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "TERRAFORM_KICS: Define or override a list of bash commands to run after the linter", + "title": "(removed) TERRAFORM_KICS: Define or override a list of bash commands to run after the linter", "type": "array" }, "TERRAFORM_KICS_PRE_COMMANDS": { @@ -15032,7 +16673,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "TERRAFORM_KICS: Define or override a list of bash commands to run before the linter", + "title": "(removed) TERRAFORM_KICS: Define or override a list of bash commands to run before the linter", "type": "array" }, "TERRAFORM_TERRAFORM_FMT_ARGUMENTS": { @@ -15154,6 +16795,16 @@ "title": "TERRAFORM_TERRAFORM_FMT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "TERRAFORM_TERRAFORM_FMT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TERRAFORM_TERRAFORM_FMT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TERRAFORM_TERRAFORM_FMT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TERRAFORM_TERRAFORM_FMT: Unsecured env variables", + "type": "array" + }, "TERRAFORM_TERRAGRUNT_ARGUMENTS": { "$id": "#/properties/TERRAFORM_TERRAGRUNT_ARGUMENTS", "description": "TERRAFORM_TERRAGRUNT: User custom arguments to add in linter CLI call", @@ -15293,6 +16944,16 @@ "title": "TERRAFORM_TERRAGRUNT: Custom config file path", "type": "string" }, + "TERRAFORM_TERRAGRUNT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TERRAFORM_TERRAGRUNT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TERRAFORM_TERRAGRUNT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TERRAFORM_TERRAGRUNT: Unsecured env variables", + "type": "array" + }, "TERRAFORM_TERRASCAN_ARGUMENTS": { "$id": "#/properties/TERRAFORM_TERRASCAN_ARGUMENTS", "description": "TERRAFORM_TERRASCAN: User custom arguments to add in linter CLI call", @@ -15405,6 +17066,16 @@ "title": "TERRAFORM_TERRASCAN: Custom config file path", "type": "string" }, + "TERRAFORM_TERRASCAN_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TERRAFORM_TERRASCAN_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TERRAFORM_TERRASCAN and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TERRAFORM_TERRASCAN: Unsecured env variables", + "type": "array" + }, "TERRAFORM_TFLINT_ARGUMENTS": { "$id": "#/properties/TERRAFORM_TFLINT_ARGUMENTS", "description": "TERRAFORM_TFLINT: User custom arguments to add in linter CLI call", @@ -15434,16 +17105,6 @@ "title": "TERRAFORM_TFLINT: CLI Executable", "type": "array" }, - "TERRAFORM_TFLINT_CLI_LINT_MODE": { - "$id": "#/properties/TERRAFORM_TFLINT_CLI_LINT_MODE", - "default": "file", - "enum": [ - "file", - "project" - ], - "title": "TERRAFORM_TFLINT: Override default cli lint mode", - "type": "string" - }, "TERRAFORM_TFLINT_CONFIG_FILE": { "$id": "#/properties/TERRAFORM_TFLINT_CONFIG_FILE", "default": ".tflint.hcl", @@ -15494,16 +17155,6 @@ "title": "TERRAFORM_TFLINT: Override descriptor/linter matching file name regex", "type": "array" }, - "TERRAFORM_TFLINT_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/TERRAFORM_TFLINT_FILTER_REGEX_EXCLUDE", - "title": "TERRAFORM_TFLINT: Excluding Regex", - "type": "string" - }, - "TERRAFORM_TFLINT_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/TERRAFORM_TFLINT_FILTER_REGEX_INCLUDE", - "title": "TERRAFORM_TFLINT: Including Regex", - "type": "string" - }, "TERRAFORM_TFLINT_POST_COMMANDS": { "$id": "#/properties/TERRAFORM_TFLINT_POST_COMMANDS", "examples": [ @@ -15544,6 +17195,16 @@ "title": "TERRAFORM_TFLINT: Custom config file path", "type": "string" }, + "TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TERRAFORM_TFLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TERRAFORM_TFLINT: Unsecured env variables", + "type": "array" + }, "TEXT_REPORTER": { "$id": "#/properties/TEXT_REPORTER", "default": true, @@ -15698,6 +17359,16 @@ "title": "TSX_ESLINT: Custom config file path", "type": "string" }, + "TSX_ESLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TSX_ESLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TSX_ESLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TSX_ESLINT: Unsecured env variables", + "type": "array" + }, "TSX_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/TSX_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for TSX descriptor", @@ -15862,6 +17533,16 @@ "title": "TYPESCRIPT_ES: Custom config file path", "type": "string" }, + "TYPESCRIPT_ES_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TYPESCRIPT_ES_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TYPESCRIPT_ES and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TYPESCRIPT_ES: Unsecured env variables", + "type": "array" + }, "TYPESCRIPT_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/TYPESCRIPT_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for TYPESCRIPT descriptor", @@ -16005,6 +17686,16 @@ "title": "TYPESCRIPT_PRETTIER: Custom config file path", "type": "string" }, + "TYPESCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TYPESCRIPT_PRETTIER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TYPESCRIPT_PRETTIER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TYPESCRIPT_PRETTIER: Unsecured env variables", + "type": "array" + }, "TYPESCRIPT_STANDARD_ARGUMENTS": { "$id": "#/properties/TYPESCRIPT_STANDARD_ARGUMENTS", "description": "TYPESCRIPT_STANDARD: User custom arguments to add in linter CLI call", @@ -16025,7 +17716,7 @@ "$id": "#/properties/TYPESCRIPT_STANDARD_CLI_EXECUTABLE", "default": [ [ - "standard" + "ts-standard" ] ], "items": { @@ -16125,6 +17816,16 @@ "title": "TYPESCRIPT_STANDARD: Define or override a list of bash commands to run before the linter", "type": "array" }, + "TYPESCRIPT_STANDARD_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/TYPESCRIPT_STANDARD_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling TYPESCRIPT_STANDARD and its pre/post commands", + "items": { + "type": "string" + }, + "title": "TYPESCRIPT_STANDARD: Unsecured env variables", + "type": "array" + }, "UPDATED_SOURCES_REPORTER": { "$id": "#/properties/UPDATED_SOURCES_REPORTER", "title": "Activates/Deactivates updated sources reporter", @@ -16261,6 +17962,16 @@ "title": "VBDOTNET_DOTNET_FORMAT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "VBDOTNET_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/VBDOTNET_DOTNET_FORMAT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling VBDOTNET_DOTNET_FORMAT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "VBDOTNET_DOTNET_FORMAT: Unsecured env variables", + "type": "array" + }, "VBDOTNET_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/VBDOTNET_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for VBDOTNET descriptor", @@ -16401,6 +18112,16 @@ "title": "XML_XMLLINT: Define or override a list of bash commands to run before the linter", "type": "array" }, + "XML_XMLLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/XML_XMLLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling XML_XMLLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "XML_XMLLINT: Unsecured env variables", + "type": "array" + }, "YAML_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/YAML_FILTER_REGEX_EXCLUDE", "title": "Excluding regex filter for YAML descriptor", @@ -16544,6 +18265,16 @@ "title": "YAML_PRETTIER: Custom config file path", "type": "string" }, + "YAML_PRETTIER_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/YAML_PRETTIER_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling YAML_PRETTIER and its pre/post commands", + "items": { + "type": "string" + }, + "title": "YAML_PRETTIER: Unsecured env variables", + "type": "array" + }, "YAML_V8R_ARGUMENTS": { "$id": "#/properties/YAML_V8R_ARGUMENTS", "description": "YAML_V8R: User custom arguments to add in linter CLI call", @@ -16677,6 +18408,16 @@ "title": "YAML_V8R: Custom config file path", "type": "string" }, + "YAML_V8R_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/YAML_V8R_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling YAML_V8R and its pre/post commands", + "items": { + "type": "string" + }, + "title": "YAML_V8R: Unsecured env variables", + "type": "array" + }, "YAML_YAMLLINT_ARGUMENTS": { "$id": "#/properties/YAML_YAMLLINT_ARGUMENTS", "description": "YAML_YAMLLINT: User custom arguments to add in linter CLI call", @@ -16816,6 +18557,19 @@ "description": "YAML_YAMLLINT: Path where to find linter configuration file", "title": "YAML_YAMLLINT: Custom config file path", "type": "string" + }, + "YAML_YAMLLINT_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/YAML_YAMLLINT_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling YAML_YAMLLINT and its pre/post commands", + "items": { + "type": "string" + }, + "title": "YAML_YAMLLINT: Unsecured env variables", + "type": "array" } - } + }, + "required": [], + "title": "Command", + "type": "object" } diff --git a/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json b/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json index c71f35deeca..32259273988 100644 --- a/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json +++ b/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json @@ -45,6 +45,7 @@ "cupcake", "documentation", "dotnet", + "dotnetweb", "go", "java", "javascript", @@ -603,7 +604,8 @@ "regex_number", "regex_count", "regex_sum", - "total_lines" + "total_lines", + "sarif" ], "examples": [ "regex_number", @@ -787,6 +789,13 @@ "title": "Disabled", "type": "boolean" }, + "downgraded_reason": { + "$id": "#/properties/linters/items/properties/downgraded_reason", + "default": false, + "description": "Explanation about why the linter is downgraded", + "title": "Downgraded reason", + "type": "string" + }, "downgraded_version": { "$id": "#/properties/linters/items/properties/downgraded_version", "default": false, @@ -1037,6 +1046,13 @@ "title": "Is formatter", "type": "boolean" }, + "is_sbom": { + "$id": "#/properties/linters/items/properties/is_sbom", + "default": false, + "description": "If the linter is SBOM, set to true so extra properties will be returned", + "title": "Is SBOM", + "type": "boolean" + }, "lint_all_files": { "$id": "#/properties/linters/items/lint_all_files", "default": false, @@ -1055,7 +1071,7 @@ "$id": "#/properties/linters/items/properties/linter_banner_image_url", "description": "URL of an image used to build header of linter Markdown documentation", "examples": [ - "https://github.com/stylelint/stylelint/raw/master/identity/stylelint-icon-and-text-white.png" + "https://github.com/stylelint/stylelint/raw/main/identity/stylelint-icon-and-text-white.png" ], "format": "uri", "title": "Linter banner image URL", diff --git a/megalinter/descriptors/spell.megalinter-descriptor.yml b/megalinter/descriptors/spell.megalinter-descriptor.yml index 2ee5cd69403..cad5b0f0e90 100644 --- a/megalinter/descriptors/spell.megalinter-descriptor.yml +++ b/megalinter/descriptors/spell.megalinter-descriptor.yml @@ -147,3 +147,60 @@ linters: vscode: - name: Vale url: https://marketplace.visualstudio.com/items?itemName=errata-ai.vale-server + + # LYCHEE + - class: LycheeLinter + linter_name: lychee + name: SPELL_LYCHEE + test_folder: spell_lychee + can_output_sarif: false + descriptor_flavors: + - all_flavors + - cupcake + - documentation + linter_url: https://lychee.cli.rs + linter_repo: https://github.com/lycheeverse/lychee + linter_banner_image_url: https://raw.githubusercontent.com/lycheeverse/lychee/master/assets/banner.svg + linter_image_url: https://raw.githubusercontent.com/lycheeverse/lychee/master/assets/logo.svg + linter_rules_url: https://lychee.cli.rs/#/usage/cli + linter_rules_configuration_url: https://lychee.cli.rs/#/usage/config + linter_speed: 2 + lint_all_other_linters_files: false + lint_all_files: false + file_extensions: + - .md + - .mdx + - .markdown + - .html + - .htm + - .rst + - .txt + - .json + - .jsonc + - .json5 + - .yaml + - .yml + ignore_file_name: .lycheeignore + config_file_name: lychee.toml + cli_config_arg_name: --config + cli_help_arg_name: --help + cli_version_arg_name: --version + cli_lint_mode: list_of_files + cli_lint_errors_count: regex_number + cli_lint_errors_regex: "Errors\\.+([0-9]+)" + cli_lint_extra_args: + - --format + - detailed + - --no-progress + examples: + - lychee --format detailed --no-progress README.md info.txt test.html + - lychee --format detailed --no-progress README.md + - lychee --format detailed --no-progress test.html info.txt + - lychee --format detailed --no-progress --offline path/to/directory + - lychee --format detailed --no-progress https://raw.githubusercontent.com/lycheeverse/lychee/master/README.md + - 'lychee --format detailed --no-progress "~/projects/big_project/**/README.*"' + - 'lychee --format detailed --no-progress --glob-ignore-case --verbose "~/projects/**/[r]eadme.*"' + install: + dockerfile: + - FROM lycheeverse/lychee:latest-alpine as lychee + - COPY --link --from=lychee /usr/local/bin/lychee /usr/bin/ diff --git a/megalinter/descriptors/sql.megalinter-descriptor.yml b/megalinter/descriptors/sql.megalinter-descriptor.yml index b3770561c9c..cbfcb24d0c5 100644 --- a/megalinter/descriptors/sql.megalinter-descriptor.yml +++ b/megalinter/descriptors/sql.megalinter-descriptor.yml @@ -61,6 +61,7 @@ linters: - linter_name: tsqllint descriptor_flavors: - dotnet + - dotnetweb linter_url: https://github.com/tsqllint/tsqllint linter_repo: https://github.com/tsqllint/tsqllint linter_image_url: https://tsqllint.gallerycdn.vsassets.io/extensions/tsqllint/tsqllint/1.2.0/1528922982751/Microsoft.VisualStudio.Services.Icons.Default diff --git a/megalinter/descriptors/terraform.megalinter-descriptor.yml b/megalinter/descriptors/terraform.megalinter-descriptor.yml index 734729522a2..246c21daac7 100644 --- a/megalinter/descriptors/terraform.megalinter-descriptor.yml +++ b/megalinter/descriptors/terraform.megalinter-descriptor.yml @@ -20,16 +20,25 @@ linters: 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 + linter_text: | + > If you are using the GitHub action please use the `TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES: GITHUB_TOKEN` to prevent plugin download issues + cli_lint_mode: project config_file_name: .tflint.hcl + cli_config_extra_args: + - --recursive cli_sarif_args: - --format - sarif + variables: + - name: TERRAFORM_TFLINT_SECURED_ENV + default_value: true + description: Allows to send the full env to **tflint --init**. Initialized with default value `true`. Set to `false` to allow `tflint --init` to access your env vars. examples: - - "tflint myfile.tf" - - "tflint -c .tflint.hcl myfile.tf" + - "tflint" + - "tflint -c .tflint.hcl" install: dockerfile: - - FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint + - FROM ghcr.io/terraform-linters/tflint:v0.47.0 as tflint - COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ supported_platforms: platform: @@ -44,10 +53,10 @@ linters: - cupcake - 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_url: https://runterrascan.io/ + linter_repo: https://github.com/tenable/terrascan + linter_rules_url: https://runterrascan.io/docs/usage/ + linter_rules_configuration_url: https://runterrascan.io/docs/usage/config_options/ 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 @@ -117,9 +126,9 @@ linters: - linter_name: terraform-fmt name: TERRAFORM_TERRAFORM_FMT is_formatter: true - linter_url: https://www.terraform.io/docs/cli/commands/fmt.html + linter_url: https://developer.hashicorp.com/terraform/cli/commands/fmt linter_repo: https://github.com/hashicorp/terraform - linter_banner_image_url: https://www.terraform.io/assets/images/logo-hashicorp-3f10732f.svg + linter_banner_image_url: https://www.datocms-assets.com/2885/1629941242-logo-terraform-main.svg cli_executable: terraform cli_lint_extra_args: - "fmt" @@ -155,37 +164,3 @@ linters: url: https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform test_folder: terraform_fmt version_extract_regex: "(?<=Terraform v)\\d+(\\.\\d+)+" - # KICS - - linter_name: kics - name: TERRAFORM_KICS - descriptor_flavors: - - cupcake - - 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/ - linter_banner_image_url: https://raw.githubusercontent.com/checkmarx/kics/master/docs/img/logo/kics-hat-logo.png - linter_rules_inline_disable_url: https://docs.kics.io/latest/running-kics/#using_commands_on_scanned_files_as_comments - linter_megalinter_ref_url: https://docs.kics.io/latest/integrations/ - cli_config_arg_name: "--config" - cli_executable: kics - cli_lint_extra_args: - - scan - cli_lint_extra_args_after: - - --path - cli_version_arg_name: "version" - examples: - - "kics scan --path myfile.tf" - install: - dockerfile: - - FROM checkmarx/kics:alpine as kics - - COPY --link --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/ - test_folder: terraform_kics - supported_platforms: - platform: - - linux/amd64 - - linux/arm64 diff --git a/megalinter/descriptors/tsx.megalinter-descriptor.yml b/megalinter/descriptors/tsx.megalinter-descriptor.yml index a72f6cc75d8..a2abfc96265 100644 --- a/megalinter/descriptors/tsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/tsx.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: TSX descriptor_type: language descriptor_flavors: - cupcake + - dotnetweb - javascript file_extensions: - ".tsx" diff --git a/megalinter/descriptors/typescript.megalinter-descriptor.yml b/megalinter/descriptors/typescript.megalinter-descriptor.yml index 47e322c1ce4..146834463e6 100644 --- a/megalinter/descriptors/typescript.megalinter-descriptor.yml +++ b/megalinter/descriptors/typescript.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: TYPESCRIPT descriptor_type: language descriptor_flavors: - cupcake + - dotnetweb - javascript file_extensions: - ".ts" @@ -75,9 +76,6 @@ linters: - linux/amd64 - linux/arm64 ide: - atom: - - name: linter-eslint - url: https://atom.io/packages/linter-eslint brackets: - name: brackets-eslint url: https://github.com/brackets-userland/brackets-eslint @@ -104,47 +102,30 @@ linters: url: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint # STANDARD - class: TypeScriptStandardLinter - linter_name: standard + linter_name: ts-standard + name: TYPESCRIPT_STANDARD activation_rules: - type: variable - variable: JAVASCRIPT_DEFAULT_STYLE - expected_value: standard - default_value: standard + variable: TYPESCRIPT_STANDARD + expected_value: ts-standard + default_value: ts-standard linter_url: https://standardjs.com/ - linter_repo: https://github.com/standard/standard + linter_repo: https://github.com/standard/ts-standard linter_rules_url: https://standardjs.com/rules.html linter_banner_image_url: https://github.com/standard/standard/raw/master/sticker.png - name: TYPESCRIPT_STANDARD cli_lint_mode: list_of_files - cli_lint_extra_args: - - "--parser" - - "@typescript-eslint/parser" - - "--plugin" - - "@typescript-eslint/eslint-plugin" cli_lint_fix_arg_name: "--fix" examples: - - "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin myfile.ts" - - "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin --fix myfile.ts" + - "ts-standard myfile.ts" + - "ts-standard --fix myfile.ts" install: npm: - - standard - - "@typescript-eslint/eslint-plugin" - - "@typescript-eslint/parser" + - ts-standard supported_platforms: platform: - linux/amd64 - linux/arm64 ide: - atom: - - name: linter-js-standard - url: https://atom.io/packages/linter-js-standard - - name: linter-js-standard-engine - url: https://atom.io/packages/linter-js-standard-engine - - name: standard-formatter - url: https://atom.io/packages/standard-formatter - brackets: - - name: brackets-standard - url: https://github.com/ishamf/brackets-standard/ idea: - name: native support url: https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/ @@ -193,13 +174,6 @@ linters: - linux/amd64 - linux/arm64 ide: - atom: - - name: prettier-atom - url: https://github.com/prettier/prettier-atom - - name: atom-mprettier - url: https://github.com/t9md/atom-mprettier - - name: atom-miniprettier - url: https://github.com/duailibe/atom-miniprettier emacs: - name: prettier-emacs url: https://github.com/prettier/prettier-emacs diff --git a/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml b/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml index 6399b045caf..111fc5acc91 100644 --- a/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml +++ b/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml @@ -3,6 +3,7 @@ descriptor_label: "Visual Basic .NET" descriptor_type: language descriptor_flavors: - dotnet + - dotnetweb file_extensions: - ".vb" install: diff --git a/megalinter/flavor_factory.py b/megalinter/flavor_factory.py index 33b458e6775..7d4b943b1a1 100644 --- a/megalinter/flavor_factory.py +++ b/megalinter/flavor_factory.py @@ -47,6 +47,9 @@ def list_megalinter_flavors(): "cupcake": {"label": "MegaLinter for the most commonly used languages"}, "documentation": {"label": "Optimized for documentation projects"}, "dotnet": {"label": "Optimized for C, C++, C# or VB based projects"}, + "dotnetweb": { + "label": "Optimized for C, C++, C# or VB based projects with JS/TS" + }, "go": {"label": "Optimized for GO based projects"}, "java": {"label": "Optimized for JAVA based projects"}, "javascript": { diff --git a/megalinter/linters/LycheeLinter.py b/megalinter/linters/LycheeLinter.py new file mode 100644 index 00000000000..20de669c66c --- /dev/null +++ b/megalinter/linters/LycheeLinter.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +""" +Class for lychee +""" + +from megalinter import Linter + + +# ref: https://github.com/lycheeverse/lychee#commandline-parameters +class LycheeLinter(Linter): + def build_lint_command(self, file=None): + cmd = super().build_lint_command(file) + + # `--no-progress` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "--no-progress" in self.cli_lint_user_args: + cmd.pop(cmd.index("--no-progress")) + + # `-n` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "-n" in self.cli_lint_user_args: + cmd.pop(cmd.index("-n")) + + # `--format ` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "--format" in self.cli_lint_user_args: + cmd.pop(cmd.index("--format") + 1) + cmd.pop(cmd.index("--format")) + + # `-f ` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "-f" in self.cli_lint_user_args: + cmd.pop(cmd.index("-f") + 1) + cmd.pop(cmd.index("-f")) + + # `--output ` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "--output" in self.cli_lint_user_args: + cmd.pop(cmd.index("--output") + 1) + cmd.pop(cmd.index("--output")) + + # `--output ` has been sent by user in SPELL_LYCHEE_ARGUMENTS + # make sure that it's only once in the arguments list + if "-o" in self.cli_lint_user_args: + cmd.pop(cmd.index("-o") + 1) + cmd.pop(cmd.index("-o")) + + if self.cli_lint_mode == "project": + cmd.append(".") + + return cmd diff --git a/megalinter/linters/RakuLinter.py b/megalinter/linters/RakuLinter.py index d1d36cd20d1..72dbb6516d4 100644 --- a/megalinter/linters/RakuLinter.py +++ b/megalinter/linters/RakuLinter.py @@ -24,7 +24,9 @@ def before_lint_files(self): stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, - env=config.build_env(self.request_id), + env=config.build_env( + self.request_id, True, self.unsecured_env_variables + ), ) return_code = process.returncode return_stdout = megalinter.utils.decode_utf8(process.stdout) diff --git a/megalinter/linters/SyftLinter.py b/megalinter/linters/SyftLinter.py index 6b70319c8ed..2c7372e048d 100644 --- a/megalinter/linters/SyftLinter.py +++ b/megalinter/linters/SyftLinter.py @@ -31,6 +31,7 @@ def manage_sarif_output(self, _return_stdout): "properties": { "comment": "Generated by MegaLinter for syft", "docUrl": f"{ML_DOC_URL_DESCRIPTORS_ROOT}/descriptors/repository_syft/", + "isSBOM": True, }, "runs": [ { diff --git a/megalinter/linters/TfLintLinter.py b/megalinter/linters/TfLintLinter.py index 577e4b5e9bd..a8168356526 100644 --- a/megalinter/linters/TfLintLinter.py +++ b/megalinter/linters/TfLintLinter.py @@ -6,6 +6,7 @@ import logging import megalinter +from megalinter import config class TfLintLinter(megalinter.Linter): @@ -17,7 +18,22 @@ def before_lint_files(self): tflint_init_command += f" --config {self.config_file}" logging.debug("tflint before_lint_files: " + tflint_init_command) # Add to pre-commands - tflint_pre_command = {"command": tflint_init_command, "cwd": self.workspace} + tflint_secured_env = ( + False + if config.get(self.request_id, "TERRAFORM_TFLINT_SECURED_ENV", "true") + == "false" + else True + ) + tflint_pre_command = { + "command": tflint_init_command, + "cwd": self.workspace, + "secured_env": tflint_secured_env, + } if self.pre_commands is None: self.pre_commands = [] self.pre_commands.append(tflint_pre_command) + + def pre_test(self): + config.set_value( + self.request_id, "TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES", "GITHUB_TOKEN" + ) diff --git a/megalinter/linters/TrivySbomLinter.py b/megalinter/linters/TrivySbomLinter.py new file mode 100644 index 00000000000..b276361d4f8 --- /dev/null +++ b/megalinter/linters/TrivySbomLinter.py @@ -0,0 +1,55 @@ +#!/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_DESCRIPTORS_ROOT, +) + + +class TrivySbomLinter(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}.trivy-sbom.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( + "Trivy SBOM initial output file: " + json_file_str + ) + trivy_result_sbom = json.loads(json_file_str) + sarif_obj = { + "$schema": DEFAULT_SARIF_SCHEMA_URI, + "properties": { + "comment": "Generated by MegaLinter for TrivySBOM", + "docUrl": f"{ML_DOC_URL_DESCRIPTORS_ROOT}/descriptors/repository_trivy_sbom/", + "isSBOM": True, + }, + "runs": [ + { + "tool": { + "driver": { + "informationUri": "https://github.com/aquasecurity/trivy", + "name": "trivy", + "rules": [], + } + }, + "properties": {"megalinter": {"sbom": trivy_result_sbom}}, + "results": [], + } + ], + "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/linters/TypeScriptStandardLinter.py b/megalinter/linters/TypeScriptStandardLinter.py index 18d59aea4d0..c1335eb9778 100644 --- a/megalinter/linters/TypeScriptStandardLinter.py +++ b/megalinter/linters/TypeScriptStandardLinter.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ Use Standard to lint js files -https://github.com/standard/standard +https://github.com/standard/ts-standard """ from megalinter import Linter, utilstest diff --git a/megalinter/logger.py b/megalinter/logger.py index f964ab593f6..4a6886dae6e 100644 --- a/megalinter/logger.py +++ b/megalinter/logger.py @@ -75,7 +75,7 @@ def manage_upgrade_message(): ) logging.warning( c.yellow( - "MEGA-LINTER HAS A NEW V6 VERSION at https://github.com/oxsecurity/megalinter .\n" + "MEGA-LINTER HAS A NEW V7 VERSION at https://github.com/oxsecurity/megalinter .\n" + "Please upgrade your configuration by running the following command at the " + "root of your repository (requires node.js): \n" + c.green("npx mega-linter-runner --upgrade") @@ -115,10 +115,25 @@ def display_header(mega_linter): # logging.info("GITHUB_TOKEN: " + os.environ.get("GITHUB_TOKEN", "")) logging.info("GITHUB_RUN_ID: " + config.get(None, "GITHUB_RUN_ID", "")) logging.info("PAT: " + "set" if config.get(None, "PAT", "") != "" else "") + if config.exists(None, "PAT"): + logging.warning( + "You should not use PAT anymore, please use Github Permissions in your Github Actions job" + ) + logging.warning( + "Add permissions contents:write, issues: write and pull-requests: write" + ) + logging.warning( + "More details: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs" + ) # Display config variables for debug mode secured_env_variables = config.list_secured_variables(mega_linter.request_id) + secured_env_variables_regex = config.list_secured_variables_regexes( + secured_env_variables + ) for name, value in sorted(config.get_config(mega_linter.request_id).items()): - if name not in secured_env_variables: + if name not in secured_env_variables and not config.match_variable_regexes( + name, secured_env_variables_regex + ): logging.debug("" + name + "=" + str(value)) else: logging.debug("" + name + "=HIDDEN_BY_MEGALINTER") diff --git a/megalinter/pre_post_factory.py b/megalinter/pre_post_factory.py index ca00c624207..731d161c477 100644 --- a/megalinter/pre_post_factory.py +++ b/megalinter/pre_post_factory.py @@ -59,8 +59,18 @@ def run_command(command_info, log_key, mega_linter, linter=None): cwd = os.getcwd() if command_info.get("cwd", "root") == "workspace": cwd = mega_linter.workspace + # Secure env by default. Must be explicitly define to false in command definition to be disabled + if "secured_env" not in command_info: + command_info["secured_env"] = True command_info = complete_command(command_info) - subprocess_env = {**config.build_env(mega_linter.request_id, False)} + unsecured_env_variables = [] + if linter is not None: + unsecured_env_variables = linter.unsecured_env_variables + subprocess_env = { + **config.build_env( + mega_linter.request_id, command_info["secured_env"], unsecured_env_variables + ) + } add_in_logs( linter, log_key, diff --git a/megalinter/reporters/ConsoleReporter.py b/megalinter/reporters/ConsoleReporter.py index 8e82f85952d..3b91311b8c0 100644 --- a/megalinter/reporters/ConsoleReporter.py +++ b/megalinter/reporters/ConsoleReporter.py @@ -70,7 +70,7 @@ def produce_report(self): status = ( "✅" if linter.status == "success" and linter.return_code == 0 - else "◬" + else "⚠️" if linter.status != "success" and linter.return_code == 0 else "❌" ) diff --git a/megalinter/reporters/GithubCommentReporter.py b/megalinter/reporters/GithubCommentReporter.py index cddcfca17d2..fde46088013 100644 --- a/megalinter/reporters/GithubCommentReporter.py +++ b/megalinter/reporters/GithubCommentReporter.py @@ -91,8 +91,14 @@ def produce_report(self): else config.get(self.master.request_id, "GITHUB_TOKEN") ) g = github.Github(base_url=github_api_url, login_or_token=github_auth) - repo = g.get_repo(github_repo) - + try: + repo = g.get_repo(github_repo) + except github.GithubException as e: + logging.warning(f"Unable to connect to GitHub repository: {e}") + return + except Exception as e: + logging.warning(f"Unable to connect to GitHub repository: {e}") + return # Try to get PR from GITHUB_REF pr_list = [] ref = os.environ.get("GITHUB_REF", "") @@ -139,13 +145,10 @@ def produce_report(self): except github.GithubException as e: logging.warning( f"[GitHub Comment Reporter] Unable to post pull request comment: {str(e)}.\n" - "To enable this function, please :\n" - "1. Create a Personal Access Token (https://docs.github.com/en/free-pro-team@" - "latest/github/authenticating-to-github/creating-a-personal-access-token)\n" - "2. Create a secret named PAT with its value on your repository (https://docs." - "github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets#" - "creating-encrypted-secrets-for-a-repository)" - "3. Define PAT={{secrets.PAT}} in your GitHub action environment variables" + "To enable this function, please add permissions in your Github Actions Workflow:\n" + "permissions:\n" + " issues: write\n" + " pull-requests: write" ) except Exception as e: logging.warning( diff --git a/megalinter/reporters/GitlabCommentReporter.py b/megalinter/reporters/GitlabCommentReporter.py index e96f9ca1b6b..8c851e94690 100644 --- a/megalinter/reporters/GitlabCommentReporter.py +++ b/megalinter/reporters/GitlabCommentReporter.py @@ -97,7 +97,11 @@ def produce_report(self): if gitlab_certificate_path != "": # Update certificates and set cert path in gitlab options run_command( - {"cwd": "root", "command": "update-ca-certificates"}, + { + "cwd": "root", + "command": "update-ca-certificates", + "secured_env": False, + }, "GitlabCommentReporter", self.master, ) diff --git a/megalinter/reporters/RedisLinterReporter.py b/megalinter/reporters/RedisLinterReporter.py new file mode 100644 index 00000000000..45b2dc97e8f --- /dev/null +++ b/megalinter/reporters/RedisLinterReporter.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +""" +Web Hook linter reporter +Post linter results to a Web Hook +""" +import logging + +from megalinter import Reporter, config +from megalinter.utils_reporter import ( + build_linter_reporter_external_result, + build_linter_reporter_start_message, + send_redis_message, +) + + +class RedisLinterReporter(Reporter): + name = "REDIS_LINTER_REPORTER" + scope = "linter" + + redis_host: str | None = None + redis_port: int | None = None + redis_method: str | None = None # Stream or PubSub + stream_key: str | None = None + pubsub_channel: str | None = None + message_data: object | None = None + + def __init__(self, params=None): + # Deactivate Redis Linter Reporter by default + self.is_active = False + self.processing_order = 20 # Run after text reporter + super().__init__(params) + + def manage_activation(self): + if config.get(self.master.request_id, "REDIS_REPORTER", "false") == "true": + if config.exists(self.master.request_id, "REDIS_REPORTER_HOST"): + self.is_active = True + self.redis_host = config.get( + self.master.request_id, "REDIS_REPORTER_HOST" + ) + self.redis_port = int( + config.get(self.master.request_id, "REDIS_REPORTER_PORT", 6379) + ) + self.redis_method = config.get( + self.master.request_id, "REDIS_REPORTER_METHOD", "PUBSUB" + ) + # Use Redis Stream + if self.redis_method == "STREAM": + self.stream_key = config.get( + self.master.request_id, + "REDIS_LINTER_REPORTER_STREAM", + "megalinter:stream:linter_results", + ) + else: + # Use redis PubSub + self.pubsub_channel = config.get( + self.master.request_id, + "REDIS_LINTER_REPORTER_PUBSUB_CHANNEL", + "megalinter:pubsub:" + self.master.request_id, + ) + else: + logging.error( + "You need to define REDIS_REPORTER_HOST to use RedisLinterReporter" + ) + + # Send message when linter is about to start + def initialize(self): + start_message = build_linter_reporter_start_message( + self, redis_stream=(self.redis_method == "STREAM") + ) + send_redis_message(self, start_message) + + # Send message when linter is completed to Redis Stream + def produce_report(self): + self.message_data = build_linter_reporter_external_result( + self, redis_stream=(self.redis_method == "STREAM") + ) + send_redis_message(self, self.message_data) diff --git a/megalinter/reporters/RedisReporter.py b/megalinter/reporters/RedisReporter.py new file mode 100644 index 00000000000..3d9a6b339c8 --- /dev/null +++ b/megalinter/reporters/RedisReporter.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +""" +Web Hook linter reporter +Post linter results to a Web Hook +""" +import logging + +from megalinter import Reporter, config +from megalinter.utils_reporter import ( + build_reporter_external_result, + build_reporter_start_message, + send_redis_message, +) + + +class RedisReporter(Reporter): + name = "REDIS_REPORTER" + scope = "mega-linter" + + redis_host: str | None = None + redis_port: int | None = None + redis_method: str | None = None # Stream or PubSub + stream_key: str | None = None + pubsub_channel: str | None = None + message_data: object | None = None + + def __init__(self, params=None): + # Deactivate Redis Linter Reporter by default + self.is_active = False + self.processing_order = 20 # Run after text reporter + super().__init__(params) + + def manage_activation(self): + if config.get(self.master.request_id, "REDIS_REPORTER", "false") == "true": + if config.exists(self.master.request_id, "REDIS_REPORTER_HOST"): + self.is_active = True + self.redis_host = config.get( + self.master.request_id, "REDIS_REPORTER_HOST" + ) + self.redis_port = int( + config.get(self.master.request_id, "REDIS_REPORTER_PORT", 6379) + ) + self.redis_method = config.get( + self.master.request_id, "REDIS_REPORTER_METHOD", "PUBSUB" + ) + # Use Redis Stream + if self.redis_method == "STREAM": + self.stream_key = config.get( + self.master.request_id, + "REDIS_REPORTER_STREAM", + "megalinter:stream:results", + ) + else: + # Use redis PubSub + self.pubsub_channel = config.get( + self.master.request_id, + "REDIS_REPORTER_PUBSUB_CHANNEL", + "megalinter:pubsub:" + self.master.request_id, + ) + else: + logging.error( + "You need to define REDIS_REPORTER_HOST to use RedisReporter" + ) + + # Send message when linter is about to start + def initialize(self): + start_message = build_reporter_start_message( + self, redis_stream=(self.redis_method == "STREAM") + ) + send_redis_message(self, start_message) + + # Send message when linter is completed to Redis Stream + def produce_report(self): + self.message_data = build_reporter_external_result( + self, redis_stream=(self.redis_method == "STREAM") + ) + send_redis_message(self, self.message_data) diff --git a/megalinter/reporters/WebHookLinterReporter.py b/megalinter/reporters/WebHookLinterReporter.py index 5ef546321dd..bdb6d46187b 100644 --- a/megalinter/reporters/WebHookLinterReporter.py +++ b/megalinter/reporters/WebHookLinterReporter.py @@ -3,13 +3,11 @@ Web Hook linter reporter Post linter results to a Web Hook """ -import json import logging -import os import requests from megalinter import Reporter, config -from megalinter.constants import ML_DOC_URL_DESCRIPTORS_ROOT +from megalinter.utils_reporter import build_linter_reporter_external_result class WebHookLinterReporter(Reporter): @@ -39,9 +37,7 @@ def manage_activation(self): # Snd webHook to remote server def produce_report(self): - success_msg = "No errors were found in the linting process" - error_not_blocking = "Errors were detected but are considered not blocking" - error_msg = f"Found {self.master.total_number_errors} errors" + self.web_hook_data = build_linter_reporter_external_result(self) headers = { "accept": "application/json", "content-type": "application/json", @@ -50,52 +46,6 @@ def produce_report(self): headers[ "authorization" ] = f"Bearer {config.get(self.master.request_id,'WEBHOOK_REPORTER_BEARER_TOKEN')}" - status_message = ( - success_msg - if self.master.status == "success" and self.master.return_code == 0 - else error_not_blocking - if self.master.status == "error" and self.master.return_code == 0 - else error_msg - ) - lang_lower = self.master.descriptor_id.lower() - linter_name_lower = self.master.linter_name.lower().replace("-", "_") - linter_doc_url = ( - f"{ML_DOC_URL_DESCRIPTORS_ROOT}/{lang_lower}_{linter_name_lower}" - ) - self.web_hook_data = { - "status": "success" if self.master.return_code == 0 else "error", - "errorNumber": self.master.total_number_errors, - "statusMessage": status_message, - "elapsedTime": round(self.master.elapsed_time_s, 2), - "descriptorId": self.master.descriptor_id, - "linterId": self.master.linter_name, - "linterKey": self.master.name, - "linterVersion": self.master.get_linter_version(), - "requestId": self.master.master.request_id, - "docUrl": linter_doc_url, - "isFormatter": self.master.is_formatter, - } - if ( - self.master.sarif_output_file is not None - and os.path.isfile(self.master.sarif_output_file) - and os.path.getsize(self.master.sarif_output_file) > 0 - ): - with open( - self.master.sarif_output_file, "r", encoding="utf-8" - ) as linter_sarif_file: - self.web_hook_data["outputSarif"] = json.load(linter_sarif_file) - else: - text_report_sub_folder = config.get( - self.master.request_id, "TEXT_REPORTER_SUB_FOLDER", "linters_logs" - ) - text_file_name = ( - f"{self.report_folder}{os.path.sep}" - f"{text_report_sub_folder}{os.path.sep}" - f"{self.master.status.upper()}-{self.master.name}.log" - ) - if os.path.isfile(text_file_name): - with open(text_file_name, "r", encoding="utf-8") as text_file: - self.web_hook_data["outputText"] = text_file.read() try: response = requests.post( self.hook_url, headers=headers, json=self.web_hook_data diff --git a/megalinter/server.py b/megalinter/server.py deleted file mode 100644 index b4c3dd5f7a8..00000000000 --- a/megalinter/server.py +++ /dev/null @@ -1,481 +0,0 @@ -# !/usr/bin/env python3 -""" -Start MegaLinter server -""" -import logging -import os -import tempfile -import typing -from enum import StrEnum -from typing import List -from uuid import uuid1 - -import git -from fastapi import BackgroundTasks, FastAPI, HTTPException, Response, status -from megalinter import MegaLinter, alpaca, config -from pydantic import BaseModel, Field -from pygments import lexers - -print("MegaLinter Server starting…") -logging.config.fileConfig("logging.conf", disable_existing_loggers=False) # type: ignore[attr-defined] -logger = logging.getLogger(__name__) -alpaca() -app = FastAPI( - title="MegaLinter Server", version=config.get(None, "BUILD_VERSION", "DEV") -) - -global running_process_number, max_running_process_number, ANALYSIS_EXECUTIONS -running_process_number = 0 -max_running_process_number = int(os.environ.get("MAX_RUNNING_PROCESS_NUMBER", 5)) -total_process_number_run = 0 -ANALYSIS_EXECUTIONS: List[typing.Any] = [] - -############### -#### API #### # noqa: E266 -############### - - -# Analysis status enum -class AnalysisStatus(StrEnum): - NEW = "new" - IN_PROGRESS = "in-progress" - COMPLETE = "complete" - - -# Analysis request model -class AnalysisRequestInput(BaseModel): - snippet: str | None = Field( - default=None, - description="Input any code snippet", - example="#!/usr/bin/env python3", - ) - repositoryUrl: str | None = Field( - default=None, - description="Input a public repository url", - example="https://github.com/nvuillam/github-dependents-info", - ) - webHookUrl: str | None = Field( - default=None, - description="WebHook URL to receive results", - example="https://9faea506-7e84-4f5d-a68f-86bbdfgT5t.mock.pstmn.io/webhook", - ) - - class Config: - schema_extra = { - "example": { - "repositoryUrl": "https://github.com/nvuillam/github-dependents-info", - "webHookUrl": "https://9faea506-7e84-4f5d-a68f-86bbdfgT5t.mock.pstmn.io/webhook", - } - } - - -# Linter status result -class AnalysisLinterResultStatus(StrEnum): - SUCCESS = "success" - ERROR = "error" - - -# Linter result -class AnalysisLinterResult(BaseModel): - requestId: str = Field( - description="Analysis request id", - example="530661a2-e266-11ed-9ab4-683e263f13c0", - ) - status: AnalysisLinterResultStatus = Field( - description="Status of the linter (success, error)", - example="success", - ) - statusMessage: str = Field( - description="Status message", - example="No errors were found in the linting process", - ) - errorNumber: int = Field( - description="Number of errors found", - example=8, - ) - elapsedTime: float = Field( - description="Elapsed time to run the linter", - example=1.62, - ) - descriptorId: str = Field( - description="MegaLinter descriptor identifier", - example="PYTHON", - ) - linterId: str = Field( - description="MegaLinter linter name", - example="ruff", - ) - linterKey: str = Field( - description="MegaLinter linter key", - example="PYTHON_RUFF", - ) - isFormatter: bool = Field( - description="True if the linter is flagged as a formatter", - example=True, - ) - docUrl: str = Field( - description="URL of the linter documentation on MegaLinter online docs", - example="https://megalinter.io/latest/descriptors/python_ruff/", - ) - outputText: str | None = Field( - default=None, - description="Console output of the linter process, when available", - example="", - ) - outputSarif: object | None = Field( - default=None, - description="Sarif output of the linter process, when available", - example={ - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "runs": [ - { - "columnKind": "utf16CodeUnits", - "properties": { - "megalinter": { - "docUrl": "https://megalinter.io/latest/descriptors/repository_devskim", - "linterKey": "REPOSITORY_DEVSKIM", - "linterVersion": "0.6.5", - } - }, - "results": [], - "tool": { - "driver": { - "fullName": "Microsoft DevSkim Command Line Interface", - "informationUri": "https://megalinter.io/latest/descriptors/repository_devskim", - "name": "devskim (MegaLinter REPOSITORY_DEVSKIM)", - "version": "0.6.5+331482234a", - } - }, - } - ], - "version": "2.1.0", - }, - ) - - -# Full Analysis result -class AnalysisRequest(BaseModel): - id: str = Field( - description="Analysis request unique id", - example="530661a2-e266-11ed-9ab4-683e263f13c0", - ) - status: AnalysisStatus = Field( - description="Analysis request status (new,in-progress,complete)", - example="complete", - ) - repository: str | None = Field( - description="Repository used for analysis", - example="https://github.com/nvuillam/github-dependents-info", - ) - requestInput: AnalysisRequestInput | None = Field( - description="Input initially sent that generated this analysis request", - example={ - "repositoryUrl": "https://github.com/nvuillam/github-dependents-info", - "webHookUrl": "https://9faea506-7e84-4f5d-a68f-86bbdfgT5t.mock.pstmn.io/webhook", - }, - ) - snippetLanguage: str | None = Field( - description="Guessed snippet language", - example="python", - ) - results: List[AnalysisLinterResult] = Field( - default=[], description="All linter analysis results" - ) - - -class ServerInfo(BaseModel): - version: str = Field( - description="Version of MegaLinter Server", - example="6.21.0", - ) - runningProcessNumber: int = Field( - description="Number of currently running analysis", - example=6, - ) - maxRunningProcessNumber: int = Field( - description="Maximum Number of parallel running analysis", - example=10, - ) - totalProcessRunNumber: int = Field( - description="Total Number of analysis since the server has been started", - example=345, - ) - available: bool = Field( - description="Returns true if the server is available (total process number not currently reached)", - example=True, - ) - - class Config: - schema_extra = { - "example": { - "version": "6.21.0", - "runningProcessNumber": 4, - "maxRunningProcessNumber": 10, - "totalProcessRunNumber": 412, - "available": True, - } - } - - -# Get status of MegaLinter server -@app.get( - "/", - response_model=ServerInfo, - status_code=status.HTTP_200_OK, - summary="Returns MegaLinter server version and workload info", -) -async def server_info(): - global running_process_number, max_running_process_number, total_process_number_run - return { - "version": app.version, - "runningProcessNumber": running_process_number, - "maxRunningProcessNumber": max_running_process_number, - "totalProcessRunNumber": total_process_number_run, - "available": running_process_number < max_running_process_number, - } - - -# Get info about a request -@app.get( - "/analysis/{item_id}", - response_model=AnalysisRequest, - status_code=status.HTTP_200_OK, - summary="Returns status (and result if available) of an analysis", -) -async def get_analysis_by_id(item_id): - global ANALYSIS_EXECUTIONS - analysis_executor: AnalysisExecutor = AnalysisExecutor.findById(item_id) - if analysis_executor is not None: - return analysis_executor.toAnalysisRequest() - raise HTTPException( - status_code=404, detail=f"Unable to find analysis request {item_id}" - ) - - -# Find request by repository url -@app.get( - "/analysis/", - response_model=AnalysisRequest, - status_code=status.HTTP_200_OK, - summary="Find an existing analysis using repository url as criteria", -) -async def get_analysis_by_repo(repo: str): - global ANALYSIS_EXECUTIONS - analysis_executor: AnalysisExecutor = AnalysisExecutor.findByRepository(repo) - if analysis_executor is not None: - return analysis_executor.toAnalysisRequest() - raise HTTPException( - status_code=404, detail=f"Unable to find analysis request for repository {repo}" - ) - - -# Post a new request to MegaLinter -@app.post( - "/analysis", - response_model=AnalysisRequest, - status_code=status.HTTP_201_CREATED, - summary="Requests a new analysis using repository url or snippet", - description="""If the analysis initialization is successful, an id will be returned. - If webHookUrl is provided, everytime a linter will be completed, the result will be sent to this HTTP webhook - """, -) -async def request_analysis( - background_tasks: BackgroundTasks, - item: AnalysisRequestInput, -) -> Response: - # Check server is available - global running_process_number, max_running_process_number, total_process_number_run - if running_process_number >= max_running_process_number: - raise HTTPException( - status_code=423, - detail=f"The server is already processing the max number of requests ({max_running_process_number})", - ) - # Increment number of processing requests - total_process_number_run += 1 - running_process_number += 1 - analysis_executor = AnalysisExecutor() - analysis_executor.initialize(item) - analysis_executor.initialize_files() - analysis_executor.save() - background_tasks.add_task(start_analysis, analysis_executor.id) - return analysis_executor.toAnalysisRequest() - - -########################## -### Analysis Execution ### # noqa: E266 -########################## - - -# Outside method to start analysis as a background task so HTTP response can be sent before -def start_analysis(analysis_request_id: str): - analysis_executor: AnalysisExecutor = AnalysisExecutor.findById(analysis_request_id) - analysis_executor.process() - global running_process_number - running_process_number -= 1 - - -# Analysis processor class -class AnalysisExecutor: - id: str | None = None - status: AnalysisStatus | None = None - repository: str | None = None - request_input: AnalysisRequestInput | None = None - snippet_language: str | None = None - workspace: str | None = None - web_hook_url: str | None = None - results: List = [] - - # Find analysis request from unique id: Could be using external database in the future - @staticmethod - def findById(static_analysis_id: str): - global ANALYSIS_EXECUTIONS - for analysis_executor in ANALYSIS_EXECUTIONS: - analysis_executor2: AnalysisExecutor = analysis_executor - if analysis_executor2.id == static_analysis_id: - return analysis_executor2 - return None - - # Find analysis request from unique key, like a repository url - @staticmethod - def findByRepository(repository: str): - global ANALYSIS_EXECUTIONS - for analysis_executor in ANALYSIS_EXECUTIONS: - analysis_executor2: AnalysisExecutor = analysis_executor - if analysis_executor2.repository == repository: - return analysis_executor2 - return None - - # Initialize analysis request and assign an unique Id - def initialize(self, request_input: AnalysisRequestInput): - self.id = str(uuid1()) - self.status = AnalysisStatus.NEW - self.request_input = request_input - if request_input.webHookUrl: - self.web_hook_url = request_input.webHookUrl - logger.info(f"Analysis request {self.id} has been initialized") - - # Initialize files for analysis - def initialize_files(self): - # Clone repo from provided url - if self.request_input.repositoryUrl: - self.init_from_repository() - return - # Detect language and create temporary workspace with file - elif self.request_input.snippet: - self.init_from_snippet() - return - # Nothing to create a request ! - self.stop_request() - raise HTTPException( - status_code=422, - detail="Unable to initialize files for analysis", # Unprocessable content - ) - - # Create uniform temp directories - def create_temp_dir(self): - return tempfile.mkdtemp(prefix="ct-megalinter-x") - - # Init by cloning a remote repository - def init_from_repository(self): - temp_dir = self.create_temp_dir() - try: - git.Repo.clone_from(self.request_input.repositoryUrl, temp_dir) - except Exception as e: - self.stop_request() - raise HTTPException( - status_code=404, detail=f"Unable to clone repository\n{str(e)}" - ) - logger.info(f"Cloned {self.request_input.repositoryUrl} in temp dir {temp_dir}") - self.workspace = temp_dir - self.repository = self.request_input.repositoryUrl - - # Init from user snippet - def init_from_snippet(self): - # Guess language using pygments - code_lexer = lexers.guess_lexer(self.request_input.snippet) - if not code_lexer: - self.stop_request() - raise HTTPException( - status_code=404, detail="Unable to detect language from snippet" - ) - self.snippet_language = code_lexer.name - logger.info(f"Guessed snipped language: {self.snippet_language}") - # Build file name - if len(code_lexer.filenames) > 0: - if "*." in code_lexer.filenames[0]: - snippet_file_name = "snippet" + code_lexer.filenames[0].replace("*", "") - else: - snippet_file_name = code_lexer.filenames[0] - else: - self.stop_request() - raise HTTPException( - status_code=404, - detail=f"Unable build file from {code_lexer.name} snippet", - ) - logger.info(f"Snippet file name: {snippet_file_name}") - temp_dir = self.create_temp_dir() - snippet_file = os.path.join(temp_dir, snippet_file_name) - with open(snippet_file, "w", encoding="utf-8") as file: - file.write(self.request_input.snippet) - self.workspace = temp_dir - - # Build result for output - def toAnalysisRequest(self): - analysis_request = AnalysisRequest( - id=self.id, - status=self.status, - repository=self.repository, - requestInput=self.request_input, - ) - if self.repository: - analysis_request.repository = self.repository - if self.snippet_language: - analysis_request.snippetLanguage = self.snippet_language - if len(self.results) > 0: - analysis_request.results = self.results - return analysis_request - - # Stop request and release a slot for a next request - def stop_request(self): - global running_process_number - running_process_number -= 1 - - # Change status of analysis request - def change_status(self, status: AnalysisStatus): - self.status = status - logger.info(f"Analysis request {self.id} status change: {status}") - self.save() - - # Save state of Analysis Request (Could be using external database in the future) - def save(self): - global ANALYSIS_EXECUTIONS - existing_analysis_request = AnalysisExecutor.findById(self.id) - if existing_analysis_request is not None: - for index, x in enumerate(ANALYSIS_EXECUTIONS): - if x.id == self.id: - ANALYSIS_EXECUTIONS[index] = self - break - else: - ANALYSIS_EXECUTIONS.append(self) - logger.info(f"Analysis request {self.id} has been saved") - - # Run MegaLinter - def process(self): - mega_linter = MegaLinter.Megalinter( - { - "cli": False, - "request_id": self.id, - "workspace": self.workspace, - "SARIF_REPORTER": "true", - "WEBHOOK_REPORTER": "true", - "WEBHOOK_REPORTER_URL": self.web_hook_url, - } - ) - self.change_status(AnalysisStatus.IN_PROGRESS) - mega_linter.run() - for linters in mega_linter.linters: - for reporter in linters.reporters: - if reporter.name == "WEBHOOK_REPORTER" and reporter.web_hook_data: - self.results.append(reporter.web_hook_data) - self.change_status(AnalysisStatus.COMPLETE) - del mega_linter diff --git a/megalinter/setup.py b/megalinter/setup.py index 985ea3eaac3..6a28376efec 100644 --- a/megalinter/setup.py +++ b/megalinter/setup.py @@ -29,6 +29,7 @@ "requests", "terminaltables", "importlib-metadata>=3.10", + "redis", ], zip_safe=False, ) diff --git a/megalinter/tests/test_megalinter/config_test.py b/megalinter/tests/test_megalinter/config_test.py index 5f90962a661..561273e9d55 100644 --- a/megalinter/tests/test_megalinter/config_test.py +++ b/megalinter/tests/test_megalinter/config_test.py @@ -269,12 +269,14 @@ def test_config_secure_env_vars_custom(self): "GITLAB_ACCESS_TOKEN_MEGALINTER": "GITLAB_ACCESS_TOKEN_MEGALINTER_VALUE", "SECRET_VAR": "SECRET_VALUE", "OX_API_KEY": "1234", - "SECURED_ENV_VARIABLES": "SECRET_VAR,OX_API_KEY", + "SECURED_ENV_VARIABLES": "SECRET_VAR,OX_API_KEY,(VAR_.*_REGEX),UNSECURED_VAR", "workspace": ".", "LOG_LEVEL": "DEBUG", + "VAR_WITH_REGEX": "aXw32", + "UNSECURED_VAR": "visible", }, ) - cli_env = config.build_env(request_id) + cli_env = config.build_env(request_id, True, ["UNSECURED_VAR"]) self.assertTrue(cli_env["VISIBLE_VAR"] == "VALUE", "VISIBLE_VAR is visible") self.assertTrue( cli_env["GITHUB_TOKEN"] == "HIDDEN_BY_MEGALINTER", @@ -286,10 +288,17 @@ def test_config_secure_env_vars_custom(self): self.assertTrue( cli_env["OX_API_KEY"] == "HIDDEN_BY_MEGALINTER", "OX_API_KEY is not visible" ) + self.assertTrue( + cli_env["VAR_WITH_REGEX"] == "HIDDEN_BY_MEGALINTER", + "VAR_WITH_REGEX is not visible", + ) self.assertTrue( cli_env["GITLAB_ACCESS_TOKEN_MEGALINTER"] == "HIDDEN_BY_MEGALINTER", "GITLAB_ACCESS_TOKEN_MEGALINTER is not visible", ) + self.assertTrue( + cli_env["UNSECURED_VAR"] == "visible", "UNSECURED_VAR is visible" + ) usage_stdout = io.StringIO() with contextlib.redirect_stdout(usage_stdout): Megalinter( @@ -324,10 +333,11 @@ def test_config_secure_env_vars_override_default(self): "GITHUB_TOKEN": "GITHUB_TOKEN_VALUE", "SECRET_VAR": "SECRET_VALUE", "OX_API_KEY": "1234", - "SECURED_ENV_VARIABLES_DEFAULT": "SECRET_VAR", + "SECURED_ENV_VARIABLES_DEFAULT": "SECRET_VAR,(VAR_.*_REGEX)", "SECURED_ENV_VARIABLES": "OX_API_KEY", "workspace": ".", "LOG_LEVEL": "DEBUG", + "VAR_WITH_REGEX": "aXw32", }, ) cli_env = config.build_env(request_id) @@ -338,6 +348,10 @@ def test_config_secure_env_vars_override_default(self): self.assertTrue( cli_env["SECRET_VAR"] == "HIDDEN_BY_MEGALINTER", "SECRET_VAR is not visible" ) + self.assertTrue( + cli_env["VAR_WITH_REGEX"] == "HIDDEN_BY_MEGALINTER", + "VAR_WITH_REGEX is not visible", + ) self.assertTrue( cli_env["OX_API_KEY"] == "HIDDEN_BY_MEGALINTER", "OX_API_KEY is not visible" ) diff --git a/megalinter/tests/test_megalinter/filters_test.py b/megalinter/tests/test_megalinter/filters_test.py index ed7f05e7112..16317c483b4 100644 --- a/megalinter/tests/test_megalinter/filters_test.py +++ b/megalinter/tests/test_megalinter/filters_test.py @@ -68,7 +68,7 @@ def test_filter_files_with_ignored_files(self): filtered_files = utils.filter_files( all_files=all_files, filter_regex_include=None, - filter_regex_exclude=None, + filter_regex_exclude=[None], file_names_regex=[], file_extensions=["", ".md", ".ext"], ignored_files=ignored_files, @@ -95,7 +95,7 @@ def test_filter_files_with_file_extensions(self): filtered_files = utils.filter_files( all_files=all_files, filter_regex_include=None, - filter_regex_exclude=None, + filter_regex_exclude=[], file_names_regex=[], file_extensions=file_extensions, ignored_files=[], @@ -104,3 +104,47 @@ def test_filter_files_with_file_extensions(self): self.assertListEqual( sorted(filtered_files), sorted(expected), f"check {file_extensions}" ) + + def test_filter_regex_exclude_single_level(self): + all_files = [ + "index.html", + "target/index.html", + ] + filtered_files = utils.filter_files( + all_files=all_files, + filter_regex_include=None, + filter_regex_exclude=["(^index.html)"], + file_names_regex=[], + file_extensions=["*"], + ignored_files=[], + ignore_generated_files=False, + ) + self.assertListEqual( + sorted(filtered_files), + sorted(["target/index.html"]), + "check regex_exclude_multilevel", + ) + + def test_filter_regex_exclude_multilevel(self): + all_files = [ + "should/be/excluded/descriptor-level/test.md", + "target/foo.md", + "should/be/excluded/descriptor-level/test2.md", + "should/be/excluded/linter-level/test.md", + "should/be/excluded/linter-level/test2.md", + "target/foo2.ext", + ] + filtered_files = utils.filter_files( + all_files=all_files, + filter_regex_include=None, + filter_regex_exclude=["(descriptor-level)", "(linter-level)"], + file_names_regex=[], + file_extensions=[".md"], + ignored_files=[], + ignore_generated_files=False, + ) + self.assertListEqual( + sorted(filtered_files), + sorted(["target/foo.md"]), + "check regex_exclude_multilevel", + ) diff --git a/megalinter/tests/test_megalinter/linters/repository_grype_test.py b/megalinter/tests/test_megalinter/linters/repository_grype_test.py new file mode 100644 index 00000000000..ba09ea4305d --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_grype_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter grype +This class has been automatically @generated by .automation/build.py, please don't update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_grype_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "grype" diff --git a/megalinter/tests/test_megalinter/linters/terraform_kics_test.py b/megalinter/tests/test_megalinter/linters/repository_kics_test.py similarity index 68% rename from megalinter/tests/test_megalinter/linters/terraform_kics_test.py rename to megalinter/tests/test_megalinter/linters/repository_kics_test.py index ee6c990f648..0f616d1bf62 100644 --- a/megalinter/tests/test_megalinter/linters/terraform_kics_test.py +++ b/megalinter/tests/test_megalinter/linters/repository_kics_test.py @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for TERRAFORM linter kics +Unit tests for REPOSITORY linter kics This class has been automatically @generated by .automation/build.py, please don't update it manually """ @@ -9,6 +9,6 @@ from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot -class terraform_kics_test(TestCase, LinterTestRoot): - descriptor_id = "TERRAFORM" +class repository_kics_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" linter_name = "kics" diff --git a/megalinter/tests/test_megalinter/linters/repository_trivy_sbom_test.py b/megalinter/tests/test_megalinter/linters/repository_trivy_sbom_test.py new file mode 100644 index 00000000000..edfcc355b0e --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_trivy_sbom_test.py @@ -0,0 +1,46 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter trivy-sbom +This class has been automatically @generated by .automation/build.py, please don't update it manually +""" + +import os +import unittest +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_trivy_sbom_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "trivy-sbom" + + def test_success(self): + self.check_if_another_test_suite() + super().test_success() + + def test_failure(self): + raise unittest.SkipTest("Skipped because SBOM generation can not fail") + + def test_get_linter_version(self): + self.check_if_another_test_suite() + super().test_get_linter_version() + + def test_get_linter_help(self): + self.check_if_another_test_suite() + super().test_get_linter_help() + + def test_report_tap(self): + self.check_if_another_test_suite() + super().test_report_tap() + + def test_report_sarif(self): + raise unittest.SkipTest("Skipped because SBOM generation can not fail") + + def test_format_fix(self): + self.check_if_another_test_suite() + super().test_format_fix() + + def check_if_another_test_suite(self): + if os.environ.get("SINGLE_LINTER", "") == "REPOSITORY_TRIVY": + raise unittest.SkipTest("Skipped because unrelated test suite") diff --git a/megalinter/tests/test_megalinter/linters/repository_trufflehog_test.py b/megalinter/tests/test_megalinter/linters/repository_trufflehog_test.py new file mode 100644 index 00000000000..74f9ffd75a4 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_trufflehog_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter trufflehog +This class has been automatically @generated by .automation/build.py, please don't update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_trufflehog_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "trufflehog" diff --git a/megalinter/tests/test_megalinter/linters/spell_lychee_test.py b/megalinter/tests/test_megalinter/linters/spell_lychee_test.py new file mode 100644 index 00000000000..b986e599866 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/spell_lychee_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for SPELL linter lychee +This class has been automatically @generated by .automation/build.py, please don't update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class spell_lychee_test(TestCase, LinterTestRoot): + descriptor_id = "SPELL" + linter_name = "lychee" diff --git a/megalinter/tests/test_megalinter/linters/typescript_standard_test.py b/megalinter/tests/test_megalinter/linters/typescript_standard_test.py index ce639822f5d..d2a62ebf9f2 100644 --- a/megalinter/tests/test_megalinter/linters/typescript_standard_test.py +++ b/megalinter/tests/test_megalinter/linters/typescript_standard_test.py @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for TYPESCRIPT linter standard +Unit tests for TYPESCRIPT linter ts-standard This class has been automatically @generated by .automation/build.py, please don't update it manually """ @@ -11,4 +11,4 @@ class typescript_standard_test(TestCase, LinterTestRoot): descriptor_id = "TYPESCRIPT" - linter_name = "standard" + linter_name = "ts-standard" diff --git a/megalinter/utils.py b/megalinter/utils.py index 5f538a192e0..639abceece4 100644 --- a/megalinter/utils.py +++ b/megalinter/utils.py @@ -92,7 +92,7 @@ def get_excluded_directories(request_id): def filter_files( all_files: Sequence[str], filter_regex_include: Optional[str], - filter_regex_exclude: Optional[str], + filter_regex_exclude: Sequence[str], file_names_regex: Sequence[str], file_extensions: Any, ignored_files: Optional[Sequence[str]], @@ -108,9 +108,12 @@ def filter_files( filter_regex_include_object = ( re.compile(filter_regex_include) if filter_regex_include else None ) - filter_regex_exclude_object = ( - re.compile(filter_regex_exclude) if filter_regex_exclude else None - ) + filter_regex_exclude_objects = [] + for filter_regex_exclude_item in filter_regex_exclude: + filter_regex_exclude_object = ( + re.compile(filter_regex_exclude_item) if filter_regex_exclude_item else None + ) + filter_regex_exclude_objects += [filter_regex_exclude_object] file_names_regex_object = re.compile("|".join(file_names_regex)) filtered_files = [] file_contains_regex_object = ( @@ -148,14 +151,23 @@ def filter_files( base_file_name = os.path.basename(file) _, file_extension = os.path.splitext(base_file_name) # Skip according to FILTER_REGEX_INCLUDE - if filter_regex_include_object and not filter_regex_include_object.search( - file_with_workspace + if filter_regex_include_object and ( + not filter_regex_include_object.search(file) + # Compatibility with v6 regexes + and not filter_regex_include_object.search(file_with_workspace) ): continue - # Skip according to FILTER_REGEX_EXCLUDE - if filter_regex_exclude_object and filter_regex_exclude_object.search( - file_with_workspace - ): + # Skip according to FILTER_REGEX_EXCLUDE list + excluded_by_regex = False + for filter_regex_exclude_object in filter_regex_exclude_objects: + if filter_regex_exclude_object and ( + filter_regex_exclude_object.search(file) + # Compatibility with v6 regexes + or filter_regex_exclude_object.search(file_with_workspace) + ): + excluded_by_regex = True + break + if excluded_by_regex is True: continue # Skip according to file extension (only if lint_all_other_linter_files is false or file_extensions is defined) @@ -233,7 +245,7 @@ def list_active_reporters_for_scope(scope, reporter_init_params): continue reporters += [reporter] # Sort reporters by name - reporters = sorted(reporters, key=lambda r: (r.processing_order, r.name)) + reporters = sorted(reporters, key=lambda r: r.processing_order) return reporters @@ -328,11 +340,11 @@ def format_bullet_list(files): return "{}{}".format(prefix, file_list) -def find_json_in_stdout(stdout: str): +def find_json_in_stdout(stdout: str, sarif=True): # Try using full stdout found_json = truncate_json_from_string(stdout) if found_json != "": - sarif_json = extract_sarif_json(found_json) + sarif_json = extract_sarif_json(found_json, sarif) if sarif_json != "": return sarif_json # Try to find a json single line within stdout @@ -341,14 +353,14 @@ def find_json_in_stdout(stdout: str): for line in stdout_lines: if line.strip().startswith("{"): json_unique_line = truncate_json_from_string(line) - sarif_json = extract_sarif_json(json_unique_line) + sarif_json = extract_sarif_json(json_unique_line, sarif) if sarif_json != "": return sarif_json # Try using regex pattern = regex.compile(r"\{(?:[^{}]|(?R))*\}") json_regex_results = pattern.findall(stdout) for json_regex_result in json_regex_results: - sarif_json = extract_sarif_json(json_regex_result) + sarif_json = extract_sarif_json(json_regex_result, sarif) if sarif_json != "": return sarif_json # SARIF json not found in stdout @@ -363,10 +375,12 @@ def truncate_json_from_string(string_with_json_inside: str): return "" -def extract_sarif_json(json_text: str): +def extract_sarif_json(json_text: str, sarif=True): try: json_obj = json.loads(json_text) - if "runs" in json_obj: + if sarif is False: + sarif_json = json.dumps(json_obj, indent=4) + elif "runs" in json_obj: sarif_json = json.dumps(json_obj, indent=4) else: sarif_json = "" diff --git a/megalinter/utils_reporter.py b/megalinter/utils_reporter.py index 23e1ea0fd58..e9ec7af68a5 100644 --- a/megalinter/utils_reporter.py +++ b/megalinter/utils_reporter.py @@ -1,3 +1,4 @@ +import json import logging import os import subprocess @@ -13,6 +14,7 @@ ML_REPO_ISSUES_URL, ) from pytablewriter import MarkdownTableWriter +from redis import Redis def build_markdown_summary(reporter_self, action_run_url): @@ -208,15 +210,174 @@ def log_section_end(section_key): # Convert SARIF into human readable text def convert_sarif_to_human(sarif_in, request_id) -> str: sarif_fmt_command = "sarif-fmt" - process = subprocess.run( - sarif_fmt_command, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - text=True, - input=sarif_in + "\n", - env=config.build_env(request_id), - ) - return_code = process.returncode - output = utils.decode_utf8(process.stdout) + try: + process = subprocess.run( + sarif_fmt_command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + input=sarif_in + "\n", + env=config.build_env(request_id), + ) + return_code = process.returncode + output = utils.decode_utf8(process.stdout) + except Exception as e: + return_code = 1 + output = sarif_in + logging.warning("Unable to call sarif-fmt: " + str(e)) logging.debug("Sarif to human result: " + str(return_code) + "\n" + output) return output + + +def build_reporter_start_message(reporter, redis_stream=False) -> dict: + result = { + "messageType": "megalinterStart", + "megaLinterStatus": "created", + "linters": [], + "requestId": reporter.master.request_id, + } + linterResults = [] + for linter in reporter.master.linters: + if linter.is_active is True: + linterResults += [get_linter_infos(linter)] + result["linters"] = linterResults + return manage_redis_stream(result, redis_stream) + + +def build_reporter_external_result(reporter, redis_stream=False) -> dict: + result = { + "messageType": "megalinterComplete", + "megaLinterStatus": "completed", + "requestId": reporter.master.request_id, + } + return manage_redis_stream(result, redis_stream) + + +def build_linter_reporter_start_message(reporter, redis_stream=False) -> dict: + result = {"messageType": "linterStart", "linterStatus": "started"} + result = result | get_linter_infos(reporter.master) + return manage_redis_stream(result, redis_stream) + + +def build_linter_reporter_external_result(reporter, redis_stream=False) -> dict: + success_msg = "No errors were found in the linting process" + error_not_blocking = "Errors were detected but are considered not blocking" + error_msg = f"Found {reporter.master.total_number_errors} errors" + status_message = ( + success_msg + if reporter.master.status == "success" and reporter.master.return_code == 0 + else error_not_blocking + if reporter.master.status == "error" and reporter.master.return_code == 0 + else error_msg + ) + result = { + "messageType": "linterComplete", + "linterStatus": "success" if reporter.master.return_code == 0 else "error", + "linterErrorNumber": reporter.master.total_number_errors, + "linterStatusMessage": status_message, + "linterElapsedTime": round(reporter.master.elapsed_time_s, 2), + } + if reporter.master.lint_command_log is not None: + result["linterCliCommand"] = reporter.master.lint_command_log + result = result | get_linter_infos(reporter.master) + if ( + reporter.master.sarif_output_file is not None + and os.path.isfile(reporter.master.sarif_output_file) + and os.path.getsize(reporter.master.sarif_output_file) > 0 + ): + with open( + reporter.master.sarif_output_file, "r", encoding="utf-8" + ) as linter_sarif_file: + result["outputSarif"] = json.load(linter_sarif_file) + else: + text_report_sub_folder = config.get( + reporter.master.request_id, "TEXT_REPORTER_SUB_FOLDER", "linters_logs" + ) + text_file_name = ( + f"{reporter.report_folder}{os.path.sep}" + f"{text_report_sub_folder}{os.path.sep}" + f"{reporter.master.status.upper()}-{reporter.master.name}.log" + ) + if os.path.isfile(text_file_name): + with open(text_file_name, "r", encoding="utf-8") as text_file: + result["outputText"] = text_file.read() + json_in_stdout = utils.find_json_in_stdout(result["outputText"], False) + if json_in_stdout != "": + result["outputJson"] = json.loads(json_in_stdout) + else: + logging.warning( + "External Message: Unable to find linter output, " + "there is a probably an error within MegaLinter Worker" + ) + result[ + "outputText" + ] = f"Internal error: unable to find linter output in {text_file_name}" + return manage_redis_stream(result, redis_stream) + + +def get_linter_infos(linter): + lang_lower = linter.descriptor_id.lower() + linter_name_lower = linter.linter_name.lower().replace("-", "_") + linter_doc_url = f"{ML_DOC_URL_DESCRIPTORS_ROOT}/{lang_lower}_{linter_name_lower}" + linter_infos = { + "descriptorId": linter.descriptor_id, + "linterId": linter.linter_name, + "linterKey": linter.name, + "linterVersion": linter.get_linter_version(), + "linterCliLintMode": linter.cli_lint_mode, + "requestId": linter.master.request_id, + "docUrl": linter_doc_url, + "isFormatter": linter.is_formatter, + "isSBOM": linter.is_sbom, + } + if linter.cli_lint_mode in ["file", "list_of_files"]: + linter_infos["filesNumber"] = len(linter.files) + return linter_infos + + +def manage_redis_stream(result, redis_stream): + # Redis does not accept certain types of values: convert them + if redis_stream is True: + for result_key, result_val in result.items(): + if isinstance(result_val, dict): + result[result_key] = json.dumps(result_val) + elif isinstance(result_val, bool): + result[result_key] = int(result_val) + return result + + +def send_redis_message(reporter_self, message_data): + try: + redis = Redis( + host=reporter_self.redis_host, port=reporter_self.redis_port, db=0 + ) + logging.debug("REDIS Connection: " + str(redis.info())) + if reporter_self.redis_method == "STREAM": + resp = redis.xadd(reporter_self.stream_key, message_data) + else: + resp = redis.publish(reporter_self.pubsub_channel, json.dumps(message_data)) + logging.info("REDIS RESP" + str(resp)) + except ConnectionError as e: + if reporter_self.scope == "linter": + logging.warning( + f"[Redis Linter Reporter] Error posting message for {reporter_self.master.descriptor_id}" + f" with {reporter_self.master.linter_name}: Connection error {str(e)}" + ) + else: + logging.warning( + f"[Redis Reporter] Error posting message for MegaLinter: Connection error {str(e)}" + ) + except Exception as e: + if reporter_self.scope == "linter": + logging.warning( + f"[Redis Linter Reporter] Error posting message for {reporter_self.master.descriptor_id}" + f" with {reporter_self.master.linter_name}: Error {str(e)}" + ) + logging.warning( + "[Redis Linter Reporter] Redis Message data: " + str(message_data) + ) + else: + logging.warning( + f"[Redis Reporter] Error posting message for MegaLinter: Error {str(e)}" + ) + logging.warning("[Redis Reporter] Redis Message data: " + str(message_data)) diff --git a/megalinter/utilstest.py b/megalinter/utilstest.py index 2d7642fed9a..e98f5f94ff0 100644 --- a/megalinter/utilstest.py +++ b/megalinter/utilstest.py @@ -78,6 +78,9 @@ def linter_test_setup(params=None): config.set_value(request_id, "OUTPUT_DETAIL", "detailed") config.set_value(request_id, "PLUGINS", "") config.set_value(request_id, "GITHUB_STATUS_REPORTER", "false") + config.set_value(request_id, "GITHUB_COMMENT_REPORTER", "false") + config.set_value(request_id, "CONFIG_REPORTER", "false") + config.set_value(request_id, "FLAVOR_SUGGESTIONS", "false") config.set_value(request_id, "IGNORE_GITIGNORED_FILES", "true") config.set_value(request_id, "VALIDATE_ALL_CODEBASE", "true") config.set_value(request_id, "CLEAR_REPORT_FOLDER", "true") @@ -134,7 +137,7 @@ def test_linter_success(linter, test_self): 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 + # todo: remove when bug is fixed https://github.com/tenable/terrascan/issues/1036 or linter.linter_name == "terrascan" ): raise unittest.SkipTest("Linter has been disabled") @@ -158,6 +161,8 @@ def test_linter_success(linter, test_self): "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, "PRINT_ALL_FILES": "true", + "GITHUB_COMMENT_REPORTER": "false", + "GITHUB_STATUS_REPORTER": "false", "request_id": test_self.request_id, } env_vars.update(linter.test_variables) @@ -221,6 +226,8 @@ def test_linter_failure(linter, test_self): "REPORT_OUTPUT_FOLDER": tmp_report_folder, "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, + "GITHUB_COMMENT_REPORTER": "false", + "GITHUB_STATUS_REPORTER": "false", "request_id": test_self.request_id, } env_vars_failure.update(linter.test_variables) @@ -444,6 +451,8 @@ def test_linter_report_tap(linter, test_self): "OUTPUT_DETAIL": "detailed", "REPORT_OUTPUT_FOLDER": tmp_report_folder, "ENABLE_LINTERS": linter.name, + "GITHUB_COMMENT_REPORTER": "false", + "GITHUB_STATUS_REPORTER": "false", "request_id": test_self.request_id, } env_vars.update(linter.test_variables) @@ -525,6 +534,8 @@ def test_linter_report_sarif(linter, test_self): "ENABLE_LINTERS": linter.name, "LOG_LEVEL": "DEBUG", "LOG_FILE": "megalinter.log", + "GITHUB_COMMENT_REPORTER": "false", + "GITHUB_STATUS_REPORTER": "false", "request_id": test_self.request_id, } env_vars.update(linter.test_variables) @@ -642,6 +653,8 @@ def test_linter_format_fix(linter, test_self): "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, "PRINT_ALL_FILES": "true", + "GITHUB_COMMENT_REPORTER": "false", + "GITHUB_STATUS_REPORTER": "false", "request_id": test_self.request_id, } env_vars.update(linter.test_variables) diff --git a/mkdocs.yml b/mkdocs.yml index 62a5a0f270a..f5459e37ada 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,7 +5,7 @@ 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 55 languages, 24 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.[Upgrade to MegaLinter v7 !]https://github.com/oxsecurity/megalinter/issues/2608 +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 55 languages, 24 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.Switch to MegaLinter v7 ! # site_description-end copyright: Copyright © 2022 OX Security & Nicolas Vuillamy theme: @@ -60,8 +60,29 @@ extra: nav: - "Home": "index.md" - "Quick Start": "quick-start.md" - - "Installation": "installation.md" - - "Configuration": "configuration.md" + - "Installation": + - "Assisted Installation": "install-assisted.md" + - "Which version to use ?": "install-version.md" + - "GitHub Actions": "install-github.md" + - "Gitlab CI": "install-gitlab.md" + - "Azure Pipelines": "install-azure.md" + - "Bitbucket Pipelines": "install-bitbucket.md" + - "Jenkins": "install-jenkins.md" + - "Concourse CI": "install-concourse.md" + - "Drone CI": "install-drone.md" + - "Docker (CLI)": "install-docker.md" + - "Run locally": "install-locally.md" + - "Configuration": + - ".mega-linter.yml file": "config-file.md" + - "Common Variables": "config-variables.md" + - "Activation / Deactivation": "config-activation.md" + - "Filtering files": "config-filtering.md" + - "Apply fixes": "config-apply-fixes.md" + - "Linter scopes variables": "config-linters.md" + - "Pre-commands": "config-precommands.md" + - "Post-commands": "config-postcommands.md" + - "ENV variables security": "config-variables-security.md" + - "CLI lint mode": "config-cli-lint-mode.md" - "Linters": - "All supported linters": "supported-linters.md" - "Languages linters": @@ -177,7 +198,7 @@ nav: - "TYPESCRIPT": - "All TYPESCRIPT linters": "descriptors/typescript.md" - "eslint": "descriptors/typescript_eslint.md" - - "standard": "descriptors/typescript_standard.md" + - "ts-standard": "descriptors/typescript_ts_standard.md" - "prettier": "descriptors/typescript_prettier.md" - "Visual Basic .NET (VBDOTNET)": - "All Visual Basic .NET (VBDOTNET) linters": "descriptors/vbdotnet.md" @@ -284,7 +305,6 @@ nav: - "terrascan": "descriptors/terraform_terrascan.md" - "terragrunt": "descriptors/terraform_terragrunt.md" - "terraform-fmt": "descriptors/terraform_terraform_fmt.md" - - "kics": "descriptors/terraform_kics.md" # tooling_format-end - "Other checks": - "All other linters": "./supported-linters/#other" @@ -299,15 +319,20 @@ nav: - "dustilock": "descriptors/repository_dustilock.md" - "git_diff": "descriptors/repository_git_diff.md" - "gitleaks": "descriptors/repository_gitleaks.md" + - "grype": "descriptors/repository_grype.md" + - "kics": "descriptors/repository_kics.md" - "secretlint": "descriptors/repository_secretlint.md" - "semgrep": "descriptors/repository_semgrep.md" - "syft": "descriptors/repository_syft.md" - "trivy": "descriptors/repository_trivy.md" + - "trivy-sbom": "descriptors/repository_trivy_sbom.md" + - "trufflehog": "descriptors/repository_trufflehog.md" - "SPELL": - "All SPELL linters": "descriptors/spell.md" - "cspell": "descriptors/spell_cspell.md" - "proselint": "descriptors/spell_proselint.md" - "vale": "descriptors/spell_vale.md" + - "lychee": "descriptors/spell_lychee.md" # other-end - "Reporters": - "All reporters": "reporters.md" @@ -331,6 +356,7 @@ nav: - "cupcake": "flavors/cupcake.md" - "documentation": "flavors/documentation.md" - "dotnet": "flavors/dotnet.md" + - "dotnetweb": "flavors/dotnetweb.md" - "go": "flavors/go.md" - "java": "flavors/java.md" - "javascript": "flavors/javascript.md" @@ -357,5 +383,7 @@ nav: - "Contribute": - "How-to Contribute": "how-to-contribute.md" - "Contributing Guide": "contributing.md" - - "License": "license.md" + - "License": + - "AGPL V3 License": "license.md" + - "License explanations": "license-explanations.md" - "Changelog": "CHANGELOG.md" diff --git a/package.json b/package.json index 4abee5cff6f..3f5091d4dae 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ ] }, "dependencies": { - "@cspell/dict-medicalterms": "^3.0.0" + "@cspell/dict-medicalterms": "^3.0.0", + "markdown-table-formatter": "^1.4.0" } } diff --git a/server/Dockerfile b/server/Dockerfile new file mode 100644 index 00000000000..234ca761b0d --- /dev/null +++ b/server/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.11-alpine + +RUN apk add --upgrade --no-cache git + +WORKDIR / + +COPY logging.conf logging.conf + +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +COPY server /server +COPY server/requirements.txt requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + diff --git a/server/Dockerfile-dev b/server/Dockerfile-dev new file mode 100644 index 00000000000..d2a4d8b951b --- /dev/null +++ b/server/Dockerfile-dev @@ -0,0 +1,39 @@ +FROM hadolint/hadolint:v2.12.0-alpine as hadolint +FROM trufflesecurity/trufflehog:latest as trufflehog + +FROM python:3.11-alpine + +WORKDIR / + +RUN apk add \ + bash \ + git \ + nodejs \ + npm + +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin + +COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint +COPY --link --from=trufflehog /usr/bin/trufflehog /usr/bin/ + +ENV MEGALINTER_FLAVOR=security + +# Core MegaLinter +COPY megalinter /megalinter + + + +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# MegaLinter Server +COPY server /server +COPY server/requirements.txt requirements.txt +RUN pip install -r requirements.txt + +COPY logging.conf logging.conf diff --git a/server/__init__.py b/server/__init__.py new file mode 100644 index 00000000000..8ed7c79c9cf --- /dev/null +++ b/server/__init__.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +__all__ = ["server", "server_worker", "types"] diff --git a/server/docker-compose-dev.yml b/server/docker-compose-dev.yml new file mode 100644 index 00000000000..a1bfe0ff280 --- /dev/null +++ b/server/docker-compose-dev.yml @@ -0,0 +1,65 @@ +version: "3" +services: + # Redis server to manage request queues and results + megalinter_server_redis: + image: redis:7.0.11-alpine + ports: + - "6379:6379" + volumes: + - ./redis:/data + + # Server to receive requests and post them in redis queue + megalinter_server_api: + image: megalinter-server:dev + command: uvicorn server.server:app --host 0.0.0.0 --port 8000 + environment: + - MEGALINTER_SERVER=true + - MEGALINTER_SERVER_REDIS_HOST=megalinter_server_redis + - MEGALINTER_SERVER_REDIS_PORT=6379 + - MEGALINTER_SERVER_REDIS_QUEUE=megalinter:queue:requests + ports: + - "8000:8000" + depends_on: + - megalinter_server_redis + links: + - megalinter_server_redis + volumes: + - ./server-files:/tmp/server-files + + # Worker to process requests and post results in redis stream or pubsub + megalinter_server_worker: + image: megalinter-server:dev + # command: rq worker --url redis://megalinter_server_redis:6379 megalinter:queue:requests + command: rq worker-pool --num-workers 5 --url redis://megalinter_server_redis:6379 megalinter:queue:requests # Uncomment to try worker pool + environment: + # Megalinter variables + - FLAVOR_SUGGESTIONS=false + - REPOSITORY_TRUFFLEHOG_ARGUMENTS=--json + # Worker variables + - MEGALINTER_SERVER=true + - LOG_LEVEL=DEBUG # Much more logs including run commands + # Redis Reporter info: can be different than Redis job Queue server + - REDIS_REPORTER=true + - REDIS_REPORTER_HOST=megalinter_server_redis + - REDIS_REPORTER_PORT=6379 + + # Use either of the following variables groups depending you want to use redis stream messages or pubsub + + # Stream mode + #- REDIS_LINTER_REPORTER_METHOD=STREAM + #- REDIS_LINTER_REPORTER_STREAM=megalinter:stream:linter_results + + # PubSub mode (by default so commented) + # - REDIS_REPORTER_METHOD=PUBSUB + # - REDIS_LINTER_REPORTER_METHOD=PUBSUB + # - REDIS_ERRORS_REPORTER_METHOD=PUBSUB + ## You can force a channel. If not set, megalinter:pubsub:REQUEST_ID will be used (request_id is returned in initial POST body) + # - REDIS_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:results + # - REDIS_LINTER_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:linter_results + # - REDIS_ERRORS_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:errors + depends_on: + - megalinter_server_redis + links: + - megalinter_server_redis + volumes: + - ./server-files:/tmp/server-files diff --git a/server/docker-compose.yml b/server/docker-compose.yml new file mode 100644 index 00000000000..261948da823 --- /dev/null +++ b/server/docker-compose.yml @@ -0,0 +1,69 @@ +version: "3" +services: + # Redis server to manage request queues and results + megalinter_server_redis: + image: redis:7.0.11-alpine + ports: + - "6379:6379" + volumes: + - ./redis:/data + + # Server to receive requests and post them in redis queue + megalinter_server_api: + image: ghcr.io/oxsecurity/megalinter-server:alpha + command: uvicorn server.server:app --host 0.0.0.0 --port 8000 + environment: + - MEGALINTER_SERVER_REDIS_HOST=megalinter_server_redis + - MEGALINTER_SERVER_REDIS_PORT=6379 + - MEGALINTER_SERVER_REDIS_QUEUE=megalinter:queue:requests + ports: + - "8000:8000" + depends_on: + - megalinter_server_redis + links: + - megalinter_server_redis + volumes: + - ./server-files:/tmp/server-files + + # Worker to process requests and post results in redis stream or pubsub + megalinter_server_worker: + #image: ghcr.io/oxsecurity/megalinter-ci_light:alpha # ci_light is lighter + #image: ghcr.io/oxsecurity/megalinter-javascript:alpha # javascript projects + image: ghcr.io/oxsecurity/megalinter-worker-security:alpha # cupcake is more complete + #image: ghcr.io/oxsecurity/megalinter:alpha # all linters + environment: + # Megalinter variables + - FLAVOR_SUGGESTIONS=false + # Worker variables + - MEGALINTER_SERVER=true + - MEGALINTER_SERVER_REDIS_HOST=megalinter_server_redis + - MEGALINTER_SERVER_REDIS_PORT=6379 + - MEGALINTER_SERVER_REDIS_QUEUE=megalinter:queue:requests + - MEGALINTER_SERVER_WORKER_POOL=true # Uncomment to try worker pool (beta), to have multiple jobs processed by the same worker + - MEGALINTER_SERVER_WORKER_POOL_NUMBER=5 # If worker pool active, number of parallel threads in the worker + + # Redis Reporter info: can be different than Redis job Queue server + - REDIS_REPORTER=true + - REDIS_REPORTER_HOST=megalinter_server_redis + - REDIS_REPORTER_PORT=6379 + + # Use either of the following variables groups depending you want to use redis stream messages or pubsub + + # Stream mode + #- REDIS_LINTER_REPORTER_METHOD=STREAM + #- REDIS_LINTER_REPORTER_STREAM=megalinter:stream:linter_results + + # PubSub mode (by default so commented) + # - REDIS_REPORTER_METHOD=PUBSUB + # - REDIS_LINTER_REPORTER_METHOD=PUBSUB + # - REDIS_ERRORS_REPORTER_METHOD=PUBSUB + ## You can force a channel. If not set, megalinter:pubsub:REQUEST_ID will be used (request_id is returned in initial POST body) + # - REDIS_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:results + # - REDIS_LINTER_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:linter_results + # - REDIS_ERRORS_REPORTER_PUBSUB_CHANNEL=megalinter:pubsub:error + depends_on: + - megalinter_server_redis + links: + - megalinter_server_redis + volumes: + - ./server-files:/tmp/server-files diff --git a/server/errors.py b/server/errors.py new file mode 100644 index 00000000000..772bbedde58 --- /dev/null +++ b/server/errors.py @@ -0,0 +1,78 @@ +import json +import logging + +from megalinter import config +from megalinter.utils_reporter import manage_redis_stream +from redis import Redis + + +class MegalinterServerException(Exception): + redis_host: str | None = None + redis_port: int | None = None + redis_method: str | None = None # Stream or PubSub + stream_key: str | None = None + pubsub_channel: str | None = None + message_data: object | None = None + + def __init__(self, message, error_code, request_id, error_details={}): + # Call the base class constructor with the parameters it needs + super().__init__(message) + # Now for your custom code... + self.error_code = error_code + self.message = message + self.request_id = request_id + self.error_details = error_details + if config.get(None, "REDIS_REPORTER", "false") == "true" and config.exists( + None, "REDIS_REPORTER_HOST" + ): + self.redis_host = config.get(None, "REDIS_REPORTER_HOST") + self.redis_port = int(config.get(None, "REDIS_REPORTER_PORT", 6379)) + self.redis_method = config.get( + None, "REDIS_ERRORS_REPORTER_METHOD", "PUBSUB" + ) + # Use Redis Stream + if self.redis_method == "STREAM": + self.stream_key = config.get( + None, + "REDIS_ERRORS_REPORTER_STREAM", + "megalinter:stream:errors", + ) + else: + # Use redis PubSub + self.pubsub_channel = config.get( + None, + "REDIS_ERRORS_REPORTER_PUBSUB_CHANNEL", + "megalinter:pubsub:" + request_id, + ) + + # Send redis message before raising exception + def send_redis_message(self): + self.message_data = { + "messageType": "serverError", + "message": self.message, + "errorCode": self.error_code, + "errorDetails": self.error_details, + "requestId": self.request_id, + } + final_message = manage_redis_stream( + self.message_data, (self.redis_method == "STREAM") + ) + try: + redis = Redis(host=self.redis_host, port=self.redis_port, db=0) + logging.debug("REDIS Connection: " + str(redis.info())) + if self.redis_method == "STREAM": + resp = redis.xadd(self.stream_key, final_message) + else: + resp = redis.publish(self.pubsub_channel, json.dumps(final_message)) + logging.info("REDIS RESP" + str(resp)) + except ConnectionError as e: + logging.warning( + f"[Redis Server Reporter] Error posting message for MegaLinter: Connection error {str(e)}" + ) + except Exception as e: + logging.warning( + f"[Redis Server Reporter] Error posting message for MegaLinter: Error {str(e)}" + ) + logging.warning( + "[Redis Server Reporter] Redis Message data: " + str(self.message_data) + ) diff --git a/server/requirements.txt b/server/requirements.txt new file mode 100644 index 00000000000..128aab80208 --- /dev/null +++ b/server/requirements.txt @@ -0,0 +1,9 @@ +aiofiles +gitpython +fastapi +python-multipart +pygments +uvicorn[standard] +redis +rq + diff --git a/server/server.py b/server/server.py new file mode 100644 index 00000000000..767f579d394 --- /dev/null +++ b/server/server.py @@ -0,0 +1,108 @@ +# mypy: ignore-errors +""" +https://medium.com/@mike.p.moritz/using-docker-compose-to-deploy-a-lightweight-python-rest-api-with-a-job-queue-37e6072a209b + +DEV: +docker build -t megalinter-server:dev --platform linux/amd64 -f server/Dockerfile-dev . +DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose -f server/docker-compose-dev.yml up + +TEST: +docker pull --platform linux/amd64 ghcr.io/oxsecurity/megalinter-server:alpha +DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose -f server/docker-compose.yml up + +""" +import logging +import logging.config +import os +from uuid import uuid1 + +import aiofiles +from fastapi import FastAPI, HTTPException, UploadFile, status +from fastapi.middleware.cors import CORSMiddleware +from redis import Redis +from rq import Queue +from server.types import AnalysisRequestInput, AnalysisRequestOutput + +print("MegaLinter Server starting…") +logging.config.fileConfig("logging.conf", disable_existing_loggers=False) # type: ignore[attr-defined] +logger = logging.getLogger(__name__) + +# Initialize FastAPI +server_id = "SRV_" + str(uuid1()) +app = FastAPI(title="MegaLinter Server", version=os.environ.get("BUILD_VERSION", "DEV")) +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], +) +logging.info("Fast API: " + app.version) +# Initialize redis connection +redis_host: str = os.environ.get( + "MEGALINTER_SERVER_REDIS_HOST", "megalinter_server_redis" +) +redis_port: int = int(os.environ.get("MEGALINTER_SERVER_REDIS_PORT", 6379)) +redis_queue: str = os.environ.get( + "MEGALINTER_SERVER_REDIS_QUEUE", "megalinter:queue:requests" +) +if redis_port != "": + redis = Redis(host=redis_host, port=redis_port, db=0) + logging.info("REDIS Connection: " + str(redis.info())) + # Initialize redis Queue + MEGALINTER_RQ_WORKER_DEFAULT_TIMEOUT: int = int( + os.environ.get("MEGALINTER_RQ_WORKER_DEFAULT_TIMEOUT", 1200) + ) + q = Queue( + redis_queue, + connection=redis, + default_timeout=MEGALINTER_RQ_WORKER_DEFAULT_TIMEOUT, + ) + logging.info("REDIS Queue: " + str(q.name)) +else: + redis = None + + +# Post a new request to MegaLinter +@app.post( + "/analysis", + response_model=AnalysisRequestOutput, + status_code=status.HTTP_201_CREATED, + summary="Requests a new analysis using repository url or snippet", + description="""If the analysis initialization is successful, an id will be returned. + If webHookUrl is provided, everytime a linter will be completed, the result will be sent to this HTTP webhook + """, +) +async def request_analysis( + item: AnalysisRequestInput, +) -> AnalysisRequestOutput: + # If file type, check it has been uploaded previously + if item.fileUploadId: + uploaded_file_path = os.path.join("/tmp/server-files", item.fileUploadId) + if not os.path.isdir(uploaded_file_path): + raise HTTPException( + status_code=500, detail="Unable to load uploaded files for analysis" + ) + # Enqueue request in python RQ, so the worker handles it + request_id = "RQ_" + str(uuid1()) + job = q.enqueue( + "server.server_worker.processAnalysisRequest", + item.dict(), + request_id, + server_id, + ) + result = AnalysisRequestOutput( + request_id=request_id, server_id=server_id, job_id=str(job.id) + ) + return result + + +@app.post("/upload-file") +async def create_upload_file(file: UploadFile): + file_upload_id = "FILE_" + str(uuid1()) + uploaded_file_path = os.path.join("/tmp/server-files", file_upload_id) + os.makedirs(uploaded_file_path) + uploaded_file = os.path.join(uploaded_file_path, file.filename) + async with aiofiles.open(uploaded_file, "wb") as out_file: + content = await file.read() # async read + await out_file.write(content) # async write + return {"filename": file.filename, "fileUploadId": file_upload_id} diff --git a/server/server_worker.py b/server/server_worker.py new file mode 100644 index 00000000000..751c7873301 --- /dev/null +++ b/server/server_worker.py @@ -0,0 +1,191 @@ +import glob +import logging +import os +import shutil +import tempfile +import zipfile +from typing import List + +import git +from megalinter import MegaLinter +from pygments import lexers +from server.errors import MegalinterServerException +from server.types import AnalysisRequestInput, AnalysisStatus + +logger = logging.getLogger(__name__) + + +def processAnalysisRequest( + request_input: dict, + request_id: str, + server_id: str, +): + analysis = MegaLinterAnalysis() + analysis.initialize( + AnalysisRequestInput.parse_obj(request_input), request_id, server_id + ) + analysis.initialize_files() + analysis.process() + return analysis.__dict__ + + +# Analysis processor class +class MegaLinterAnalysis: + id: str | None = None + server_id: str | None = None + status: AnalysisStatus | None = None + repository: str | None = None + snippet_language: str | None = None + workspace: str | None = None + web_hook_url: str | None = None + results: List = [] + + # Initialize analysis request and assign an unique Id + def initialize(self, request_input: AnalysisRequestInput, request_id, server_id): + self.id = request_id + self.server_id = server_id + self.status = AnalysisStatus.NEW + self.request_input = request_input + if request_input.webHookUrl: + self.web_hook_url = request_input.webHookUrl + logger.info(f"Analysis request {self.id} has been initialized") + + # Initialize files for analysis + def initialize_files(self): + # Clone repo from provided url + if self.request_input.repositoryUrl: + self.init_from_repository() + return + # Use uploaded files + elif self.request_input.fileUploadId: + self.init_from_file_upload(self.request_input.fileUploadId) + return + # Detect language and create temporary workspace with file + elif self.request_input.snippet: + self.init_from_snippet() + return + # Nothing to create a request ! + err = MegalinterServerException( + "Unable to initialize files for analysis", + "missingAnalysisType", + self.id, + {"request_input": self.request_input}, + ) + err.send_redis_message() + raise err + + # Init by cloning a remote repository + def init_from_repository(self): + temp_dir = self.create_temp_dir() + try: + git.Repo.clone_from(self.request_input.repositoryUrl, temp_dir) + except Exception as e: + err = MegalinterServerException( + f"Unable to clone repository\n{str(e)}", + "gitCloneError", + self.id, + {"error": str(e)}, + ) + err.send_redis_message() + raise err + logger.info(f"Cloned {self.request_input.repositoryUrl} in temp dir {temp_dir}") + self.workspace = temp_dir + self.repository = self.request_input.repositoryUrl + + # Init by getting uploaded file(s) + def init_from_file_upload(self, file_upload_id): + temp_dir = self.create_temp_dir() + upload_dir = os.path.join("/tmp/server-files", file_upload_id) + if os.path.exists(upload_dir): + zip_files = glob.glob(upload_dir + "/*.zip") + if len(zip_files) == 1: + # Unique zip file + with zipfile.ZipFile(zip_files[0], "r") as zip_ref: + zip_ref.extractall(temp_dir) + else: + # No zip file + shutil.copytree(upload_dir, temp_dir, dirs_exist_ok=True) + logger.info(f"Copied uploaded files from {self.id} in temp dir {temp_dir}") + self.workspace = temp_dir + self.repository = self.request_input.repositoryUrl + else: + err = MegalinterServerException( + "Unable to load uploaded files for analysis", + "uploadedFileNotFound", + self.id, + {"file_upload_id": file_upload_id}, + ) + err.send_redis_message() + raise err + + # Init from user snippet + def init_from_snippet(self): + logger.info(f"Input snippet:\n {self.request_input.snippet}") + # Guess language using pygments + code_lexer = lexers.guess_lexer(self.request_input.snippet) + if not code_lexer: + err = MegalinterServerException( + "Unable to detect language from snippet", + "snippetGuessError", + self.id, + {"snippet": self.request_input.snippet}, + ) + err.send_redis_message() + raise err + self.snippet_language = code_lexer.name + logger.info(f"Guessed snipped language: {self.snippet_language}") + # Build file name + if len(code_lexer.filenames) > 0: + if "*." in code_lexer.filenames[0]: + snippet_file_name = "snippet" + code_lexer.filenames[0].replace("*", "") + else: + snippet_file_name = code_lexer.filenames[0] + else: + err = MegalinterServerException( + f"Unable build file from {code_lexer.name} snippet", + "snippetBuildError", + self.id, + {"snippet": self.request_input.snippet}, + ) + err.send_redis_message() + raise err + logger.info(f"Snippet file name: {snippet_file_name}") + temp_dir = self.create_temp_dir() + snippet_file = os.path.join(temp_dir, snippet_file_name) + with open(snippet_file, "w", encoding="utf-8") as file: + file.write(self.request_input.snippet) + self.workspace = temp_dir + + # Run MegaLinter + def process(self): + megalinter_params = { + "cli": False, + "request_id": self.id, + "workspace": self.workspace, + "SARIF_REPORTER": "true", + } + if self.web_hook_url: + megalinter_params["WEBHOOK_REPORTER"] = "true" + megalinter_params["WEBHOOK_REPORTER_URL"] = self.web_hook_url + mega_linter = MegaLinter.Megalinter(megalinter_params) + self.change_status(AnalysisStatus.IN_PROGRESS) + mega_linter.run() + for linters in mega_linter.linters: + for reporter in linters.reporters: + if reporter.name == "WEBHOOK_REPORTER" and reporter.web_hook_data: + self.results.append(reporter.web_hook_data) + self.change_status(AnalysisStatus.COMPLETE) + del mega_linter + + # Create uniform temp directories + def create_temp_dir(self): + return tempfile.mkdtemp(prefix="ct-megalinter-x") + + # Change status of analysis request + def change_status(self, status: AnalysisStatus): + self.status = status + logger.info(f"Analysis request {self.id} status change: {status}") + self.save() + + def save(self): + logger.debug("Saved state " + str(self.__dict__)) diff --git a/server/types.py b/server/types.py new file mode 100644 index 00000000000..fc430da919c --- /dev/null +++ b/server/types.py @@ -0,0 +1,66 @@ +# mypy: ignore-errors +# Analysis status enum +from enum import StrEnum + +from pydantic import BaseModel, Field + +# API types + + +# Analysis request model +class AnalysisRequestInput(BaseModel): + class Config: + schema_extra = { + "example": { + "repositoryUrl": "https://github.com/nvuillam/github-dependents-info", + "webHookUrl": "https://9faea506-7e84-4f5d-a68f-86bbdfgT5t.mock.pstmn.io/webhook", + } + } + + fileUploadId: str | None = Field( + default=None, + description="Id of the file upload previously run", + example="xxx123", + ) + snippet: str | None = Field( + default=None, + description="Input any code snippet", + example="#!/usr/bin/env python3", + ) + repositoryUrl: str | None = Field( + default=None, + description="Input a public repository url", + example="https://github.com/nvuillam/github-dependents-info", + ) + webHookUrl: str | None = Field( + default=None, + description="WebHook URL to receive results", + example="https://9faea506-7e84-4f5d-a68f-86bbdfgT5t.mock.pstmn.io/webhook", + ) + + +# Analysis request output +class AnalysisRequestOutput(BaseModel): + class Config: + arbitrary_types_allowed = True + + request_id: str | None = ( + Field( # type: ignore + description="Unique identifier of the request", + example="", + ), + ) + server_id: str | None = Field( + description="Unique identifier of the server", + example="", + ) + job_id: str | None = Field( + description="Unique identifier of the queues job", + example="", + ) + + +class AnalysisStatus(StrEnum): + NEW = "new" + IN_PROGRESS = "in-progress" + COMPLETE = "complete"