diff --git a/.automation/build.py b/.automation/build.py index 33814eff9bd..c8d53be3edc 100644 --- a/.automation/build.py +++ b/.automation/build.py @@ -219,7 +219,14 @@ def generate_flavor(flavor, flavor_info): with open(flavor_action_yml, "w", encoding="utf-8") as file: file.write(action_yml) logging.info(f"Updated {flavor_action_yml}") - build_dockerfile(dockerfile, descriptor_and_linters, requires_docker, flavor, []) + extra_lines = [ + "COPY entrypoint.sh /entrypoint.sh", + "RUN chmod +x entrypoint.sh", + 'ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]', + ] + build_dockerfile( + dockerfile, descriptor_and_linters, requires_docker, flavor, extra_lines + ) def build_dockerfile( @@ -380,6 +387,9 @@ def generate_linter_dockerfiles(): ) # Browse descriptor linters for linter in descriptor_linters: + # Do not build standalone linter if it does not manage SARIF + if linter.can_output_sarif is False: + continue # Unique linter dockerfile linter_lower_name = linter.name.lower() dockerfile = f"{LINTERS_DIR}/{linter_lower_name}/Dockerfile" @@ -404,6 +414,20 @@ def generate_linter_dockerfiles(): " EMAIL_REPORTER=false \\", " FILEIO_REPORTER=false \\", " CONFIG_REPORTER=false", + "", + # "EXPOSE 80", + "RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh", + "EXPOSE 22", + "COPY entrypoint.sh /entrypoint.sh", + "COPY sh /usr/bin/megalinter-sh", + "COPY sh/megalinter_tmux /usr/bin/megalinter_tmux", + "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_tmux && \\", + " echo \"alias megalinter='python -m megalinter.run'\" >> ~/.bashrc && source ~/.bashrc && \\", + " echo \"alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'\" >> ~/.bashrc && source ~/.bashrc", + 'ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]', ] build_dockerfile( dockerfile, descriptor_and_linter, requires_docker, "none", extra_lines @@ -1707,7 +1731,7 @@ def replace_in_file(file_path, start, end, content, add_new_line=True): # Write the file out again with open(file_path, "w", encoding="utf-8") as file: file.write(file_content) - logging.info("Updated " + file.name) + logging.info("Updated " + file.name + " between " + start + " and " + end) def add_in_config_schema_file(variables): @@ -1778,7 +1802,7 @@ def move_to_file(file_path, start, end, target_file, keep_in_source=False): # Write the file out again with open(file_path, "w", encoding="utf-8") as file: file.write(file_content) - logging.info("Updated " + file.name) + logging.info("Updated " + file.name + " between " + start + " and " + end) bracket_content = ( bracket_content.replace("####", "#THREE#") .replace("###", "#TWO#") diff --git a/.automation/generated/flavors-stats.json b/.automation/generated/flavors-stats.json index 6b1711b5209..b1609f4d09c 100644 --- a/.automation/generated/flavors-stats.json +++ b/.automation/generated/flavors-stats.json @@ -393,8 +393,72 @@ 2030734 ], [ - "2021-12-07T10:59:39", - 2091478 + "2021-12-07T19:17:16", + 2099655 + ], + [ + "2021-12-08T11:50:21", + 2122912 + ], + [ + "2021-12-09T08:24:35", + 2164261 + ], + [ + "2021-12-11T10:08:27", + 2252269 + ], + [ + "2021-12-12T01:37:49", + 2283864 + ], + [ + "2021-12-14T01:36:23", + 2375488 + ], + [ + "2021-12-15T01:38:21", + 2394041 + ], + [ + "2021-12-16T01:40:15", + 2395095 + ], + [ + "2021-12-17T01:41:18", + 2396129 + ], + [ + "2021-12-18T12:07:04", + 2397389 + ], + [ + "2021-12-21T13:52:15", + 2399557 + ], + [ + "2021-12-23T13:53:28", + 2401434 + ], + [ + "2021-12-26T01:43:59", + 2402762 + ], + [ + "2021-12-29T20:36:25", + 2405448 + ], + [ + "2021-12-31T01:38:18", + 2406342 + ], + [ + "2022-01-01T01:37:58", + 2406684 + ], + [ + "2022-01-03T22:58:05", + 2408070 ] ], "ci_light": [ @@ -791,8 +855,72 @@ 5493 ], [ - "2021-12-07T10:59:39", - 5581 + "2021-12-07T19:17:16", + 5597 + ], + [ + "2021-12-08T11:50:21", + 5612 + ], + [ + "2021-12-09T08:24:35", + 5673 + ], + [ + "2021-12-11T10:08:27", + 5735 + ], + [ + "2021-12-12T01:37:49", + 5745 + ], + [ + "2021-12-14T01:36:23", + 5787 + ], + [ + "2021-12-15T01:38:21", + 5825 + ], + [ + "2021-12-16T01:40:15", + 5849 + ], + [ + "2021-12-17T01:41:18", + 5895 + ], + [ + "2021-12-18T12:07:04", + 5920 + ], + [ + "2021-12-21T13:52:15", + 5977 + ], + [ + "2021-12-23T13:53:28", + 6029 + ], + [ + "2021-12-26T01:43:59", + 6038 + ], + [ + "2021-12-29T20:36:25", + 6081 + ], + [ + "2021-12-31T01:38:18", + 6083 + ], + [ + "2022-01-01T01:37:58", + 6092 + ], + [ + "2022-01-03T22:58:05", + 6164 ] ], "dart": [ @@ -1189,8 +1317,72 @@ 1638 ], [ - "2021-12-07T10:59:39", - 1669 + "2021-12-07T19:17:16", + 1678 + ], + [ + "2021-12-08T11:50:21", + 1687 + ], + [ + "2021-12-09T08:24:35", + 1712 + ], + [ + "2021-12-11T10:08:27", + 1720 + ], + [ + "2021-12-12T01:37:49", + 1735 + ], + [ + "2021-12-14T01:36:23", + 1747 + ], + [ + "2021-12-15T01:38:21", + 1749 + ], + [ + "2021-12-16T01:40:15", + 1751 + ], + [ + "2021-12-17T01:41:18", + 1754 + ], + [ + "2021-12-18T12:07:04", + 1759 + ], + [ + "2021-12-21T13:52:15", + 1779 + ], + [ + "2021-12-23T13:53:28", + 1787 + ], + [ + "2021-12-26T01:43:59", + 1788 + ], + [ + "2021-12-29T20:36:25", + 1793 + ], + [ + "2021-12-31T01:38:18", + 1793 + ], + [ + "2022-01-01T01:37:58", + 1794 + ], + [ + "2022-01-03T22:58:05", + 1797 ] ], "documentation": [ @@ -1587,8 +1779,72 @@ 23358 ], [ - "2021-12-07T10:59:39", - 23752 + "2021-12-07T19:17:16", + 23887 + ], + [ + "2021-12-08T11:50:21", + 24000 + ], + [ + "2021-12-09T08:24:35", + 24246 + ], + [ + "2021-12-11T10:08:27", + 24625 + ], + [ + "2021-12-12T01:37:49", + 24649 + ], + [ + "2021-12-14T01:36:23", + 24778 + ], + [ + "2021-12-15T01:38:21", + 24878 + ], + [ + "2021-12-16T01:40:15", + 25005 + ], + [ + "2021-12-17T01:41:18", + 25138 + ], + [ + "2021-12-18T12:07:04", + 25227 + ], + [ + "2021-12-21T13:52:15", + 25344 + ], + [ + "2021-12-23T13:53:28", + 25473 + ], + [ + "2021-12-26T01:43:59", + 25516 + ], + [ + "2021-12-29T20:36:25", + 25595 + ], + [ + "2021-12-31T01:38:18", + 25637 + ], + [ + "2022-01-01T01:37:58", + 25649 + ], + [ + "2022-01-03T22:58:05", + 25700 ] ], "dotnet": [ @@ -1985,8 +2241,72 @@ 256643 ], [ - "2021-12-07T10:59:39", - 257167 + "2021-12-07T19:17:16", + 257300 + ], + [ + "2021-12-08T11:50:21", + 257529 + ], + [ + "2021-12-09T08:24:35", + 257905 + ], + [ + "2021-12-11T10:08:27", + 258701 + ], + [ + "2021-12-12T01:37:49", + 258913 + ], + [ + "2021-12-14T01:36:23", + 259582 + ], + [ + "2021-12-15T01:38:21", + 259907 + ], + [ + "2021-12-16T01:40:15", + 260363 + ], + [ + "2021-12-17T01:41:18", + 260772 + ], + [ + "2021-12-18T12:07:04", + 261008 + ], + [ + "2021-12-21T13:52:15", + 261272 + ], + [ + "2021-12-23T13:53:28", + 261541 + ], + [ + "2021-12-26T01:43:59", + 261725 + ], + [ + "2021-12-29T20:36:25", + 261969 + ], + [ + "2021-12-31T01:38:18", + 262062 + ], + [ + "2022-01-01T01:37:58", + 262130 + ], + [ + "2022-01-03T22:58:05", + 262439 ] ], "go": [ @@ -2383,8 +2703,72 @@ 5737 ], [ - "2021-12-07T10:59:39", - 5821 + "2021-12-07T19:17:16", + 5837 + ], + [ + "2021-12-08T11:50:21", + 5847 + ], + [ + "2021-12-09T08:24:35", + 5899 + ], + [ + "2021-12-11T10:08:27", + 5954 + ], + [ + "2021-12-12T01:37:49", + 5968 + ], + [ + "2021-12-14T01:36:23", + 6035 + ], + [ + "2021-12-15T01:38:21", + 6088 + ], + [ + "2021-12-16T01:40:15", + 6142 + ], + [ + "2021-12-17T01:41:18", + 6201 + ], + [ + "2021-12-18T12:07:04", + 6267 + ], + [ + "2021-12-21T13:52:15", + 6355 + ], + [ + "2021-12-23T13:53:28", + 6425 + ], + [ + "2021-12-26T01:43:59", + 6461 + ], + [ + "2021-12-29T20:36:25", + 6516 + ], + [ + "2021-12-31T01:38:18", + 6519 + ], + [ + "2022-01-01T01:37:58", + 6524 + ], + [ + "2022-01-03T22:58:05", + 6579 ] ], "java": [ @@ -2781,8 +3165,72 @@ 42350 ], [ - "2021-12-07T10:59:39", - 42865 + "2021-12-07T19:17:16", + 43031 + ], + [ + "2021-12-08T11:50:21", + 43131 + ], + [ + "2021-12-09T08:24:35", + 43481 + ], + [ + "2021-12-11T10:08:27", + 44037 + ], + [ + "2021-12-12T01:37:49", + 44061 + ], + [ + "2021-12-14T01:36:23", + 44474 + ], + [ + "2021-12-15T01:38:21", + 44810 + ], + [ + "2021-12-16T01:40:15", + 45183 + ], + [ + "2021-12-17T01:41:18", + 45506 + ], + [ + "2021-12-18T12:07:04", + 45774 + ], + [ + "2021-12-21T13:52:15", + 46202 + ], + [ + "2021-12-23T13:53:28", + 46615 + ], + [ + "2021-12-26T01:43:59", + 47104 + ], + [ + "2021-12-29T20:36:25", + 47655 + ], + [ + "2021-12-31T01:38:18", + 47729 + ], + [ + "2022-01-01T01:37:58", + 47777 + ], + [ + "2022-01-03T22:58:05", + 48108 ] ], "javascript": [ @@ -3179,62 +3627,126 @@ 59685 ], [ - "2021-12-07T10:59:39", - 60476 - ] - ], - "php": [ + "2021-12-07T19:17:16", + 60615 + ], [ - "2021-07-26T20:10:04", - 1300 + "2021-12-08T11:50:21", + 60857 ], [ - "2021-07-28T01:29:28", - 1301 + "2021-12-09T08:24:35", + 61204 ], [ - "2021-07-29T01:25:08", - 1306 + "2021-12-11T10:08:27", + 61890 ], [ - "2021-07-30T02:45:47", - 1311 + "2021-12-12T01:37:49", + 61950 ], [ - "2021-07-31T02:55:52", - 1311 + "2021-12-14T01:36:23", + 62314 ], [ - "2021-08-01T01:34:33", - 1313 + "2021-12-15T01:38:21", + 62727 ], [ - "2021-08-02T01:25:51", - 1323 + "2021-12-16T01:40:15", + 63261 ], [ - "2021-08-03T01:34:04", - 1323 + "2021-12-17T01:41:18", + 63684 ], [ - "2021-08-04T01:25:42", - 1327 + "2021-12-18T12:07:04", + 64100 ], [ - "2021-08-05T13:16:40", - 1329 + "2021-12-21T13:52:15", + 64674 ], [ - "2021-08-06T10:08:44", - 1329 + "2021-12-23T13:53:28", + 65356 ], [ - "2021-08-07T01:23:20", - 1329 + "2021-12-26T01:43:59", + 65567 ], [ - "2021-08-08T17:46:20", - 1334 + "2021-12-29T20:36:25", + 66179 + ], + [ + "2021-12-31T01:38:18", + 66955 + ], + [ + "2022-01-01T01:37:58", + 67606 + ], + [ + "2022-01-03T22:58:05", + 68081 + ] + ], + "php": [ + [ + "2021-07-26T20:10:04", + 1300 + ], + [ + "2021-07-28T01:29:28", + 1301 + ], + [ + "2021-07-29T01:25:08", + 1306 + ], + [ + "2021-07-30T02:45:47", + 1311 + ], + [ + "2021-07-31T02:55:52", + 1311 + ], + [ + "2021-08-01T01:34:33", + 1313 + ], + [ + "2021-08-02T01:25:51", + 1323 + ], + [ + "2021-08-03T01:34:04", + 1323 + ], + [ + "2021-08-04T01:25:42", + 1327 + ], + [ + "2021-08-05T13:16:40", + 1329 + ], + [ + "2021-08-06T10:08:44", + 1329 + ], + [ + "2021-08-07T01:23:20", + 1329 + ], + [ + "2021-08-08T17:46:20", + 1334 ], [ "2021-08-09T12:57:30", @@ -3577,8 +4089,72 @@ 2726 ], [ - "2021-12-07T10:59:39", - 2757 + "2021-12-07T19:17:16", + 2766 + ], + [ + "2021-12-08T11:50:21", + 2779 + ], + [ + "2021-12-09T08:24:35", + 2800 + ], + [ + "2021-12-11T10:08:27", + 2851 + ], + [ + "2021-12-12T01:37:49", + 2863 + ], + [ + "2021-12-14T01:36:23", + 2903 + ], + [ + "2021-12-15T01:38:21", + 2904 + ], + [ + "2021-12-16T01:40:15", + 2908 + ], + [ + "2021-12-17T01:41:18", + 2918 + ], + [ + "2021-12-18T12:07:04", + 2930 + ], + [ + "2021-12-21T13:52:15", + 2982 + ], + [ + "2021-12-23T13:53:28", + 3056 + ], + [ + "2021-12-26T01:43:59", + 3141 + ], + [ + "2021-12-29T20:36:25", + 3251 + ], + [ + "2021-12-31T01:38:18", + 3259 + ], + [ + "2022-01-01T01:37:58", + 3262 + ], + [ + "2022-01-03T22:58:05", + 3296 ] ], "python": [ @@ -3975,8 +4551,72 @@ 32904 ], [ - "2021-12-07T10:59:39", - 33316 + "2021-12-07T19:17:16", + 33401 + ], + [ + "2021-12-08T11:50:21", + 33547 + ], + [ + "2021-12-09T08:24:35", + 33874 + ], + [ + "2021-12-11T10:08:27", + 34553 + ], + [ + "2021-12-12T01:37:49", + 34662 + ], + [ + "2021-12-14T01:36:23", + 35219 + ], + [ + "2021-12-15T01:38:21", + 35552 + ], + [ + "2021-12-16T01:40:15", + 35947 + ], + [ + "2021-12-17T01:41:18", + 36319 + ], + [ + "2021-12-18T12:07:04", + 36713 + ], + [ + "2021-12-21T13:52:15", + 37511 + ], + [ + "2021-12-23T13:53:28", + 38213 + ], + [ + "2021-12-26T01:43:59", + 38727 + ], + [ + "2021-12-29T20:36:25", + 39878 + ], + [ + "2021-12-31T01:38:18", + 40296 + ], + [ + "2022-01-01T01:37:58", + 40473 + ], + [ + "2022-01-03T22:58:05", + 41051 ] ], "ruby": [ @@ -4369,8 +5009,72 @@ 1569 ], [ - "2021-12-07T10:59:39", - 1590 + "2021-12-07T19:17:16", + 1598 + ], + [ + "2021-12-08T11:50:21", + 1600 + ], + [ + "2021-12-09T08:24:35", + 1619 + ], + [ + "2021-12-11T10:08:27", + 1620 + ], + [ + "2021-12-12T01:37:49", + 1635 + ], + [ + "2021-12-14T01:36:23", + 1640 + ], + [ + "2021-12-15T01:38:21", + 1641 + ], + [ + "2021-12-16T01:40:15", + 1642 + ], + [ + "2021-12-17T01:41:18", + 1642 + ], + [ + "2021-12-18T12:07:04", + 1643 + ], + [ + "2021-12-21T13:52:15", + 1652 + ], + [ + "2021-12-23T13:53:28", + 1654 + ], + [ + "2021-12-26T01:43:59", + 1655 + ], + [ + "2021-12-29T20:36:25", + 1673 + ], + [ + "2021-12-31T01:38:18", + 1675 + ], + [ + "2022-01-01T01:37:58", + 1676 + ], + [ + "2022-01-03T22:58:05", + 1678 ] ], "rust": [ @@ -4763,8 +5467,72 @@ 1312 ], [ - "2021-12-07T10:59:39", - 1329 + "2021-12-07T19:17:16", + 1337 + ], + [ + "2021-12-08T11:50:21", + 1339 + ], + [ + "2021-12-09T08:24:35", + 1356 + ], + [ + "2021-12-11T10:08:27", + 1357 + ], + [ + "2021-12-12T01:37:49", + 1372 + ], + [ + "2021-12-14T01:36:23", + 1377 + ], + [ + "2021-12-15T01:38:21", + 1378 + ], + [ + "2021-12-16T01:40:15", + 1379 + ], + [ + "2021-12-17T01:41:18", + 1379 + ], + [ + "2021-12-18T12:07:04", + 1380 + ], + [ + "2021-12-21T13:52:15", + 1388 + ], + [ + "2021-12-23T13:53:28", + 1390 + ], + [ + "2021-12-26T01:43:59", + 1391 + ], + [ + "2021-12-29T20:36:25", + 1392 + ], + [ + "2021-12-31T01:38:18", + 1392 + ], + [ + "2022-01-01T01:37:58", + 1405 + ], + [ + "2022-01-03T22:58:05", + 1407 ] ], "salesforce": [ @@ -5161,8 +5929,72 @@ 8702 ], [ - "2021-12-07T10:59:39", - 8760 + "2021-12-07T19:17:16", + 8776 + ], + [ + "2021-12-08T11:50:21", + 8801 + ], + [ + "2021-12-09T08:24:35", + 8848 + ], + [ + "2021-12-11T10:08:27", + 8887 + ], + [ + "2021-12-12T01:37:49", + 8911 + ], + [ + "2021-12-14T01:36:23", + 8975 + ], + [ + "2021-12-15T01:38:21", + 8997 + ], + [ + "2021-12-16T01:40:15", + 9027 + ], + [ + "2021-12-17T01:41:18", + 9045 + ], + [ + "2021-12-18T12:07:04", + 9081 + ], + [ + "2021-12-21T13:52:15", + 9153 + ], + [ + "2021-12-23T13:53:28", + 9190 + ], + [ + "2021-12-26T01:43:59", + 9236 + ], + [ + "2021-12-29T20:36:25", + 9310 + ], + [ + "2021-12-31T01:38:18", + 9331 + ], + [ + "2022-01-01T01:37:58", + 9351 + ], + [ + "2022-01-03T22:58:05", + 9402 ] ], "scala": [ @@ -5555,8 +6387,72 @@ 1165 ], [ - "2021-12-07T10:59:39", - 1186 + "2021-12-07T19:17:16", + 1194 + ], + [ + "2021-12-08T11:50:21", + 1196 + ], + [ + "2021-12-09T08:24:35", + 1214 + ], + [ + "2021-12-11T10:08:27", + 1215 + ], + [ + "2021-12-12T01:37:49", + 1227 + ], + [ + "2021-12-14T01:36:23", + 1232 + ], + [ + "2021-12-15T01:38:21", + 1233 + ], + [ + "2021-12-16T01:40:15", + 1234 + ], + [ + "2021-12-17T01:41:18", + 1234 + ], + [ + "2021-12-18T12:07:04", + 1235 + ], + [ + "2021-12-21T13:52:15", + 1243 + ], + [ + "2021-12-23T13:53:28", + 1245 + ], + [ + "2021-12-26T01:43:59", + 1246 + ], + [ + "2021-12-29T20:36:25", + 1247 + ], + [ + "2021-12-31T01:38:18", + 1247 + ], + [ + "2022-01-01T01:37:58", + 1248 + ], + [ + "2022-01-03T22:58:05", + 1250 ] ], "swift": [ @@ -5949,8 +6845,72 @@ 1065 ], [ - "2021-12-07T10:59:39", - 1086 + "2021-12-07T19:17:16", + 1094 + ], + [ + "2021-12-08T11:50:21", + 1096 + ], + [ + "2021-12-09T08:24:35", + 1113 + ], + [ + "2021-12-11T10:08:27", + 1114 + ], + [ + "2021-12-12T01:37:49", + 1123 + ], + [ + "2021-12-14T01:36:23", + 1128 + ], + [ + "2021-12-15T01:38:21", + 1129 + ], + [ + "2021-12-16T01:40:15", + 1132 + ], + [ + "2021-12-17T01:41:18", + 1132 + ], + [ + "2021-12-18T12:07:04", + 1135 + ], + [ + "2021-12-21T13:52:15", + 1175 + ], + [ + "2021-12-23T13:53:28", + 1239 + ], + [ + "2021-12-26T01:43:59", + 1240 + ], + [ + "2021-12-29T20:36:25", + 1265 + ], + [ + "2021-12-31T01:38:18", + 1265 + ], + [ + "2022-01-01T01:37:58", + 1266 + ], + [ + "2022-01-03T22:58:05", + 1274 ] ], "terraform": [ @@ -6347,8 +7307,72 @@ 25037 ], [ - "2021-12-07T10:59:39", - 25363 + "2021-12-07T19:17:16", + 25432 + ], + [ + "2021-12-08T11:50:21", + 25545 + ], + [ + "2021-12-09T08:24:35", + 25762 + ], + [ + "2021-12-11T10:08:27", + 26064 + ], + [ + "2021-12-12T01:37:49", + 26123 + ], + [ + "2021-12-14T01:36:23", + 26438 + ], + [ + "2021-12-15T01:38:21", + 26658 + ], + [ + "2021-12-16T01:40:15", + 26868 + ], + [ + "2021-12-17T01:41:18", + 27076 + ], + [ + "2021-12-18T12:07:04", + 27338 + ], + [ + "2021-12-21T13:52:15", + 27750 + ], + [ + "2021-12-23T13:53:28", + 28138 + ], + [ + "2021-12-26T01:43:59", + 28436 + ], + [ + "2021-12-29T20:36:25", + 29284 + ], + [ + "2021-12-31T01:38:18", + 29434 + ], + [ + "2022-01-01T01:37:58", + 29543 + ], + [ + "2022-01-03T22:58:05", + 29836 ] ] } \ No newline at end of file diff --git a/.automation/generated/linter-helps.json b/.automation/generated/linter-helps.json index d34bb9e774c..68083e53091 100644 --- a/.automation/generated/linter-helps.json +++ b/.automation/generated/linter-helps.json @@ -562,8 +562,8 @@ " files (see https://www.terraform.io/docs/language/valu", " es/variables.html#variable-definitions-tfvars-", " files).Currently only supported for source Terraform", - " (.tf file) scans. Requires using --directory, not", - " --file.", + " (.tf file), and Helm chart scans.Requires using", + " --directory, not --file.", " --external-modules-download-path EXTERNAL_MODULES_DOWNLOAD_PATH", " set the path for the download external terraform", " modules [env var: EXTERNAL_MODULES_DIR]", @@ -773,7 +773,7 @@ "" ], "clj-kondo": [ - "clj-kondo v2021.06.18", + "clj-kondo v2021.12.19", "", "", "Options:", @@ -796,7 +796,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/2021.06.18/doc/configuration", + " https://cljdoc.org/d/clj-kondo/clj-kondo/2021.12.19/doc/configuration", "", " --config-dir : use this config directory instead of auto-detected", " .clj-kondo dir.", @@ -1059,7 +1059,7 @@ " -h, --help display help for command", "", "Commands:", - " lint [options] [files...] Check spelling", + " lint [options] [globs...] Check spelling", " trace [options] Trace words", " Search for words in the configuration and dictionaries.", " check [options] Spell check file(s) and display the result. The", @@ -1379,8 +1379,8 @@ " of opening bracket's line.", " --ignore errors Comma-separated list of errors and warnings to ignore", " (or skip). For example, ``--ignore=E4,E51,W234``.", - " (Default: ['E123', 'E121', 'W503', 'E126', 'E226',", - " 'E704', 'W504', 'E24'])", + " (Default: ['E123', 'W504', 'E121', 'E24', 'E226',", + " 'E704', 'W503', 'E126'])", " --extend-ignore errors", " Comma-separated list of errors and warnings to add to", " the list of ignored ones. For example, ``--extend-", @@ -2770,7 +2770,8 @@ " --exclude PATTERN Regular expression to match file names, directory", " names or paths which mypy should ignore while", " recursively discovering files to check, e.g.", - " --exclude '/setup\\.py$'", + " --exclude '/setup\\.py$'. May be specified more", + " than once, eg. --exclude a --exclude b", " -m MODULE, --module MODULE", " Type-check module; can repeat for more modules", " -p PACKAGE, --package PACKAGE", @@ -3008,16 +3009,16 @@ " -a, --autoload-file=AUTOLOAD-FILE Project's additional autoload file path", " --error-format=ERROR-FORMAT Format in which to print the result of the analysis", " --generate-baseline[=GENERATE-BASELINE] Path to a file where the baseline should be saved [default: false]", + " --allow-empty-baseline Do not error out when the generated baseline is empty", " --memory-limit=MEMORY-LIMIT Memory limit for analysis", " --xdebug Allow running with XDebug for debugging purposes", " --fix Launch PHPStan Pro", " --watch Launch PHPStan Pro", " --pro Launch PHPStan Pro", - " -h, --help Display this help message", + " -h, --help Display help for the given command. When no command is given display help for the analyse command", " -q, --quiet Do not output any message", " -V, --version Display this application version", - " --ansi Force ANSI output", - " --no-ansi Disable ANSI output", + " --ansi|--no-ansi Force (or disable --no-ansi) ANSI output", " -n, --no-interaction Do not ask any interactive question", " -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug" ], @@ -3654,70 +3655,70 @@ " Checks:", " --only-checks CHECKS A comma separated list of checks that should be run", " --ignore-paths PATHS A comma separated list of patterns to ignore", - " --no-slash_comments-check Skip the slash_comments check.", - " --no-star_comments-check Skip the star_comments check.", + " --no-case_without_default-check", + " Skip the case_without_default check.", + " --no-selector_inside_resource-check", + " Skip the selector_inside_resource check.", " --no-file_mode-check Skip the file_mode check.", " --no-ensure_first_param-check", " Skip the ensure_first_param check.", + " --no-unquoted_resource_title-check", + " Skip the unquoted_resource_title check.", " --no-ensure_not_symlink_target-check", " Skip the ensure_not_symlink_target check.", " --no-duplicate_params-check Skip the duplicate_params check.", - " --no-unquoted_resource_title-check", - " Skip the unquoted_resource_title check.", " --no-unquoted_file_mode-check", " Skip the unquoted_file_mode check.", - " --no-variable_contains_dash-check", - " Skip the variable_contains_dash check.", - " --no-variable_is_lowercase-check", - " Skip the variable_is_lowercase check.", - " --no-unquoted_node_name-check", - " Skip the unquoted_node_name check.", - " --no-inherits_across_namespaces-check", - " Skip the inherits_across_namespaces check.", - " --no-code_on_top_scope-check Skip the code_on_top_scope check.", - " --code_on_top_scope-check Enable the code_on_top_scope check.", - " --no-right_to_left_relationship-check", - " Skip the right_to_left_relationship check.", + " --no-hard_tabs-check Skip the hard_tabs check.", + " --no-80chars-check Skip the 80chars check.", + " --80chars-check Enable the 80chars check.", + " --no-trailing_whitespace-check", + " Skip the trailing_whitespace check.", + " --no-140chars-check Skip the 140chars check.", + " --no-arrow_alignment-check Skip the arrow_alignment check.", + " --no-2sp_soft_tabs-check Skip the 2sp_soft_tabs check.", + " --no-slash_comments-check Skip the slash_comments check.", + " --no-star_comments-check Skip the star_comments check.", " --no-names_containing_uppercase-check", " Skip the names_containing_uppercase check.", + " --no-variable_scope-check Skip the variable_scope check.", + " --no-parameter_order-check Skip the parameter_order check.", + " --no-autoloader_layout-check Skip the autoloader_layout check.", " --no-names_containing_dash-check", " Skip the names_containing_dash check.", + " --no-right_to_left_relationship-check", + " Skip the right_to_left_relationship check.", + " --no-nested_classes_or_defines-check", + " Skip the nested_classes_or_defines check.", + " --no-code_on_top_scope-check Skip the code_on_top_scope check.", + " --code_on_top_scope-check Enable the code_on_top_scope check.", " --no-class_inherits_from_params_class-check", " Skip the class_inherits_from_params_class check.", " --class_inherits_from_params_class-check", " Enable the class_inherits_from_params_class check.", - " --no-parameter_order-check Skip the parameter_order check.", " --no-arrow_on_right_operand_line-check", " Skip the arrow_on_right_operand_line check.", - " --no-nested_classes_or_defines-check", - " Skip the nested_classes_or_defines check.", - " --no-variable_scope-check Skip the variable_scope check.", - " --no-autoloader_layout-check Skip the autoloader_layout check.", - " --no-2sp_soft_tabs-check Skip the 2sp_soft_tabs check.", - " --no-trailing_whitespace-check", - " Skip the trailing_whitespace check.", - " --no-140chars-check Skip the 140chars check.", - " --no-80chars-check Skip the 80chars check.", - " --80chars-check Enable the 80chars check.", - " --no-arrow_alignment-check Skip the arrow_alignment check.", - " --no-hard_tabs-check Skip the hard_tabs check.", - " --no-case_without_default-check", - " Skip the case_without_default check.", - " --no-selector_inside_resource-check", - " Skip the selector_inside_resource check.", - " --no-documentation-check Skip the documentation check.", - " --no-puppet_url_without_modules-check", - " Skip the puppet_url_without_modules check.", - " --no-only_variable_string-check", - " Skip the only_variable_string check.", - " --no-single_quote_string_with_variables-check", - " Skip the single_quote_string_with_variables check.", - " --no-double_quoted_strings-check", - " Skip the double_quoted_strings check.", + " --no-inherits_across_namespaces-check", + " Skip the inherits_across_namespaces check.", + " --no-variable_is_lowercase-check", + " Skip the variable_is_lowercase check.", + " --no-variable_contains_dash-check", + " Skip the variable_contains_dash check.", " --no-quoted_booleans-check Skip the quoted_booleans check.", " --quoted_booleans-check Enable the quoted_booleans check.", " --no-variables_not_enclosed-check", - " Skip the variables_not_enclosed check." + " Skip the variables_not_enclosed check.", + " --no-double_quoted_strings-check", + " Skip the double_quoted_strings check.", + " --no-single_quote_string_with_variables-check", + " Skip the single_quote_string_with_variables check.", + " --no-only_variable_string-check", + " Skip the only_variable_string check.", + " --no-puppet_url_without_modules-check", + " Skip the puppet_url_without_modules check.", + " --no-documentation-check Skip the documentation check.", + " --no-unquoted_node_name-check", + " Skip the unquoted_node_name check." ], "pylint": [ "Usage: pylint [options]", @@ -7046,7 +7047,7 @@ " terragrunt-json-out The file path that terragrunt should use when rendering the terragrunt.hcl config as json. Only used in the render-json command. Defaults to terragrunt_rendered.json.", "", "VERSION:", - " v0.35.13", + " v0.35.16", "", "AUTHOR(S):", " Gruntwork ", diff --git a/.automation/generated/linter-versions.json b/.automation/generated/linter-versions.json index 34c275558de..b3c1f310f13 100644 --- a/.automation/generated/linter-versions.json +++ b/.automation/generated/linter-versions.json @@ -6,20 +6,20 @@ "bash-exec": "5.1.0", "black": "21.12", "cfn-lint": "0.56.3", - "checkov": "2.0.632", - "checkstyle": "9.2", + "checkov": "2.0.702", + "checkstyle": "9.2.1", "chktex": "1.7.6", "clippy": "0.1.57", - "clj-kondo": "2021.06.18", - "coffeelint": "5.2.1", + "clj-kondo": "2021.12.19", + "coffeelint": "5.2.2", "cpplint": "1.5.5", - "cspell": "5.13.2", + "cspell": "5.14.0", "dartanalyzer": "0.0.0", "dockerfilelint": "1.8.0", "dotenv-linter": "3.1.1", "dotnet-format": "000", "editorconfig-checker": "2.3.5", - "eslint": "8.4.1", + "eslint": "8.6.0", "eslint-plugin-jsonc": "2.0.0", "flake8": "4.0.1", "gherkin-lint": "0.0.0", @@ -29,11 +29,11 @@ "goodcheck": "3.1.0", "graphql-schema-linter": "2.0.1", "hadolint": "2.7.0", - "htmlhint": "1.0.0", + "htmlhint": "1.1.0", "isort": "5.10.1", "jscpd": "3.3.26", "jsonlint": "1.6.3", - "kics": "1.4.8", + "kics": "1.4.9", "ktlint": "0.43.2", "kubeval": "0.16.1", "lintr": "0.0.0", @@ -42,14 +42,14 @@ "markdown-table-formatter": "1.2.0", "markdownlint": "0.30.0", "misspell": "0.3.4", - "mypy": "0.910", - "npm-groovy-lint": "9.0.0", + "mypy": "0.930", + "npm-groovy-lint": "9.3.0", "perlcritic": "1.140", "php": "7.4.26", - "phpcs": "3.6.1", + "phpcs": "3.6.2", "phplint": "3.0", - "phpstan": "1.2.0", - "powershell": "7.2.0", + "phpstan": "1.3.0", + "powershell": "7.2.1", "prettier": "2.5.1", "protolint": "0.35.2", "psalm": "Psalm.4.x-dev@", @@ -72,18 +72,18 @@ "shellcheck": "0.8.0", "shfmt": "3.3.1", "snakefmt": "0.4.4", - "snakemake": "6.12.1", + "snakemake": "6.12.3", "spectral": "5.6.0", "sql-lint": "0.0.19", - "sqlfluff": "0.8.2", + "sqlfluff": "0.9.0", "standard": "15.0.1", - "stylelint": "14.1.0", + "stylelint": "14.2.0", "swiftlint": "0.45.1", "tekton-lint": "0.6.0", - "terraform-fmt": "1.0.11", - "terragrunt": "0.35.13", + "terraform-fmt": "1.1.2", + "terragrunt": "0.35.16", "terrascan": "1.12.0", - "tflint": "0.33.1", + "tflint": "0.34.1", "tsqllint": "1.14.0.0", "v8r": "0.6.1", "xmllint": "20912", diff --git a/.cspell.json b/.cspell.json index 5f4cb5c11ba..ddcf1f3b67f 100644 --- a/.cspell.json +++ b/.cspell.json @@ -494,6 +494,7 @@ "errexam", "errno", "erroron", + "esac", "eslintcache", "eslintconfig", "eslintignore", @@ -607,6 +608,7 @@ "imple", "importlib", "imurmurhash", + "iname", "includeonly", "includeorder", "inimal", @@ -648,6 +650,7 @@ "jupyfmt", "jwiebalk", "kdocs", + "keygen", "keyserver", "keyservers", "kics", @@ -747,9 +750,11 @@ "myfile", "myint", "mymodule", + "myoutputfile", "mypackage", "myproject", "mypy", + "myrepository", "myrulesfolder", "natbib", "nbbytes", @@ -758,6 +763,7 @@ "neomake", "newcommand", "newpage", + "neww", "nextline", "noblanks", "nocache", @@ -939,6 +945,8 @@ "replicatedhq", "repos", "repositoryformatversion", + "reqparse", + "returncode", "returnrules", "rexec", "risd", @@ -1034,6 +1042,7 @@ "stefanzweifel", "stoplightio", "strconv", + "strftime", "struct", "styleline", "stylelint", @@ -1163,6 +1172,7 @@ "wipeverb", "workdir", "workerpool", + "workspacec", "wrappy", "wscript", "xargs", diff --git a/.github/workflows/deploy-ALPHA-flavors.yml b/.github/workflows/deploy-ALPHA-flavors.yml index b5a472ea7d0..dac3a16e5f3 100644 --- a/.github/workflows/deploy-ALPHA-flavors.yml +++ b/.github/workflows/deploy-ALPHA-flavors.yml @@ -115,4 +115,5 @@ jobs: exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' - severity: 'CRITICAL,HIGH' \ No newline at end of file + severity: 'CRITICAL,HIGH' + timeout: 5m0s \ No newline at end of file diff --git a/.github/workflows/deploy-ALPHA.yml b/.github/workflows/deploy-ALPHA.yml index 7447454fc13..fd6b0d3b42e 100644 --- a/.github/workflows/deploy-ALPHA.yml +++ b/.github/workflows/deploy-ALPHA.yml @@ -109,3 +109,4 @@ jobs: ignore-unfixed: true vuln-type: "os,library" severity: "CRITICAL,HIGH" + timeout: 5m0s diff --git a/.github/workflows/deploy-DEV.yml b/.github/workflows/deploy-DEV.yml index 4fa85678329..d584cc0658b 100644 --- a/.github/workflows/deploy-DEV.yml +++ b/.github/workflows/deploy-DEV.yml @@ -206,3 +206,4 @@ jobs: ignore-unfixed: true vuln-type: "os,library" severity: "CRITICAL,HIGH" + timeout: 5m0s diff --git a/.github/workflows/deploy-PROD-flavors.yml b/.github/workflows/deploy-PROD-flavors.yml index b30f10670c7..ae1281aa009 100644 --- a/.github/workflows/deploy-PROD-flavors.yml +++ b/.github/workflows/deploy-PROD-flavors.yml @@ -118,3 +118,4 @@ jobs: ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH' + timeout: 5m0s diff --git a/.github/workflows/deploy-PROD.yml b/.github/workflows/deploy-PROD.yml index 9778814c76a..f0d13150c9c 100644 --- a/.github/workflows/deploy-PROD.yml +++ b/.github/workflows/deploy-PROD.yml @@ -132,3 +132,4 @@ jobs: ignore-unfixed: true vuln-type: "os,library" severity: "CRITICAL,HIGH" + timeout: 5m0s diff --git a/.github/workflows/deploy-RELEASE-flavors.yml b/.github/workflows/deploy-RELEASE-flavors.yml index 7f778a0f451..582441d2859 100644 --- a/.github/workflows/deploy-RELEASE-flavors.yml +++ b/.github/workflows/deploy-RELEASE-flavors.yml @@ -107,5 +107,6 @@ jobs: ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH' + timeout: 5m0s diff --git a/.github/workflows/deploy-RELEASE.yml b/.github/workflows/deploy-RELEASE.yml index 7dcedaad41b..e9e30f37748 100644 --- a/.github/workflows/deploy-RELEASE.yml +++ b/.github/workflows/deploy-RELEASE.yml @@ -111,6 +111,7 @@ jobs: ignore-unfixed: true vuln-type: "os,library" severity: "CRITICAL,HIGH" + timeout: 5m0s deploy_doc: runs-on: ubuntu-latest diff --git a/.github/workflows/deploy-v6-alpha-linters-sub.yml b/.github/workflows/deploy-v6-alpha-linters-sub.yml new file mode 100644 index 00000000000..a96b38627dc --- /dev/null +++ b/.github/workflows/deploy-v6-alpha-linters-sub.yml @@ -0,0 +1,124 @@ +--- +######################### +######################### +## Deploy Docker Image Flavors ## +######################### +######################### +# Documentation: +# https://help.github.com/en/articles/workflow-syntax-for-github-actions +# + +####################################### +# Start the job on all push to main # +####################################### +name: "Build & Deploy - v6-alpha-inbar linters" +on: + push: + branches: + - "v6_inbar" + paths: + - ".github/workflows/**" + - "Dockerfile" + - "**/Dockerfile" + - "flavors/**" + - "megalinter/**" + - "mega-linter-runner/**" + - "**/linter-versions.json" + - "TEMPLATES/**" + - ".trivyignore" + - "**/*.sh" + - "**/*.py" + - "**/sh/**" + +############### +# Set the Job # +############### +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + + build: + # Name the Job + name: Deploy Docker Image - v6-alpha-inbar - Linters + # Set the agent to run on + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + # linters-start + linter: + [ + "cloudformation_cfn_lint", + "dockerfile_hadolint", + "go_revive", + "java_checkstyle", + "javascript_es", + "json_eslint_plugin_jsonc", + "jsx_eslint", + "kotlin_ktlint", + "php_psalm", + "python_bandit", + "repository_gitleaks", + "repository_trivy", + "terraform_tflint", + "terraform_terrascan", + "terraform_checkov", + "tsx_eslint", + "typescript_es", + ] +# linters-end + # Only run this on the main repo + if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v2.4.0 + with: + fetch-depth: 0 + + ##################### + # Run Deploy script # + ##################### + - name: Deploy v6-alpha-inbar image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: megalinter/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: v6-alpha-inbar + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + shell: bash + run: .automation/upload-docker.sh + + ##################################### + # Run Linter test cases # + ##################################### + - name: Run Test Cases + shell: bash + run: | + TEST_KEYWORDS_TO_USE_UPPER="${{ matrix.linter }}" + TEST_KEYWORDS_TO_USE="${TEST_KEYWORDS_TO_USE_UPPER,,}" + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint megalinter/megalinter-only-${{ matrix.linter }}:v6-alpha-inbar + timeout-minutes: 30 + + ############################################## + # Check Docker image security with Trivy # + ############################################## + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@0.0.18 + with: + image-ref: 'docker.io/megalinter/megalinter-only-${{ matrix.linter }}:v6-alpha-inbar' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' diff --git a/.github/workflows/deploy-v6-alpha-linters.yml b/.github/workflows/deploy-v6-alpha-linters.yml index 56c6e3f4b63..66ed0b0b816 100644 --- a/.github/workflows/deploy-v6-alpha-linters.yml +++ b/.github/workflows/deploy-v6-alpha-linters.yml @@ -16,10 +16,12 @@ on: push: branches: - "v6_dev" + - "v6/keep-alive-images" - "v6/docker-standalone-linters" paths: - ".github/workflows/**" - "Dockerfile" + - "**/Dockerfile" - "flavors/**" - "megalinter/**" - "mega-linter-runner/**" @@ -28,6 +30,7 @@ on: - ".trivyignore" - "**/*.sh" - "**/*.py" + - "**/sh/**" ############### # Set the Job # @@ -50,103 +53,23 @@ jobs: # linters-start linter: [ - "action_actionlint", - "ansible_ansible_lint", - "arm_arm_ttk", - "bash_exec", - "bash_shellcheck", - "bash_shfmt", - "c_cpplint", - "clojure_clj_kondo", "cloudformation_cfn_lint", - "coffee_coffeelint", - "copypaste_jscpd", - "cpp_cpplint", - "csharp_dotnet_format", - "css_stylelint", - "css_scss_lint", - "dart_dartanalyzer", "dockerfile_hadolint", - "editorconfig_editorconfig_checker", - "env_dotenv_linter", - "gherkin_gherkin_lint", - "go_golangci_lint", "go_revive", - "graphql_graphql_schema_linter", - "groovy_npm_groovy_lint", - "html_htmlhint", "java_checkstyle", "javascript_es", - "javascript_standard", - "javascript_prettier", - "json_jsonlint", "json_eslint_plugin_jsonc", - "json_v8r", - "json_prettier", "jsx_eslint", "kotlin_ktlint", - "kubernetes_kubeval", - "latex_chktex", - "lua_luacheck", - "markdown_markdownlint", - "markdown_remark_lint", - "markdown_markdown_link_check", - "markdown_markdown_table_formatter", - "openapi_spectral", - "perl_perlcritic", - "php_phpcs", - "php_phpstan", "php_psalm", - "php_phplint", - "powershell_powershell", - "protobuf_protolint", - "puppet_puppet_lint", - "python_pylint", - "python_black", - "python_flake8", - "python_isort", "python_bandit", - "python_mypy", - "r_lintr", - "raku_raku", - "repository_git_diff", - "repository_secretlint", "repository_gitleaks", - "repository_goodcheck", "repository_trivy", - "rst_rst_lint", - "rst_rstcheck", - "rst_rstfmt", - "ruby_rubocop", - "rust_clippy", - "salesforce_sfdx_scanner_apex", - "salesforce_sfdx_scanner_aura", - "salesforce_sfdx_scanner_lwc", - "scala_scalafix", - "snakemake_lint", - "snakemake_snakefmt", - "spell_misspell", - "spell_cspell", - "sql_sql_lint", - "sql_sqlfluff", - "sql_tsqllint", - "swift_swiftlint", - "tekton_tekton_lint", "terraform_tflint", "terraform_terrascan", - "terraform_terragrunt", - "terraform_terraform_fmt", "terraform_checkov", - "terraform_kics", "tsx_eslint", "typescript_es", - "typescript_standard", - "typescript_prettier", - "vbdotnet_dotnet_format", - "xml_xmllint", - "yaml_prettier", - "yaml_yamllint", - "yaml_v8r", ] # linters-end # Only run this on the main repo diff --git a/.mega-linter.yml b/.mega-linter.yml index 9b3bc006d69..77a195d2ad9 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -22,7 +22,7 @@ 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)' YAML_V8R_FILTER_REGEX_EXCLUDE: '(descriptors|templates/\.mega-linter\.yml|\.mega-linter.yml|\.codecov\.yml)' # TODOv6: Remove when published v6 -BASH_FILTER_REGEX_EXCLUDE: "(lib)" +BASH_FILTER_REGEX_EXCLUDE: "(lib|tmux_exec\\.sh)" MARKDOWN_FILTER_REGEX_EXCLUDE: '(license\.md)' MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true SPELL_MISSPELL_FILTER_REGEX_EXCLUDE: '(\.automation/generated|docs/descriptors)' diff --git a/.trivyignore b/.trivyignore index 1b366b761be..d3f1879ce54 100644 --- a/.trivyignore +++ b/.trivyignore @@ -44,7 +44,9 @@ CVE-2021-42384 CVE-2021-42385 CVE-2021-42386 CVE-2021-3918 +CVE-2020-14040 DS001 DS002 +DS004 DS013 -DS014 \ No newline at end of file +DS014 diff --git a/CHANGELOG.md b/CHANGELOG.md index 60109c16880..e341de8f84b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,64 @@ Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-l +- Linter versions upgrades + + +## [v5.5.0] - 2022-01-03 + +- Linter versions upgrades + - [checkov](https://www.checkov.io/) from 2.0.680 to **2.0.681** on 2021-12-21 + - [stylelint](https://stylelint.io) from 14.1.0 to **14.2.0** on 2021-12-23 + - [mypy](https://mypy.readthedocs.io/en/stable/) from 0.920 to **0.930** on 2021-12-23 + - [checkov](https://www.checkov.io/) from 2.0.681 to **2.0.687** on 2021-12-23 + - [npm-groovy-lint](https://nvuillam.github.io/npm-groovy-lint/) from 9.1.0 to **9.2.0** on 2021-12-23 + - [checkov](https://www.checkov.io/) from 2.0.687 to **2.0.690** on 2021-12-23 + - [tflint](https://github.com/terraform-linters/tflint) from 0.34.0 to **0.34.1** on 2021-12-26 + - [clj-kondo](https://github.com/borkdude/clj-kondo) from 2021.06.18 to **2021.12.19** on 2021-12-29 + - [npm-groovy-lint](https://nvuillam.github.io/npm-groovy-lint/) from 9.2.0 to **9.3.0** on 2021-12-29 + - [checkstyle](https://checkstyle.sourceforge.io) from 9.2 to **9.2.1** on 2021-12-29 + - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 5.13.4 to **5.14.0** on 2021-12-29 + - [checkov](https://www.checkov.io/) from 2.0.690 to **2.0.695** on 2021-12-29 + - [phpstan](https://phpstan.org/) from 1.2.0 to **1.3.0** on 2021-12-29 + - [checkov](https://www.checkov.io/) from 2.0.695 to **2.0.701** on 2021-12-31 + - [htmlhint](https://htmlhint.com/) from 1.0.0 to **1.1.0** on 2022-01-01 + - [eslint](https://eslint.org) from 8.5.0 to **8.6.0** on 2022-01-01 + - [checkov](https://www.checkov.io/) from 2.0.701 to **2.0.702** on 2022-01-03 + +## [v5.4.0] - 2021-12-21 + +- Linter versions upgrades + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 6.12.1 to **6.12.2** on 2021-12-09 + - [checkov](https://www.checkov.io/) from 2.0.636 to **2.0.639** on 2021-12-09 + - [checkov](https://www.checkov.io/) from 2.0.639 to **2.0.641** on 2021-12-09 + - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.0.11 to **1.1.0** on 2021-12-09 + - [snakemake](https://snakemake.readthedocs.io/en/stable/) from 6.12.2 to **6.12.3** on 2021-12-11 + - [checkov](https://www.checkov.io/) from 2.0.641 to **2.0.648** on 2021-12-11 + - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 5.13.2 to **5.13.3** on 2021-12-11 + - [terragrunt](https://terragrunt.gruntwork.io) from 0.35.13 to **0.35.14** on 2021-12-11 + - [checkov](https://www.checkov.io/) from 2.0.648 to **2.0.649** on 2021-12-12 + - [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) from 3.6.1 to **3.6.2** on 2021-12-14 + - [sqlfluff](https://www.sqlfluff.com/) from 0.8.2 to **0.9.0** on 2021-12-14 + - [checkov](https://www.checkov.io/) from 2.0.649 to **2.0.659** on 2021-12-14 + - [tflint](https://github.com/terraform-linters/tflint) from 0.33.2 to **0.34.0** on 2021-12-14 + - [npm-groovy-lint](https://nvuillam.github.io/npm-groovy-lint/) from 9.0.0 to **9.1.0** on 2021-12-15 + - [powershell](https://github.com/PowerShell/PSScriptAnalyzer) from 7.2.0 to **7.2.1** on 2021-12-15 + - [checkov](https://www.checkov.io/) from 2.0.659 to **2.0.660** on 2021-12-15 + - [mypy](https://mypy.readthedocs.io/en/stable/) from 0.910 to **0.920** on 2021-12-16 + - [checkov](https://www.checkov.io/) from 2.0.660 to **2.0.662** on 2021-12-16 + - [checkov](https://www.checkov.io/) from 2.0.662 to **2.0.668** on 2021-12-17 + - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.1.0 to **1.1.1** on 2021-12-17 + - [eslint](https://eslint.org) from 8.4.1 to **8.5.0** on 2021-12-18 + - [checkov](https://www.checkov.io/) from 2.0.668 to **2.0.672** on 2021-12-18 + - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 5.13.3 to **5.13.4** on 2021-12-18 + - [terraform-fmt](https://www.terraform.io/docs/cli/commands/fmt.html) from 1.1.1 to **1.1.2** on 2021-12-18 + - [terragrunt](https://terragrunt.gruntwork.io) from 0.35.14 to **0.35.16** on 2021-12-18 + - [coffeelint](http://www.coffeelint.org) from 5.2.1 to **5.2.2** on 2021-12-21 + - [checkov](https://www.checkov.io/) from 2.0.672 to **2.0.680** on 2021-12-21 + - [kics](https://www.kics.io) from 1.4.8 to **1.4.9** on 2021-12-21 + +## [v5.3.0] - 2021-12-08 + - Fix jscpd typo about `.venv` (#986) - markdownlint: rename default config file from .markdown-lint.json to .markdownlint.json - Deprecate `DEFAULT_BRANCH` setting (#948) @@ -113,7 +171,9 @@ Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-l - [checkov](https://www.checkov.io/) from 2.0.628 to **2.0.632** on 2021-12-07 - [eslint](https://eslint.org) from 8.4.0 to **8.4.1** on 2021-12-07 - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 5.13.1 to **5.13.2** on 2021-12-07 - + - [checkov](https://www.checkov.io/) from 2.0.632 to **2.0.634** on 2021-12-07 + - [tflint](https://github.com/terraform-linters/tflint) from 0.33.1 to **0.33.2** on 2021-12-07 + - [checkov](https://www.checkov.io/) from 2.0.634 to **2.0.636** on 2021-12-08 ## [v5.2.0] - 2021-11-18 diff --git a/Dockerfile b/Dockerfile index 29f4848885b..650018c7c09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM cljkondo/clj-kondo:2021.06.18-alpine as clj-kondo +FROM cljkondo/clj-kondo:2021.12.19-alpine as clj-kondo FROM hadolint/hadolint:v2.8.0-alpine as hadolint FROM ghcr.io/assignuser/chktex-alpine:latest as chktex FROM yoheimuta/protolint:latest as protolint @@ -53,7 +53,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -97,6 +99,7 @@ RUN apk add --update --no-cache \ php8-dom \ php8-simplexml \ composer \ + dpkg \ nodejs \ npm \ yarn \ @@ -274,7 +277,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # POWERSHELL installation @@ -519,13 +524,6 @@ COPY --from=kics /app/bin/assets /opt/kics/assets/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -558,10 +556,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=all #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -579,3 +573,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#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/README.md b/README.md index 079b356cf6e..51c61f58f73 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ ![GitHub release](https://img.shields.io/github/v/release/megalinter/megalinter?sort=semver) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.6M-blue)](https://megalinter.github.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.9M-blue)](https://megalinter.github.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/megalinter/megalinter?cacheSeconds=3600)](https://github.com/megalinter/megalinter/stargazers/) [![MegaLinter](https://github.com/megalinter/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://github.com/megalinter/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain) @@ -106,7 +106,7 @@ _Github PR reporter_ - [Open-source teams](#open-source-teams) - [Super-Linter team](#super-linter-team) - [License](#license) - - [MegaLinter vs Super-Linter](#mega-linter-vs-super-linter) + - [MegaLinter vs Super-Linter](#megalinter-vs-super-linter) - [Performances](#performances) - [More languages and formats linted](#more-languages-and-formats-linted) - [Automatically apply formatting and fixes](#automatically-apply-formatting-and-fixes) diff --git a/docs/all_linters.md b/docs/all_linters.md index ff1983866dc..f490fbd22da 100644 --- a/docs/all_linters.md +++ b/docs/all_linters.md @@ -3,92 +3,91 @@ # References -| Linter | Version | License | Popularity | Descriptors | Ref | URL | -|:--------------------------------------------------------------------------------------------------------|:--------------:|:------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| -| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | 1.6.8 | MIT | [![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} | N/A | MIT | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint){target=_blank} | [ANSIBLE](descriptors/ansible_ansible_lint.md) | :white_circle: | [Repository](https://github.com/ansible/ansible-lint){target=_blank} | -| [**arm-ttk**](https://github.com/Azure/arm-ttk){target=_blank} | N/A | | | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Web Site](https://github.com/Azure/arm-ttk){target=_blank} | -| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | 1.7.1 | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit){target=_blank} | [PYTHON](descriptors/python_bandit.md) | :white_circle: | [Repository](https://github.com/PyCQA/bandit){target=_blank} | -| [**bash-exec**](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | 5.1.0 | | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | -| [**black**](https://github.com/psf/black){target=_blank} | 21.12 | MIT | [![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.56.3 | MIT-0 | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint){target=_blank} | [CLOUDFORMATION](descriptors/cloudformation_cfn_lint.md) | :white_circle: | [Repository](https://github.com/aws-cloudformation/cfn-lint){target=_blank} | -| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | 2.0.632 | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov){target=_blank} | [TERRAFORM](descriptors/terraform_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | -| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | 9.2 | LGPL-2.1 | [![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.57 | Other | [![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} | 2021.06.18 | EPL-1.0 | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo){target=_blank} | [CLOJURE](descriptors/clojure_clj_kondo.md) | :heart: | [MegaLinter reference](https://github.com/borkdude/clj-kondo/blob/master/doc/ci-integration.md#github){target=_blank} | -| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | 5.2.1 | Other | [![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.5.5 | | | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Web Site](https://github.com/cpplint/cpplint){target=_blank} | -| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | 5.13.2 | MIT | [![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 | [![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} | -| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | 3.1.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | [ENV](descriptors/env_dotenv_linter.md) | :heart: | [MegaLinter reference](https://dotenv-linter.github.io/#/integrations/mega_linter){target=_blank} | -| [**dotnet-format**](https://github.com/dotnet/format){target=_blank} | 000 | MIT | [![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} | -| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker){target=_blank} | 2.3.5 | MIT | [![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.4.1 | MIT | [![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.0.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc){target=_blank} | [JSON](descriptors/json_eslint_plugin_jsonc.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | -| [**flake8**](https://github.com/PyCQA/flake8){target=_blank} | 4.0.1 | MIT | [![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 | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint){target=_blank} | [GHERKIN](descriptors/gherkin_gherkin_lint.md) | :white_circle: | [Repository](https://github.com/vsiakka/gherkin-lint){target=_blank} | -| [**git_diff**](https://github.com/git/git){target=_blank} | 2.30.2 | LGPL-2.1 | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git){target=_blank} | [REPOSITORY](descriptors/repository_git_diff.md) | | [Repository](https://github.com/git/git){target=_blank} | -| [**gitleaks**](https://github.com/zricethezav/gitleaks){target=_blank} | N/A | MIT | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks){target=_blank} | [REPOSITORY](descriptors/repository_gitleaks.md) | :white_circle: | [Repository](https://github.com/zricethezav/gitleaks){target=_blank} | -| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | 1.43.0 | GPL-3.0 | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint){target=_blank} | [GO](descriptors/go_golangci_lint.md) | :white_circle: | [Repository](https://github.com/golangci/golangci-lint){target=_blank} | -| [**goodcheck**](https://github.com/sider/goodcheck){target=_blank} | 3.1.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck){target=_blank} | [REPOSITORY](descriptors/repository_goodcheck.md) | :white_circle: | [Repository](https://github.com/sider/goodcheck){target=_blank} | -| [**graphql-schema-linter**](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | 2.0.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | [GRAPHQL](descriptors/graphql_graphql_schema_linter.md) | :hammer_and_wrench: | [Pull Request](https://github.com/cjoudrey/graphql-schema-linter/pull/272){target=_blank} | -| [**hadolint**](https://github.com/hadolint/hadolint){target=_blank} | 2.7.0 | GPL-3.0 | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint){target=_blank} | [DOCKERFILE](descriptors/dockerfile_hadolint.md) | :heart: | [MegaLinter reference](https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter){target=_blank} | -| [**htmlhint**](https://github.com/htmlhint/HTMLHint){target=_blank} | 1.0.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint){target=_blank} | [HTML](descriptors/html_htmlhint.md) | :heart: | [MegaLinter reference](https://htmlhint.com/docs/user-guide/integrations/task-runner){target=_blank} | -| [**isort**](https://github.com/PyCQA/isort){target=_blank} | 5.10.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort){target=_blank} | [PYTHON](descriptors/python_isort.md) | :white_circle: | [Repository](https://github.com/PyCQA/isort){target=_blank} | -| [**jscpd**](https://github.com/kucherenko/jscpd){target=_blank} | 3.3.26 | MIT | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd){target=_blank} | [COPYPASTE](descriptors/copypaste_jscpd.md) | :heart: | [MegaLinter reference](https://github.com/kucherenko/jscpd#who-uses-jscpd){target=_blank} | -| [**jsonlint**](https://github.com/zaach/jsonlint){target=_blank} | 1.6.3 | | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint){target=_blank} | [JSON](descriptors/json_jsonlint.md) | :hammer_and_wrench: | [Pull Request](https://github.com/zaach/jsonlint/pull/127){target=_blank} | -| [**kics**](https://github.com/checkmarx/kics){target=_blank} | 1.4.8 | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics){target=_blank} | [TERRAFORM](descriptors/terraform_kics.md) | :heart: | [MegaLinter reference](https://docs.kics.io/latest/integrations/){target=_blank} | -| [**ktlint**](https://github.com/pinterest/ktlint){target=_blank} | 0.43.2 | MIT | [![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} | -| [**kubeval**](https://github.com/instrumenta/kubeval){target=_blank} | 0.16.1 | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval){target=_blank} | [KUBERNETES](descriptors/kubernetes_kubeval.md) | :white_circle: | [Repository](https://github.com/instrumenta/kubeval){target=_blank} | -| [**lintr**](https://github.com/jimhester/lintr){target=_blank} | N/A | | [![GitHub stars](https://img.shields.io/github/stars/jimhester/lintr?cacheSeconds=3600)](https://github.com/jimhester/lintr){target=_blank} | [R](descriptors/r_lintr.md) | :white_circle: | [Repository](https://github.com/jimhester/lintr){target=_blank} | -| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | 0.25.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck){target=_blank} | [LUA](descriptors/lua_luacheck.md) | :no_entry_sign: | [Repository](https://github.com/luarocks/luacheck){target=_blank} | -| [**markdown-link-check**](https://github.com/tcort/markdown-link-check){target=_blank} | 3.9.0 | | [![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.2.0 | MIT | [![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.30.0 | | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint){target=_blank} | [MARKDOWN](descriptors/markdown_markdownlint.md) | :white_circle: | [Repository](https://github.com/DavidAnson/markdownlint){target=_blank} | -| [**misspell**](https://github.com/client9/misspell){target=_blank} | 0.3.4 | | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell){target=_blank} | [SPELL](descriptors/spell_misspell.md) | :white_circle: | [Repository](https://github.com/client9/misspell){target=_blank} | -| [**mypy**](https://github.com/python/mypy){target=_blank} | 0.910 | MIT | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy){target=_blank} | [PYTHON](descriptors/python_mypy.md) | :white_circle: | [Repository](https://github.com/python/mypy){target=_blank} | -| [**npm-groovy-lint**](https://github.com/nvuillam/npm-groovy-lint){target=_blank} | 9.0.0 | GPL-3.0 | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint){target=_blank} | [GROOVY](descriptors/groovy_npm_groovy_lint.md) | :heart: | [MegaLinter reference](https://nvuillam.github.io/npm-groovy-lint/#mega-linter){target=_blank} | -| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | 1.140 | Other | [![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.6.1 | | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | [PHP](descriptors/php_phpcs.md) | :white_circle: | [Repository](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | -| [**phplint**](https://github.com/overtrue/phplint){target=_blank} | 3.0 | | | [PHP](descriptors/php_phplint.md) | :white_circle: | [Web Site](https://github.com/overtrue/phplint){target=_blank} | -| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | 1.2.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan){target=_blank} | [PHP](descriptors/php_phpstan.md) | :white_circle: | [Repository](https://github.com/phpstan/phpstan){target=_blank} | -| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.2.0 | | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | [POWERSHELL](descriptors/powershell_powershell.md) | :white_circle: | [Repository](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | -| [**prettier**](https://github.com/prettier/prettier){target=_blank} | 2.5.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier){target=_blank} | [JAVASCRIPT](descriptors/javascript_prettier.md)
[JSON](descriptors/json_prettier.md)
[TYPESCRIPT](descriptors/typescript_prettier.md)
[YAML](descriptors/yaml_prettier.md) | :white_circle: | [Repository](https://github.com/prettier/prettier){target=_blank} | -| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | 0.35.2 | | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint){target=_blank} | [PROTOBUF](descriptors/protobuf_protolint.md) | :white_circle: | [Repository](https://github.com/yoheimuta/protolint){target=_blank} | -| [**psalm**](https://github.com/vimeo/psalm){target=_blank} | Psalm.4.x-dev@ | MIT | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm){target=_blank} | [PHP](descriptors/php_psalm.md) | :white_circle: | [Repository](https://github.com/vimeo/psalm){target=_blank} | -| [**puppet-lint**](https://github.com/rodjek/puppet-lint){target=_blank} | 2.5.2 | MIT | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint){target=_blank} | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/rodjek/puppet-lint){target=_blank} | -| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | 2.12.2 | GPL-2.0 | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint){target=_blank} | [PYTHON](descriptors/python_pylint.md) | :white_circle: | [Repository](https://github.com/PyCQA/pylint){target=_blank} | -| [**raku**](https://github.com/rakudo/rakudo){target=_blank} | 2020.10 | Artistic-2.0 | [![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 | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint){target=_blank} | [MARKDOWN](descriptors/markdown_remark_lint.md) | :white_circle: | [Repository](https://github.com/remarkjs/remark-lint){target=_blank} | -| [**revive**](https://github.com/mgechev/revive){target=_blank} | N/A | MIT | [![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.3.2 | | [![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} | 3.3.1 | | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck){target=_blank} | [RST](descriptors/rst_rstcheck.md) | :hammer_and_wrench: | [Pull Request](https://github.com/myint/rstcheck/pull/73){target=_blank} | -| [**rstfmt**](https://github.com/dzhu/rstfmt){target=_blank} | 0.0.10 | | [![GitHub stars](https://img.shields.io/github/stars/dzhu/rstfmt?cacheSeconds=3600)](https://github.com/dzhu/rstfmt){target=_blank} | [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} | 0.82.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop){target=_blank} | [RUBY](descriptors/ruby_rubocop.md) | :heart: | [MegaLinter reference](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} | -| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | 0.9.33 | Other | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix){target=_blank} | [SCALA](descriptors/scala_scalafix.md) | :heart: | [MegaLinter reference](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} | -| [**scss-lint**](https://github.com/sds/scss-lint){target=_blank} | 0.59.0 | | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint){target=_blank} | [CSS](descriptors/css_scss_lint.md) | :white_circle: | [Repository](https://github.com/sds/scss-lint){target=_blank} | -| [**secretlint**](https://github.com/secretlint/secretlint){target=_blank} | 4.1.0 | MIT | [![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} | -| [**sfdx-scanner-apex**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_apex.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**sfdx-scanner-aura**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_aura.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**sfdx-scanner-lwc**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_lwc.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**shellcheck**](https://github.com/koalaman/shellcheck){target=_blank} | 0.8.0 | | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck){target=_blank} | [BASH](descriptors/bash_shellcheck.md) | | [Repository](https://github.com/koalaman/shellcheck){target=_blank} | -| [**shfmt**](https://github.com/mvdan/sh){target=_blank} | 3.3.1 | | [![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.4.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} | 6.12.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake){target=_blank} | [SNAKEMAKE](descriptors/snakemake_snakemake.md) | :white_circle: | [Repository](https://github.com/snakemake/snakemake){target=_blank} | -| [**spectral**](https://github.com/stoplightio/spectral){target=_blank} | 5.6.0 | Apache-2.0 | [![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} | 0.0.19 | | [![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} | 0.8.2 | MIT | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff){target=_blank} | [SQL](descriptors/sql_sqlfluff.md) | :white_circle: | [Repository](https://github.com/sqlfluff/sqlfluff){target=_blank} | -| [**standard**](https://github.com/standard/standard){target=_blank} | 15.0.1 | MIT | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard){target=_blank} | [JAVASCRIPT](descriptors/javascript_standard.md)
[TYPESCRIPT](descriptors/typescript_standard.md) | :white_circle: | [Repository](https://github.com/standard/standard){target=_blank} | -| [**stylelint**](https://github.com/stylelint/stylelint){target=_blank} | 14.1.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint){target=_blank} | [CSS](descriptors/css_stylelint.md) | :heart: | [MegaLinter reference](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} | -| [**swiftlint**](https://github.com/realm/SwiftLint){target=_blank} | 0.45.1 | MIT | [![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} | -| [**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.0.11 | MPL-2.0 | [![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.35.13 | MIT | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt){target=_blank} | [TERRAFORM](descriptors/terraform_terragrunt.md) | :white_circle: | [Repository](https://github.com/gruntwork-io/terragrunt){target=_blank} | -| [**terrascan**](https://github.com/accurics/terrascan){target=_blank} | 1.12.0 | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan){target=_blank} | [TERRAFORM](descriptors/terraform_terrascan.md) | :white_circle: | [Repository](https://github.com/accurics/terrascan){target=_blank} | -| [**tflint**](https://github.com/terraform-linters/tflint){target=_blank} | 0.33.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} | N/A | Apache-2.0 | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy){target=_blank} | [REPOSITORY](descriptors/repository_trivy.md) | :white_circle: | [Repository](https://github.com/aquasecurity/trivy){target=_blank} | -| [**tsqllint**](https://github.com/tsqllint/tsqllint){target=_blank} | 1.14.0.0 | MIT | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint){target=_blank} | [SQL](descriptors/sql_tsqllint.md) | :white_circle: | [Repository](https://github.com/tsqllint/tsqllint){target=_blank} | -| [**v8r**](https://github.com/chris48s/v8r){target=_blank} | 0.6.1 | | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r){target=_blank} | [JSON](descriptors/json_v8r.md)
[YAML](descriptors/yaml_v8r.md) | :no_entry_sign: | [Repository](https://github.com/chris48s/v8r){target=_blank} | -| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | 20912 | | | [XML](descriptors/xml_xmllint.md) | :white_circle: | [Web Site](http://xmlsoft.org/xmllint.html){target=_blank} | -| [**yamllint**](https://github.com/adrienverge/yamllint){target=_blank} | 1.26.3 | GPL-3.0 | [![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 | Descriptors | Reference status | URL | +|:--------------------------------------------------------------------------------------------------------|:--------------:|:------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| +| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | 1.6.8 | MIT | [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} | N/A | MIT | [ANSIBLE](descriptors/ansible_ansible_lint.md) | :white_circle: | [Repository](https://github.com/ansible/ansible-lint){target=_blank} | +| [**arm-ttk**](https://github.com/Azure/arm-ttk){target=_blank} | N/A | | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Web Site](https://github.com/Azure/arm-ttk){target=_blank} | +| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | 1.7.1 | Apache-2.0 | [PYTHON](descriptors/python_bandit.md) | :white_circle: | [Repository](https://github.com/PyCQA/bandit){target=_blank} | +| [**bash-exec**](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | 5.1.0 | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | +| [**black**](https://github.com/psf/black){target=_blank} | 21.12 | MIT | [PYTHON](descriptors/python_black.md) | :white_circle: | [Repository](https://github.com/psf/black){target=_blank} | +| [**cfn-lint**](https://github.com/martysweet/cfn-lint){target=_blank} | 0.56.3 | | [CLOUDFORMATION](descriptors/cloudformation_cfn_lint.md) | :white_circle: | [Web Site](https://github.com/martysweet/cfn-lint){target=_blank} | +| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | 2.0.702 | Apache-2.0 | [TERRAFORM](descriptors/terraform_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | +| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | 9.2.1 | Other | [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.57 | | [RUST](descriptors/rust_clippy.md) | :white_circle: | [Web Site](https://github.com/rust-lang/rust-clippy){target=_blank} | +| [**clj-kondo**](https://github.com/borkdude/clj-kondo){target=_blank} | 2021.12.19 | | [CLOJURE](descriptors/clojure_clj_kondo.md) | :heart: | [MegaLinter reference](https://github.com/borkdude/clj-kondo/blob/master/doc/ci-integration.md#github){target=_blank} | +| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | 5.2.2 | Other | [COFFEE](descriptors/coffee_coffeelint.md) | :white_circle: | [Repository](https://github.com/clutchski/coffeelint){target=_blank} | +| [**cpplint**](https://github.com/cpplint/cpplint){target=_blank} | 1.5.5 | | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Web Site](https://github.com/cpplint/cpplint){target=_blank} | +| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | 5.14.0 | MIT | [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 | [DART](descriptors/dart_dartanalyzer.md) | :no_entry_sign: | [Repository](https://github.com/dart-lang/sdk){target=_blank} | +| [**dockerfilelint**](https://github.com/replicatedhq/dockerfilelint){target=_blank} | 1.8.0 | | [DOCKERFILE](descriptors/dockerfile_dockerfilelint.md) | :white_circle: | [Web Site](https://github.com/replicatedhq/dockerfilelint){target=_blank} | +| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | 3.1.1 | MIT | [ENV](descriptors/env_dotenv_linter.md) | :heart: | [MegaLinter reference](https://dotenv-linter.github.io/#/integrations/mega_linter){target=_blank} | +| [**dotnet-format**](https://github.com/dotnet/format){target=_blank} | 000 | | [CSHARP](descriptors/csharp_dotnet_format.md)
[VBDOTNET](descriptors/vbdotnet_dotnet_format.md) | :white_circle: | [Web Site](https://github.com/dotnet/format){target=_blank} | +| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker){target=_blank} | 2.3.5 | MIT | [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.6.0 | MIT | [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.0.0 | MIT | [JSON](descriptors/json_eslint_plugin_jsonc.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | +| [**flake8**](https://github.com/PyCQA/flake8){target=_blank} | 4.0.1 | Other | [PYTHON](descriptors/python_flake8.md) | :white_circle: | [Repository](https://github.com/PyCQA/flake8){target=_blank} | +| [**gherkin-lint**](https://github.com/vsiakka/gherkin-lint){target=_blank} | N/A | | [GHERKIN](descriptors/gherkin_gherkin_lint.md) | :white_circle: | [Web Site](https://github.com/vsiakka/gherkin-lint){target=_blank} | +| [**git_diff**](https://github.com/git/git){target=_blank} | 2.30.2 | Other | [GIT](descriptors/git_git_diff.md) | | [Repository](https://github.com/git/git){target=_blank} | +| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | 1.43.0 | GPL-3.0 | [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} | 2.0.1 | | [GRAPHQL](descriptors/graphql_graphql_schema_linter.md) | :hammer_and_wrench: | [Pull Request](https://github.com/cjoudrey/graphql-schema-linter/pull/272){target=_blank} | +| [**hadolint**](https://github.com/hadolint/hadolint){target=_blank} | 2.7.0 | | [DOCKERFILE](descriptors/dockerfile_hadolint.md) | :heart: | [MegaLinter reference](https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter){target=_blank} | +| [**htmlhint**](https://github.com/htmlhint/HTMLHint){target=_blank} | 1.1.0 | MIT | [HTML](descriptors/html_htmlhint.md) | :heart: | [MegaLinter reference](https://htmlhint.com/docs/user-guide/integrations/task-runner){target=_blank} | +| [**isort**](https://github.com/PyCQA/isort){target=_blank} | 5.10.1 | MIT | [PYTHON](descriptors/python_isort.md) | :white_circle: | [Repository](https://github.com/PyCQA/isort){target=_blank} | +| [**jscpd**](https://github.com/kucherenko/jscpd){target=_blank} | 3.3.26 | MIT | [COPYPASTE](descriptors/copypaste_jscpd.md) | :heart: | [MegaLinter reference](https://github.com/kucherenko/jscpd#who-uses-jscpd){target=_blank} | +| [**jsonlint**](https://github.com/zaach/jsonlint){target=_blank} | 1.6.3 | | [JSON](descriptors/json_jsonlint.md) | :hammer_and_wrench: | [Pull Request](https://github.com/zaach/jsonlint/pull/127){target=_blank} | +| [**kics**](https://github.com/checkmarx/kics){target=_blank} | 1.4.9 | Apache-2.0 | [TERRAFORM](descriptors/terraform_kics.md) | :heart: | [MegaLinter reference](https://docs.kics.io/latest/integrations/){target=_blank} | +| [**ktlint**](https://github.com/pinterest/ktlint){target=_blank} | 0.43.2 | MIT | [KOTLIN](descriptors/kotlin_ktlint.md) | :heart: | [MegaLinter reference](https://github.com/pinterest/ktlint#-with-continuous-integration){target=_blank} | +| [**kubeval**](https://github.com/instrumenta/kubeval){target=_blank} | 0.16.1 | Other | [KUBERNETES](descriptors/kubernetes_kubeval.md) | :white_circle: | [Repository](https://github.com/instrumenta/kubeval){target=_blank} | +| [**lintr**](https://github.com/jimhester/lintr){target=_blank} | N/A | | [R](descriptors/r_lintr.md) | :white_circle: | [Web Site](https://github.com/jimhester/lintr){target=_blank} | +| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | 0.25.0 | MIT | [LUA](descriptors/lua_luacheck.md) | :no_entry_sign: | [Repository](https://github.com/luarocks/luacheck){target=_blank} | +| [**markdown-link-check**](https://github.com/tcort/markdown-link-check){target=_blank} | 3.9.0 | | [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.2.0 | MIT | [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.30.0 | | [MARKDOWN](descriptors/markdown_markdownlint.md) | :white_circle: | [Web Site](https://github.com/DavidAnson/markdownlint){target=_blank} | +| [**misspell**](https://github.com/client9/misspell){target=_blank} | 0.3.4 | | [SPELL](descriptors/spell_misspell.md) | :white_circle: | [Web Site](https://github.com/client9/misspell){target=_blank} | +| [**mypy**](https://github.com/python/mypy){target=_blank} | 0.930 | Other | [PYTHON](descriptors/python_mypy.md) | :white_circle: | [Repository](https://github.com/python/mypy){target=_blank} | +| [**npm-groovy-lint**](https://github.com/nvuillam/npm-groovy-lint){target=_blank} | 9.3.0 | GPL-3.0 | [GROOVY](descriptors/groovy_npm_groovy_lint.md) | :heart: | [MegaLinter reference](https://nvuillam.github.io/npm-groovy-lint/#mega-linter){target=_blank} | +| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | 1.140 | Other | [PERL](descriptors/perl_perlcritic.md) | :white_circle: | [Repository](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | +| [**php**](https://github.com/php/php-src){target=_blank} | 7.4.26 | Other | [PHP](descriptors/php_php.md) | | [Repository](https://github.com/php/php-src){target=_blank} | +| [**phpcs**](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | 3.6.2 | | [PHP](descriptors/php_phpcs.md) | :white_circle: | [Web Site](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | +| [**phplint**](https://github.com/overtrue/phplint){target=_blank} | 3.0 | | [PHP](descriptors/php_phplint.md) | :white_circle: | [Web Site](https://github.com/overtrue/phplint){target=_blank} | +| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | 1.3.0 | MIT | [PHP](descriptors/php_phpstan.md) | :white_circle: | [Repository](https://github.com/phpstan/phpstan){target=_blank} | +| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.2.1 | | [POWERSHELL](descriptors/powershell_powershell.md) | :white_circle: | [Web Site](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | +| [**prettier**](https://github.com/prettier/prettier){target=_blank} | 2.5.1 | MIT | [JAVASCRIPT](descriptors/javascript_prettier.md)
[JSON](descriptors/json_prettier.md)
[TYPESCRIPT](descriptors/typescript_prettier.md)
[YAML](descriptors/yaml_prettier.md) | :white_circle: | [Repository](https://github.com/prettier/prettier){target=_blank} | +| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | 0.35.2 | | [PROTOBUF](descriptors/protobuf_protolint.md) | :white_circle: | [Web Site](https://github.com/yoheimuta/protolint){target=_blank} | +| [**psalm**](https://github.com/vimeo/psalm){target=_blank} | Psalm.4.x-dev@ | MIT | [PHP](descriptors/php_psalm.md) | :white_circle: | [Repository](https://github.com/vimeo/psalm){target=_blank} | +| [**puppet-lint**](https://github.com/rodjek/puppet-lint){target=_blank} | 2.5.2 | MIT | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/rodjek/puppet-lint){target=_blank} | +| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | 2.12.2 | GPL-2.0 | [PYTHON](descriptors/python_pylint.md) | :white_circle: | [Repository](https://github.com/PyCQA/pylint){target=_blank} | +| [**raku**](https://github.com/rakudo/rakudo){target=_blank} | 2020.10 | Artistic-2.0 | [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 | [MARKDOWN](descriptors/markdown_remark_lint.md) | :white_circle: | [Repository](https://github.com/remarkjs/remark-lint){target=_blank} | +| [**revive**](https://github.com/mgechev/revive){target=_blank} | N/A | MIT | [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.3.2 | | [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} | 3.3.1 | | [RST](descriptors/rst_rstcheck.md) | :hammer_and_wrench: | [Pull Request](https://github.com/myint/rstcheck/pull/73){target=_blank} | +| [**rstfmt**](https://github.com/dzhu/rstfmt){target=_blank} | 0.0.10 | | [RST](descriptors/rst_rstfmt.md) | :hammer_and_wrench: | [Pull Request](https://github.com/dzhu/rstfmt/pull/1){target=_blank} | +| [**rubocop**](https://github.com/rubocop-hq/rubocop){target=_blank} | 0.82.0 | MIT | [RUBY](descriptors/ruby_rubocop.md) | :heart: | [MegaLinter reference](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} | +| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | 0.9.33 | Other | [SCALA](descriptors/scala_scalafix.md) | :heart: | [MegaLinter reference](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} | +| [**scss-lint**](https://github.com/sds/scss-lint){target=_blank} | 0.59.0 | | [CSS](descriptors/css_scss_lint.md) | :white_circle: | [Web Site](https://github.com/sds/scss-lint){target=_blank} | +| [**secretlint**](https://github.com/secretlint/secretlint){target=_blank} | 4.1.0 | MIT | [CREDENTIALS](descriptors/credentials_secretlint.md) | :heart: | [MegaLinter reference](https://github.com/secretlint/secretlint#mega-linter){target=_blank} | +| [**sfdx-scanner-apex**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [SALESFORCE](descriptors/salesforce_sfdx_scanner_apex.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**sfdx-scanner-aura**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [SALESFORCE](descriptors/salesforce_sfdx_scanner_aura.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**sfdx-scanner-lwc**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.12.0 | MIT | [SALESFORCE](descriptors/salesforce_sfdx_scanner_lwc.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**shellcheck**](https://github.com/koalaman/shellcheck){target=_blank} | 0.8.0 | | [BASH](descriptors/bash_shellcheck.md) | | [Web Site](https://github.com/koalaman/shellcheck){target=_blank} | +| [**shfmt**](https://github.com/mvdan/sh){target=_blank} | 3.3.1 | | [BASH](descriptors/bash_shfmt.md) | :no_entry_sign: | [Web Site](https://github.com/mvdan/sh){target=_blank} | +| [**snakefmt**](https://github.com/snakemake/snakefmt){target=_blank} | 0.4.4 | | [SNAKEMAKE](descriptors/snakemake_snakefmt.md) | :white_circle: | [Web Site](https://github.com/snakemake/snakefmt){target=_blank} | +| [**snakemake**](https://github.com/snakemake/snakemake){target=_blank} | 6.12.3 | MIT | [SNAKEMAKE](descriptors/snakemake_snakemake.md) | :white_circle: | [Repository](https://github.com/snakemake/snakemake){target=_blank} | +| [**spectral**](https://github.com/stoplightio/spectral){target=_blank} | 5.6.0 | Apache-2.0 | [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} | 0.0.19 | | [SQL](descriptors/sql_sql_lint.md) | :white_circle: | [Web Site](https://github.com/joereynolds/sql-lint){target=_blank} | +| [**sqlfluff**](https://github.com/sqlfluff/sqlfluff){target=_blank} | 0.9.0 | MIT | [SQL](descriptors/sql_sqlfluff.md) | :white_circle: | [Repository](https://github.com/sqlfluff/sqlfluff){target=_blank} | +| [**standard**](https://github.com/standard/standard){target=_blank} | 15.0.1 | MIT | [JAVASCRIPT](descriptors/javascript_standard.md)
[TYPESCRIPT](descriptors/typescript_standard.md) | :white_circle: | [Repository](https://github.com/standard/standard){target=_blank} | +| [**stylelint**](https://github.com/stylelint/stylelint){target=_blank} | 14.2.0 | MIT | [CSS](descriptors/css_stylelint.md) | :heart: | [MegaLinter reference](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} | +| [**swiftlint**](https://github.com/realm/SwiftLint){target=_blank} | 0.45.1 | MIT | [SWIFT](descriptors/swift_swiftlint.md) | :white_circle: | [Repository](https://github.com/realm/SwiftLint){target=_blank} | +| [**tekton-lint**](https://github.com/IBM/tekton-lint){target=_blank} | 0.6.0 | | [TEKTON](descriptors/tekton_tekton_lint.md) | :white_circle: | [Web Site](https://github.com/IBM/tekton-lint){target=_blank} | +| [**terraform-fmt**](https://github.com/hashicorp/terraform){target=_blank} | 1.1.2 | MPL-2.0 | [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.35.16 | MIT | [TERRAFORM](descriptors/terraform_terragrunt.md) | :white_circle: | [Repository](https://github.com/gruntwork-io/terragrunt){target=_blank} | +| [**terrascan**](https://github.com/accurics/terrascan){target=_blank} | 1.12.0 | Apache-2.0 | [TERRAFORM](descriptors/terraform_terrascan.md) | :white_circle: | [Repository](https://github.com/accurics/terrascan){target=_blank} | +| [**tflint**](https://github.com/terraform-linters/tflint){target=_blank} | 0.34.1 | | [TERRAFORM](descriptors/terraform_tflint.md) | :white_circle: | [Web Site](https://github.com/terraform-linters/tflint){target=_blank} | +| [**tsqllint**](https://github.com/tsqllint/tsqllint){target=_blank} | 1.14.0.0 | MIT | [SQL](descriptors/sql_tsqllint.md) | :white_circle: | [Repository](https://github.com/tsqllint/tsqllint){target=_blank} | +| [**v8r**](https://github.com/chris48s/v8r){target=_blank} | 0.6.1 | | [JSON](descriptors/json_v8r.md)
[YAML](descriptors/yaml_v8r.md) | :no_entry_sign: | [Web Site](https://github.com/chris48s/v8r){target=_blank} | +| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | 20912 | | [XML](descriptors/xml_xmllint.md) | :white_circle: | [Web Site](http://xmlsoft.org/xmllint.html){target=_blank} | +| [**yamllint**](https://github.com/adrienverge/yamllint){target=_blank} | 1.26.3 | GPL-3.0 | [YAML](descriptors/yaml_yamllint.md) | :no_entry_sign: | [Repository](https://github.com/adrienverge/yamllint){target=_blank} | diff --git a/docs/descriptors/clojure_clj_kondo.md b/docs/descriptors/clojure_clj_kondo.md index 9b4f3f9644b..c4c3b9b433e 100644 --- a/docs/descriptors/clojure_clj_kondo.md +++ b/docs/descriptors/clojure_clj_kondo.md @@ -9,7 +9,7 @@ ## clj-kondo documentation -- Version in MegaLinter: **2021.06.18** +- Version in MegaLinter: **2021.12.19** - Visit [Official Web Site](https://github.com/borkdude/clj-kondo#readme){target=_blank} - See [How to configure clj-kondo rules](https://github.com/borkdude/clj-kondo/blob/master/doc/config.md#configuration){target=_blank} - If custom `.clj-kondo/config.edn` config file is not found, [.clj-kondo/config.edn](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.clj-kondo/config.edn){target=_blank} will be used @@ -83,7 +83,7 @@ clj-kondo --lint --config .clj-kondo/config.edn myfile.clj ### Help content ```shell -clj-kondo v2021.06.18 +clj-kondo v2021.12.19 Options: @@ -106,7 +106,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/2021.06.18/doc/configuration + https://cljdoc.org/d/clj-kondo/clj-kondo/2021.12.19/doc/configuration --config-dir : use this config directory instead of auto-detected .clj-kondo dir. @@ -126,7 +126,7 @@ Options: - Dockerfile commands : ```dockerfile -FROM cljkondo/clj-kondo:2021.06.18-alpine as clj-kondo +FROM cljkondo/clj-kondo:2021.12.19-alpine as clj-kondo COPY --from=clj-kondo /bin/clj-kondo /usr/bin/ ``` diff --git a/docs/descriptors/cloudformation_cfn_lint.md b/docs/descriptors/cloudformation_cfn_lint.md index d83ae5e97c4..276ac64f89d 100644 --- a/docs/descriptors/cloudformation_cfn_lint.md +++ b/docs/descriptors/cloudformation_cfn_lint.md @@ -26,7 +26,7 @@ | CLOUDFORMATION_CFN_LINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | | CLOUDFORMATION_CFN_LINT_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | CLOUDFORMATION_CFN_LINT_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | +| CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `file` | | CLOUDFORMATION_CFN_LINT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".yml", ".yaml", ".json"]` | | CLOUDFORMATION_CFN_LINT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | CLOUDFORMATION_CFN_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | diff --git a/docs/descriptors/coffee_coffeelint.md b/docs/descriptors/coffee_coffeelint.md index 557883632de..45dfeb09b50 100644 --- a/docs/descriptors/coffee_coffeelint.md +++ b/docs/descriptors/coffee_coffeelint.md @@ -4,7 +4,7 @@ ## coffeelint documentation -- Version in MegaLinter: **5.2.1** +- Version in MegaLinter: **5.2.2** - Visit [Official Web Site](http://www.coffeelint.org){target=_blank} - See [How to configure coffeelint rules](http://www.coffeelint.org/#options){target=_blank} - If custom `.coffee-lint.json` config file is not found, [.coffee-lint.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.coffee-lint.json){target=_blank} will be used diff --git a/docs/descriptors/css_stylelint.md b/docs/descriptors/css_stylelint.md index 38291e81063..0b932dbb276 100644 --- a/docs/descriptors/css_stylelint.md +++ b/docs/descriptors/css_stylelint.md @@ -9,7 +9,7 @@ ## stylelint documentation -- Version in MegaLinter: **14.1.0** +- Version in MegaLinter: **14.2.0** - Visit [Official Web Site](https://stylelint.io){target=_blank} - See [How to configure stylelint rules](https://stylelint.io/user-guide/configure){target=_blank} - If custom `.stylelintrc.json` config file is not found, [.stylelintrc.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.stylelintrc.json){target=_blank} will be used diff --git a/docs/descriptors/groovy_npm_groovy_lint.md b/docs/descriptors/groovy_npm_groovy_lint.md index 4ce78ba3f93..0e43eafbb03 100644 --- a/docs/descriptors/groovy_npm_groovy_lint.md +++ b/docs/descriptors/groovy_npm_groovy_lint.md @@ -4,7 +4,7 @@ ## npm-groovy-lint documentation -- Version in MegaLinter: **9.0.0** +- Version in MegaLinter: **9.3.0** - Visit [Official Web Site](https://nvuillam.github.io/npm-groovy-lint/){target=_blank} - See [How to configure npm-groovy-lint rules](https://github.com/nvuillam/npm-groovy-lint#configuration){target=_blank} - If custom `.groovylintrc.json` config file is not found, [.groovylintrc.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.groovylintrc.json){target=_blank} will be used diff --git a/docs/descriptors/html_htmlhint.md b/docs/descriptors/html_htmlhint.md index 744cca85f93..c2dd4ea2d4b 100644 --- a/docs/descriptors/html_htmlhint.md +++ b/docs/descriptors/html_htmlhint.md @@ -4,7 +4,7 @@ ## htmlhint documentation -- Version in MegaLinter: **1.0.0** +- Version in MegaLinter: **1.1.0** - Visit [Official Web Site](https://htmlhint.com/){target=_blank} - See [How to configure htmlhint rules](https://htmlhint.com/docs/user-guide/configuration){target=_blank} - If custom `.htmlhintrc` config file is not found, [.htmlhintrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.htmlhintrc){target=_blank} will be used diff --git a/docs/descriptors/java_checkstyle.md b/docs/descriptors/java_checkstyle.md index bf1df7d87b9..cef0b398775 100644 --- a/docs/descriptors/java_checkstyle.md +++ b/docs/descriptors/java_checkstyle.md @@ -9,7 +9,7 @@ ## checkstyle documentation -- Version in MegaLinter: **9.2** +- Version in MegaLinter: **9.2.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 is not found, [sun_checks.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/sun_checks.xml){target=_blank} will be used diff --git a/docs/descriptors/javascript_eslint.md b/docs/descriptors/javascript_eslint.md index 39f93a6813e..85c8b2c39ab 100644 --- a/docs/descriptors/javascript_eslint.md +++ b/docs/descriptors/javascript_eslint.md @@ -13,7 +13,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.4.1** +- Version in MegaLinter: **8.6.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} diff --git a/docs/descriptors/jsx_eslint.md b/docs/descriptors/jsx_eslint.md index b99bc001981..0d05614480d 100644 --- a/docs/descriptors/jsx_eslint.md +++ b/docs/descriptors/jsx_eslint.md @@ -12,7 +12,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.4.1** +- Version in MegaLinter: **8.6.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} diff --git a/docs/descriptors/php.md b/docs/descriptors/php.md index 0b0c6c579a8..8999c82fc11 100644 --- a/docs/descriptors/php.md +++ b/docs/descriptors/php.md @@ -41,7 +41,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 ``` @@ -67,3 +69,4 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ - [php8-dom](https://pkgs.alpinelinux.org/packages?branch=edge&name=php8-dom) - [php8-simplexml](https://pkgs.alpinelinux.org/packages?branch=edge&name=php8-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 bf1328b1e9e..bc670e7e88d 100644 --- a/docs/descriptors/php_phpcs.md +++ b/docs/descriptors/php_phpcs.md @@ -4,7 +4,7 @@ ## phpcs documentation -- Version in MegaLinter: **3.6.1** +- Version in MegaLinter: **3.6.2** - Visit [Official Web Site](https://github.com/squizlabs/PHP_CodeSniffer#readme){target=_blank} - See [How to configure phpcs rules](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file){target=_blank} - If custom `phpcs.xml` config file is not found, [phpcs.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/phpcs.xml){target=_blank} will be used @@ -168,7 +168,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # Linter install RUN 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 4135964b3bc..331de559a3b 100644 --- a/docs/descriptors/php_phplint.md +++ b/docs/descriptors/php_phplint.md @@ -117,7 +117,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # Linter install RUN composer global require overtrue/phplint ^3.0 \ diff --git a/docs/descriptors/php_phpstan.md b/docs/descriptors/php_phpstan.md index 11fb8cc392c..65d6762c858 100644 --- a/docs/descriptors/php_phpstan.md +++ b/docs/descriptors/php_phpstan.md @@ -4,7 +4,7 @@ ## phpstan documentation -- Version in MegaLinter: **1.2.0** +- Version in MegaLinter: **1.3.0** - Visit [Official Web Site](https://phpstan.org/){target=_blank} - See [How to configure phpstan rules](https://phpstan.org/config-reference#neon-format){target=_blank} - If custom `phpstan.neon.dist` config file is not found, [phpstan.neon.dist](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/phpstan.neon.dist){target=_blank} will be used @@ -102,16 +102,16 @@ Options: -a, --autoload-file=AUTOLOAD-FILE Project's additional autoload file path --error-format=ERROR-FORMAT Format in which to print the result of the analysis --generate-baseline[=GENERATE-BASELINE] Path to a file where the baseline should be saved [default: false] + --allow-empty-baseline Do not error out when the generated baseline is empty --memory-limit=MEMORY-LIMIT Memory limit for analysis --xdebug Allow running with XDebug for debugging purposes --fix Launch PHPStan Pro --watch Launch PHPStan Pro --pro Launch PHPStan Pro - -h, --help Display this help message + -h, --help Display help for the given command. When no command is given display help for the analyse command -q, --quiet Do not output any message -V, --version Display this application version - --ansi Force ANSI output - --no-ansi Disable ANSI output + --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug ``` @@ -131,7 +131,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # Linter install RUN phive --no-progress install phpstan -g --trust-gpg-keys CF1A108D0E7AE720 diff --git a/docs/descriptors/php_psalm.md b/docs/descriptors/php_psalm.md index 37a20e4af47..a87ac07140d 100644 --- a/docs/descriptors/php_psalm.md +++ b/docs/descriptors/php_psalm.md @@ -262,7 +262,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # Linter install RUN 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 8a49063bf52..0c62415c981 100644 --- a/docs/descriptors/powershell_powershell.md +++ b/docs/descriptors/powershell_powershell.md @@ -4,7 +4,7 @@ ## powershell documentation -- Version in MegaLinter: **7.2.0** +- Version in MegaLinter: **7.2.1** - Visit [Official Web Site](https://github.com/PowerShell/PSScriptAnalyzer#readme){target=_blank} - See [How to configure powershell rules](https://github.com/PowerShell/PSScriptAnalyzer#explicit){target=_blank} - If custom `.powershell-psscriptanalyzer.psd1` config file is not found, [.powershell-psscriptanalyzer.psd1](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.powershell-psscriptanalyzer.psd1){target=_blank} will be used diff --git a/docs/descriptors/puppet_puppet_lint.md b/docs/descriptors/puppet_puppet_lint.md index c4b2aefc19e..e929561a225 100644 --- a/docs/descriptors/puppet_puppet_lint.md +++ b/docs/descriptors/puppet_puppet_lint.md @@ -115,70 +115,70 @@ puppet-lint --fail-on-warnings --no-autoloader_layout-check --fix myfile.pp Checks: --only-checks CHECKS A comma separated list of checks that should be run --ignore-paths PATHS A comma separated list of patterns to ignore - --no-slash_comments-check Skip the slash_comments check. - --no-star_comments-check Skip the star_comments check. + --no-case_without_default-check + Skip the case_without_default check. + --no-selector_inside_resource-check + Skip the selector_inside_resource check. --no-file_mode-check Skip the file_mode check. --no-ensure_first_param-check Skip the ensure_first_param check. + --no-unquoted_resource_title-check + Skip the unquoted_resource_title check. --no-ensure_not_symlink_target-check Skip the ensure_not_symlink_target check. --no-duplicate_params-check Skip the duplicate_params check. - --no-unquoted_resource_title-check - Skip the unquoted_resource_title check. --no-unquoted_file_mode-check Skip the unquoted_file_mode check. - --no-variable_contains_dash-check - Skip the variable_contains_dash check. - --no-variable_is_lowercase-check - Skip the variable_is_lowercase check. - --no-unquoted_node_name-check - Skip the unquoted_node_name check. - --no-inherits_across_namespaces-check - Skip the inherits_across_namespaces check. - --no-code_on_top_scope-check Skip the code_on_top_scope check. - --code_on_top_scope-check Enable the code_on_top_scope check. - --no-right_to_left_relationship-check - Skip the right_to_left_relationship check. + --no-hard_tabs-check Skip the hard_tabs check. + --no-80chars-check Skip the 80chars check. + --80chars-check Enable the 80chars check. + --no-trailing_whitespace-check + Skip the trailing_whitespace check. + --no-140chars-check Skip the 140chars check. + --no-arrow_alignment-check Skip the arrow_alignment check. + --no-2sp_soft_tabs-check Skip the 2sp_soft_tabs check. + --no-slash_comments-check Skip the slash_comments check. + --no-star_comments-check Skip the star_comments check. --no-names_containing_uppercase-check Skip the names_containing_uppercase check. + --no-variable_scope-check Skip the variable_scope check. + --no-parameter_order-check Skip the parameter_order check. + --no-autoloader_layout-check Skip the autoloader_layout check. --no-names_containing_dash-check Skip the names_containing_dash check. + --no-right_to_left_relationship-check + Skip the right_to_left_relationship check. + --no-nested_classes_or_defines-check + Skip the nested_classes_or_defines check. + --no-code_on_top_scope-check Skip the code_on_top_scope check. + --code_on_top_scope-check Enable the code_on_top_scope check. --no-class_inherits_from_params_class-check Skip the class_inherits_from_params_class check. --class_inherits_from_params_class-check Enable the class_inherits_from_params_class check. - --no-parameter_order-check Skip the parameter_order check. --no-arrow_on_right_operand_line-check Skip the arrow_on_right_operand_line check. - --no-nested_classes_or_defines-check - Skip the nested_classes_or_defines check. - --no-variable_scope-check Skip the variable_scope check. - --no-autoloader_layout-check Skip the autoloader_layout check. - --no-2sp_soft_tabs-check Skip the 2sp_soft_tabs check. - --no-trailing_whitespace-check - Skip the trailing_whitespace check. - --no-140chars-check Skip the 140chars check. - --no-80chars-check Skip the 80chars check. - --80chars-check Enable the 80chars check. - --no-arrow_alignment-check Skip the arrow_alignment check. - --no-hard_tabs-check Skip the hard_tabs check. - --no-case_without_default-check - Skip the case_without_default check. - --no-selector_inside_resource-check - Skip the selector_inside_resource check. - --no-documentation-check Skip the documentation check. - --no-puppet_url_without_modules-check - Skip the puppet_url_without_modules check. - --no-only_variable_string-check - Skip the only_variable_string check. - --no-single_quote_string_with_variables-check - Skip the single_quote_string_with_variables check. - --no-double_quoted_strings-check - Skip the double_quoted_strings check. + --no-inherits_across_namespaces-check + Skip the inherits_across_namespaces check. + --no-variable_is_lowercase-check + Skip the variable_is_lowercase check. + --no-variable_contains_dash-check + Skip the variable_contains_dash check. --no-quoted_booleans-check Skip the quoted_booleans check. --quoted_booleans-check Enable the quoted_booleans check. --no-variables_not_enclosed-check Skip the variables_not_enclosed check. + --no-double_quoted_strings-check + Skip the double_quoted_strings check. + --no-single_quote_string_with_variables-check + Skip the single_quote_string_with_variables check. + --no-only_variable_string-check + Skip the only_variable_string check. + --no-puppet_url_without_modules-check + Skip the puppet_url_without_modules check. + --no-documentation-check Skip the documentation check. + --no-unquoted_node_name-check + Skip the unquoted_node_name check. ``` ### Installation on mega-linter Docker image diff --git a/docs/descriptors/python_flake8.md b/docs/descriptors/python_flake8.md index a14c3157209..dd4ac80b069 100644 --- a/docs/descriptors/python_flake8.md +++ b/docs/descriptors/python_flake8.md @@ -124,8 +124,8 @@ optional arguments: of opening bracket's line. --ignore errors Comma-separated list of errors and warnings to ignore (or skip). For example, ``--ignore=E4,E51,W234``. - (Default: ['E123', 'E121', 'W503', 'E126', 'E226', - 'E704', 'W504', 'E24']) + (Default: ['E123', 'W504', 'E121', 'E24', 'E226', + 'E704', 'W503', 'E126']) --extend-ignore errors Comma-separated list of errors and warnings to add to the list of ignored ones. For example, ``--extend- diff --git a/docs/descriptors/python_mypy.md b/docs/descriptors/python_mypy.md index 1796c50d47a..19addcbbc91 100644 --- a/docs/descriptors/python_mypy.md +++ b/docs/descriptors/python_mypy.md @@ -13,7 +13,7 @@ If you don't use python static typing, you should disable this linter by adding ## mypy documentation -- Version in MegaLinter: **0.910** +- Version in MegaLinter: **0.930** - Visit [Official Web Site](https://mypy.readthedocs.io/en/stable/){target=_blank} - See [How to configure mypy rules](https://mypy.readthedocs.io/en/stable/config_file.html){target=_blank} - If custom `.mypy.ini` config file is not found, [.mypy.ini](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.mypy.ini){target=_blank} will be used @@ -341,7 +341,8 @@ Running code: --exclude PATTERN Regular expression to match file names, directory names or paths which mypy should ignore while recursively discovering files to check, e.g. - --exclude '/setup\.py$' + --exclude '/setup\.py$'. May be specified more + than once, eg. --exclude a --exclude b -m MODULE, --module MODULE Type-check module; can repeat for more modules -p PACKAGE, --package PACKAGE diff --git a/docs/descriptors/snakemake_snakemake.md b/docs/descriptors/snakemake_snakemake.md index 08fcdc8a5e6..473e32281f1 100644 --- a/docs/descriptors/snakemake_snakemake.md +++ b/docs/descriptors/snakemake_snakemake.md @@ -9,7 +9,7 @@ ## snakemake documentation -- Version in MegaLinter: **6.12.1** +- Version in MegaLinter: **6.12.3** - 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} diff --git a/docs/descriptors/spell_cspell.md b/docs/descriptors/spell_cspell.md index de39fd242f4..6f562a79069 100644 --- a/docs/descriptors/spell_cspell.md +++ b/docs/descriptors/spell_cspell.md @@ -7,7 +7,7 @@ Copy it at the root of your repository, read it, remove real spelling errors (af ## cspell documentation -- Version in MegaLinter: **5.13.2** +- Version in MegaLinter: **5.14.0** - 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} @@ -99,7 +99,7 @@ Options: -h, --help display help for command Commands: - lint [options] [files...] Check spelling + lint [options] [globs...] Check spelling trace [options] Trace words Search for words in the configuration and dictionaries. check [options] Spell check file(s) and display the result. The diff --git a/docs/descriptors/sql_sqlfluff.md b/docs/descriptors/sql_sqlfluff.md index f7a2fed270d..0fc6e3fd10d 100644 --- a/docs/descriptors/sql_sqlfluff.md +++ b/docs/descriptors/sql_sqlfluff.md @@ -9,7 +9,7 @@ ## sqlfluff documentation -- Version in MegaLinter: **0.8.2** +- Version in MegaLinter: **0.9.0** - Visit [Official Web Site](https://www.sqlfluff.com/){target=_blank} - See [How to configure sqlfluff rules](https://docs.sqlfluff.com/en/stable/configuration.html){target=_blank} - See [Index of problems detected by sqlfluff](https://docs.sqlfluff.com/en/stable/rules.html){target=_blank} diff --git a/docs/descriptors/terraform_checkov.md b/docs/descriptors/terraform_checkov.md index fd7b557a53a..ad8fcdeaac7 100644 --- a/docs/descriptors/terraform_checkov.md +++ b/docs/descriptors/terraform_checkov.md @@ -9,7 +9,7 @@ ## checkov documentation -- Version in MegaLinter: **2.0.632** +- Version in MegaLinter: **2.0.702** - Visit [Official Web Site](https://www.checkov.io/){target=_blank} - See [How to disable checkov rules in files](https://www.checkov.io/2.Basics/Suppressing%20and%20Skipping%20Policies.html){target=_blank} - See [Index of problems detected by checkov](https://www.checkov.io/5.Policy%20Index/all.html){target=_blank} @@ -186,8 +186,8 @@ optional arguments: files (see https://www.terraform.io/docs/language/valu es/variables.html#variable-definitions-tfvars- files).Currently only supported for source Terraform - (.tf file) scans. Requires using --directory, not - --file. + (.tf file), and Helm chart scans.Requires using + --directory, not --file. --external-modules-download-path EXTERNAL_MODULES_DOWNLOAD_PATH set the path for the download external terraform modules [env var: EXTERNAL_MODULES_DIR] diff --git a/docs/descriptors/terraform_kics.md b/docs/descriptors/terraform_kics.md index 7ac0b2052e7..902a981352b 100644 --- a/docs/descriptors/terraform_kics.md +++ b/docs/descriptors/terraform_kics.md @@ -9,7 +9,7 @@ ## kics documentation -- Version in MegaLinter: **1.4.8** +- Version in MegaLinter: **1.4.9** - Visit [Official Web Site](https://www.kics.io){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} diff --git a/docs/descriptors/terraform_terraform_fmt.md b/docs/descriptors/terraform_terraform_fmt.md index 41021d3b689..85a8f39910b 100644 --- a/docs/descriptors/terraform_terraform_fmt.md +++ b/docs/descriptors/terraform_terraform_fmt.md @@ -9,7 +9,7 @@ ## terraform-fmt documentation -- Version in MegaLinter: **1.0.11** +- Version in MegaLinter: **1.1.2** - Visit [Official Web Site](https://www.terraform.io/docs/cli/commands/fmt.html){target=_blank} [![terraform - GitHub](https://gh-card.dev/repos/hashicorp/terraform.svg?fullname=)](https://github.com/hashicorp/terraform){target=_blank} diff --git a/docs/descriptors/terraform_terragrunt.md b/docs/descriptors/terraform_terragrunt.md index 2bc9d9a6dda..ae128464c28 100644 --- a/docs/descriptors/terraform_terragrunt.md +++ b/docs/descriptors/terraform_terragrunt.md @@ -4,7 +4,7 @@ ## terragrunt documentation -- Version in MegaLinter: **0.35.13** +- Version in MegaLinter: **0.35.16** - 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} @@ -115,7 +115,7 @@ GLOBAL OPTIONS: terragrunt-json-out The file path that terragrunt should use when rendering the terragrunt.hcl config as json. Only used in the render-json command. Defaults to terragrunt_rendered.json. VERSION: - v0.35.13 + v0.35.16 AUTHOR(S): Gruntwork diff --git a/docs/descriptors/terraform_tflint.md b/docs/descriptors/terraform_tflint.md index 7f3e82bc338..936590c93c2 100644 --- a/docs/descriptors/terraform_tflint.md +++ b/docs/descriptors/terraform_tflint.md @@ -4,7 +4,7 @@ ## tflint documentation -- Version in MegaLinter: **0.33.1** +- Version in MegaLinter: **0.34.1** - Visit [Official Web Site](https://github.com/terraform-linters/tflint#readme){target=_blank} - See [How to configure tflint rules](https://github.com/terraform-linters/tflint/blob/master/docs/guides/config.md){target=_blank} - If custom `.tflint.hcl` config file is not found, [.tflint.hcl](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.tflint.hcl){target=_blank} will be used diff --git a/docs/descriptors/tsx_eslint.md b/docs/descriptors/tsx_eslint.md index 5083045d3fa..330187a58ff 100644 --- a/docs/descriptors/tsx_eslint.md +++ b/docs/descriptors/tsx_eslint.md @@ -13,7 +13,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.4.1** +- Version in MegaLinter: **8.6.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} diff --git a/docs/descriptors/typescript_eslint.md b/docs/descriptors/typescript_eslint.md index a467fd1d746..2fe153fcc0c 100644 --- a/docs/descriptors/typescript_eslint.md +++ b/docs/descriptors/typescript_eslint.md @@ -13,7 +13,7 @@ You can create it by typing `npx eslint --init` in the root of your repository ## eslint documentation -- Version in MegaLinter: **8.4.1** +- Version in MegaLinter: **8.6.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} diff --git a/docs/index.md b/docs/index.md index 4175db3cd06..b6949143d68 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,7 +13,7 @@ ![GitHub release](https://img.shields.io/github/v/release/megalinter/megalinter?sort=semver) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.6M-blue)](https://megalinter.github.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.9M-blue)](https://megalinter.github.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/megalinter/megalinter?cacheSeconds=3600)](https://github.com/megalinter/megalinter/stargazers/) [![MegaLinter](https://github.com/megalinter/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://github.com/megalinter/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain) diff --git a/docs/standalone-linters.md b/docs/standalone-linters.md index 481d234f7b0..ea44f0261d4 100644 --- a/docs/standalone-linters.md +++ b/docs/standalone-linters.md @@ -1,102 +1,22 @@ # Standalone linter docker images -| Linter key | Docker image | Size | -|:----------------------------------|:----------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------:| -| ACTION_ACTIONLINT | megalinter/megalinter-only-action_actionlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-action_actionlint/v6-alpha) | -| ANSIBLE_ANSIBLE_LINT | megalinter/megalinter-only-ansible_ansible_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-ansible_ansible_lint/v6-alpha) | -| ARM_ARM_TTK | megalinter/megalinter-only-arm_arm_ttk:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-arm_arm_ttk/v6-alpha) | -| BASH_EXEC | megalinter/megalinter-only-bash_exec:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-bash_exec/v6-alpha) | -| BASH_SHELLCHECK | megalinter/megalinter-only-bash_shellcheck:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-bash_shellcheck/v6-alpha) | -| BASH_SHFMT | megalinter/megalinter-only-bash_shfmt:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-bash_shfmt/v6-alpha) | -| C_CPPLINT | megalinter/megalinter-only-c_cpplint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-c_cpplint/v6-alpha) | -| CLOJURE_CLJ_KONDO | megalinter/megalinter-only-clojure_clj_kondo:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-clojure_clj_kondo/v6-alpha) | -| CLOUDFORMATION_CFN_LINT | megalinter/megalinter-only-cloudformation_cfn_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-cloudformation_cfn_lint/v6-alpha) | -| COFFEE_COFFEELINT | megalinter/megalinter-only-coffee_coffeelint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-coffee_coffeelint/v6-alpha) | -| COPYPASTE_JSCPD | megalinter/megalinter-only-copypaste_jscpd:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-copypaste_jscpd/v6-alpha) | -| CPP_CPPLINT | megalinter/megalinter-only-cpp_cpplint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-cpp_cpplint/v6-alpha) | -| CSHARP_DOTNET_FORMAT | megalinter/megalinter-only-csharp_dotnet_format:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-csharp_dotnet_format/v6-alpha) | -| CSS_STYLELINT | megalinter/megalinter-only-css_stylelint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-css_stylelint/v6-alpha) | -| CSS_SCSS_LINT | megalinter/megalinter-only-css_scss_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-css_scss_lint/v6-alpha) | -| DART_DARTANALYZER | megalinter/megalinter-only-dart_dartanalyzer:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-dart_dartanalyzer/v6-alpha) | -| DOCKERFILE_HADOLINT | megalinter/megalinter-only-dockerfile_hadolint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-dockerfile_hadolint/v6-alpha) | -| EDITORCONFIG_EDITORCONFIG_CHECKER | megalinter/megalinter-only-editorconfig_editorconfig_checker:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-editorconfig_editorconfig_checker/v6-alpha) | -| ENV_DOTENV_LINTER | megalinter/megalinter-only-env_dotenv_linter:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-env_dotenv_linter/v6-alpha) | -| GHERKIN_GHERKIN_LINT | megalinter/megalinter-only-gherkin_gherkin_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-gherkin_gherkin_lint/v6-alpha) | -| GO_GOLANGCI_LINT | megalinter/megalinter-only-go_golangci_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-go_golangci_lint/v6-alpha) | -| GO_REVIVE | megalinter/megalinter-only-go_revive:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-go_revive/v6-alpha) | -| GRAPHQL_GRAPHQL_SCHEMA_LINTER | megalinter/megalinter-only-graphql_graphql_schema_linter:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-graphql_graphql_schema_linter/v6-alpha) | -| GROOVY_NPM_GROOVY_LINT | megalinter/megalinter-only-groovy_npm_groovy_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-groovy_npm_groovy_lint/v6-alpha) | -| HTML_HTMLHINT | megalinter/megalinter-only-html_htmlhint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-html_htmlhint/v6-alpha) | -| JAVA_CHECKSTYLE | megalinter/megalinter-only-java_checkstyle:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-java_checkstyle/v6-alpha) | -| JAVASCRIPT_ES | megalinter/megalinter-only-javascript_es:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-javascript_es/v6-alpha) | -| JAVASCRIPT_STANDARD | megalinter/megalinter-only-javascript_standard:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-javascript_standard/v6-alpha) | -| JAVASCRIPT_PRETTIER | megalinter/megalinter-only-javascript_prettier:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-javascript_prettier/v6-alpha) | -| JSON_JSONLINT | megalinter/megalinter-only-json_jsonlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-json_jsonlint/v6-alpha) | -| JSON_ESLINT_PLUGIN_JSONC | megalinter/megalinter-only-json_eslint_plugin_jsonc:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-json_eslint_plugin_jsonc/v6-alpha) | -| JSON_V8R | megalinter/megalinter-only-json_v8r:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-json_v8r/v6-alpha) | -| JSON_PRETTIER | megalinter/megalinter-only-json_prettier:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-json_prettier/v6-alpha) | -| JSX_ESLINT | megalinter/megalinter-only-jsx_eslint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-jsx_eslint/v6-alpha) | -| KOTLIN_KTLINT | megalinter/megalinter-only-kotlin_ktlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-kotlin_ktlint/v6-alpha) | -| KUBERNETES_KUBEVAL | megalinter/megalinter-only-kubernetes_kubeval:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-kubernetes_kubeval/v6-alpha) | -| LATEX_CHKTEX | megalinter/megalinter-only-latex_chktex:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-latex_chktex/v6-alpha) | -| LUA_LUACHECK | megalinter/megalinter-only-lua_luacheck:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-lua_luacheck/v6-alpha) | -| MARKDOWN_MARKDOWNLINT | megalinter/megalinter-only-markdown_markdownlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-markdown_markdownlint/v6-alpha) | -| MARKDOWN_REMARK_LINT | megalinter/megalinter-only-markdown_remark_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-markdown_remark_lint/v6-alpha) | -| MARKDOWN_MARKDOWN_LINK_CHECK | megalinter/megalinter-only-markdown_markdown_link_check:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-markdown_markdown_link_check/v6-alpha) | -| MARKDOWN_MARKDOWN_TABLE_FORMATTER | megalinter/megalinter-only-markdown_markdown_table_formatter:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-markdown_markdown_table_formatter/v6-alpha) | -| OPENAPI_SPECTRAL | megalinter/megalinter-only-openapi_spectral:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-openapi_spectral/v6-alpha) | -| PERL_PERLCRITIC | megalinter/megalinter-only-perl_perlcritic:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-perl_perlcritic/v6-alpha) | -| PHP_PHPCS | megalinter/megalinter-only-php_phpcs:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-php_phpcs/v6-alpha) | -| PHP_PHPSTAN | megalinter/megalinter-only-php_phpstan:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-php_phpstan/v6-alpha) | -| PHP_PSALM | megalinter/megalinter-only-php_psalm:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-php_psalm/v6-alpha) | -| PHP_PHPLINT | megalinter/megalinter-only-php_phplint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-php_phplint/v6-alpha) | -| POWERSHELL_POWERSHELL | megalinter/megalinter-only-powershell_powershell:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-powershell_powershell/v6-alpha) | -| PROTOBUF_PROTOLINT | megalinter/megalinter-only-protobuf_protolint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-protobuf_protolint/v6-alpha) | -| PUPPET_PUPPET_LINT | megalinter/megalinter-only-puppet_puppet_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-puppet_puppet_lint/v6-alpha) | -| PYTHON_PYLINT | megalinter/megalinter-only-python_pylint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_pylint/v6-alpha) | -| PYTHON_BLACK | megalinter/megalinter-only-python_black:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_black/v6-alpha) | -| PYTHON_FLAKE8 | megalinter/megalinter-only-python_flake8:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_flake8/v6-alpha) | -| PYTHON_ISORT | megalinter/megalinter-only-python_isort:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_isort/v6-alpha) | -| PYTHON_BANDIT | megalinter/megalinter-only-python_bandit:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_bandit/v6-alpha) | -| PYTHON_MYPY | megalinter/megalinter-only-python_mypy:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_mypy/v6-alpha) | -| R_LINTR | megalinter/megalinter-only-r_lintr:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-r_lintr/v6-alpha) | -| RAKU_RAKU | megalinter/megalinter-only-raku_raku:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-raku_raku/v6-alpha) | -| REPOSITORY_GIT_DIFF | megalinter/megalinter-only-repository_git_diff:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_git_diff/v6-alpha) | -| REPOSITORY_SECRETLINT | megalinter/megalinter-only-repository_secretlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_secretlint/v6-alpha) | -| REPOSITORY_GITLEAKS | megalinter/megalinter-only-repository_gitleaks:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_gitleaks/v6-alpha) | -| REPOSITORY_GOODCHECK | megalinter/megalinter-only-repository_goodcheck:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_goodcheck/v6-alpha) | -| REPOSITORY_TRIVY | megalinter/megalinter-only-repository_trivy:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_trivy/v6-alpha) | -| RST_RST_LINT | megalinter/megalinter-only-rst_rst_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-rst_rst_lint/v6-alpha) | -| RST_RSTCHECK | megalinter/megalinter-only-rst_rstcheck:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-rst_rstcheck/v6-alpha) | -| RST_RSTFMT | megalinter/megalinter-only-rst_rstfmt:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-rst_rstfmt/v6-alpha) | -| RUBY_RUBOCOP | megalinter/megalinter-only-ruby_rubocop:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-ruby_rubocop/v6-alpha) | -| RUST_CLIPPY | megalinter/megalinter-only-rust_clippy:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-rust_clippy/v6-alpha) | -| SALESFORCE_SFDX_SCANNER_APEX | megalinter/megalinter-only-salesforce_sfdx_scanner_apex:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-salesforce_sfdx_scanner_apex/v6-alpha) | -| SALESFORCE_SFDX_SCANNER_AURA | megalinter/megalinter-only-salesforce_sfdx_scanner_aura:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-salesforce_sfdx_scanner_aura/v6-alpha) | -| SALESFORCE_SFDX_SCANNER_LWC | megalinter/megalinter-only-salesforce_sfdx_scanner_lwc:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-salesforce_sfdx_scanner_lwc/v6-alpha) | -| SCALA_SCALAFIX | megalinter/megalinter-only-scala_scalafix:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-scala_scalafix/v6-alpha) | -| SNAKEMAKE_LINT | megalinter/megalinter-only-snakemake_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-snakemake_lint/v6-alpha) | -| SNAKEMAKE_SNAKEFMT | megalinter/megalinter-only-snakemake_snakefmt:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-snakemake_snakefmt/v6-alpha) | -| SPELL_MISSPELL | megalinter/megalinter-only-spell_misspell:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-spell_misspell/v6-alpha) | -| SPELL_CSPELL | megalinter/megalinter-only-spell_cspell:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-spell_cspell/v6-alpha) | -| SQL_SQL_LINT | megalinter/megalinter-only-sql_sql_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-sql_sql_lint/v6-alpha) | -| SQL_SQLFLUFF | megalinter/megalinter-only-sql_sqlfluff:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-sql_sqlfluff/v6-alpha) | -| SQL_TSQLLINT | megalinter/megalinter-only-sql_tsqllint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-sql_tsqllint/v6-alpha) | -| SWIFT_SWIFTLINT | megalinter/megalinter-only-swift_swiftlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-swift_swiftlint/v6-alpha) | -| TEKTON_TEKTON_LINT | megalinter/megalinter-only-tekton_tekton_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-tekton_tekton_lint/v6-alpha) | -| TERRAFORM_TFLINT | megalinter/megalinter-only-terraform_tflint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_tflint/v6-alpha) | -| TERRAFORM_TERRASCAN | megalinter/megalinter-only-terraform_terrascan:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_terrascan/v6-alpha) | -| TERRAFORM_TERRAGRUNT | megalinter/megalinter-only-terraform_terragrunt:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_terragrunt/v6-alpha) | -| TERRAFORM_TERRAFORM_FMT | megalinter/megalinter-only-terraform_terraform_fmt:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_terraform_fmt/v6-alpha) | -| TERRAFORM_CHECKOV | megalinter/megalinter-only-terraform_checkov:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_checkov/v6-alpha) | -| TERRAFORM_KICS | megalinter/megalinter-only-terraform_kics:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_kics/v6-alpha) | -| TSX_ESLINT | megalinter/megalinter-only-tsx_eslint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-tsx_eslint/v6-alpha) | -| TYPESCRIPT_ES | megalinter/megalinter-only-typescript_es:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-typescript_es/v6-alpha) | -| TYPESCRIPT_STANDARD | megalinter/megalinter-only-typescript_standard:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-typescript_standard/v6-alpha) | -| TYPESCRIPT_PRETTIER | megalinter/megalinter-only-typescript_prettier:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-typescript_prettier/v6-alpha) | -| VBDOTNET_DOTNET_FORMAT | megalinter/megalinter-only-vbdotnet_dotnet_format:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-vbdotnet_dotnet_format/v6-alpha) | -| XML_XMLLINT | megalinter/megalinter-only-xml_xmllint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-xml_xmllint/v6-alpha) | -| YAML_PRETTIER | megalinter/megalinter-only-yaml_prettier:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-yaml_prettier/v6-alpha) | -| YAML_YAMLLINT | megalinter/megalinter-only-yaml_yamllint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-yaml_yamllint/v6-alpha) | -| YAML_V8R | megalinter/megalinter-only-yaml_v8r:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-yaml_v8r/v6-alpha) | +| Linter key | Docker image | Size | +|:-------------------------|:-------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------:| +| CLOUDFORMATION_CFN_LINT | megalinter/megalinter-only-cloudformation_cfn_lint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-cloudformation_cfn_lint/v6-alpha) | +| DOCKERFILE_HADOLINT | megalinter/megalinter-only-dockerfile_hadolint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-dockerfile_hadolint/v6-alpha) | +| GO_REVIVE | megalinter/megalinter-only-go_revive:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-go_revive/v6-alpha) | +| JAVA_CHECKSTYLE | megalinter/megalinter-only-java_checkstyle:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-java_checkstyle/v6-alpha) | +| JAVASCRIPT_ES | megalinter/megalinter-only-javascript_es:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-javascript_es/v6-alpha) | +| JSON_ESLINT_PLUGIN_JSONC | megalinter/megalinter-only-json_eslint_plugin_jsonc:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-json_eslint_plugin_jsonc/v6-alpha) | +| JSX_ESLINT | megalinter/megalinter-only-jsx_eslint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-jsx_eslint/v6-alpha) | +| KOTLIN_KTLINT | megalinter/megalinter-only-kotlin_ktlint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-kotlin_ktlint/v6-alpha) | +| PHP_PSALM | megalinter/megalinter-only-php_psalm:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-php_psalm/v6-alpha) | +| PYTHON_BANDIT | megalinter/megalinter-only-python_bandit:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-python_bandit/v6-alpha) | +| REPOSITORY_GITLEAKS | megalinter/megalinter-only-repository_gitleaks:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_gitleaks/v6-alpha) | +| REPOSITORY_TRIVY | megalinter/megalinter-only-repository_trivy:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-repository_trivy/v6-alpha) | +| TERRAFORM_TFLINT | megalinter/megalinter-only-terraform_tflint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_tflint/v6-alpha) | +| TERRAFORM_TERRASCAN | megalinter/megalinter-only-terraform_terrascan:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_terrascan/v6-alpha) | +| TERRAFORM_CHECKOV | megalinter/megalinter-only-terraform_checkov:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-terraform_checkov/v6-alpha) | +| TSX_ESLINT | megalinter/megalinter-only-tsx_eslint:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-tsx_eslint/v6-alpha) | +| TYPESCRIPT_ES | megalinter/megalinter-only-typescript_es:v6-alpha | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-only-typescript_es/v6-alpha) | diff --git a/entrypoint.sh b/entrypoint.sh index 12d3c751685..60bdfcc5242 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -3,8 +3,15 @@ PYTHONPATH=$PYTHONPATH:$(pwd) export PYTHONPATH +# Manage debug mode +LOG_LEVEL="${LOG_LEVEL:-INFO}" # Default log level (VERBOSE, DEBUG, TRACE) +if [[ ${LOG_LEVEL} == "DEBUG" ]]; then + printenv +fi + +# Called by Auto-update CI job if [ "${UPGRADE_LINTERS_VERSION}" == "true" ]; then - echo "UPGRADING LINTER VERSION" + echo "[MegaLinter init] UPGRADING LINTER VERSION" pip install pytest-cov pytest-timeout # Run only get_linter_version test methods pytest -v --durations=0 -k _get_linter_version megalinter/ @@ -18,10 +25,10 @@ if [ "${UPGRADE_LINTERS_VERSION}" == "true" ]; then exit $? fi +# Run test cases with pytest if [ "${TEST_CASE_RUN}" == "true" ]; then - # Run test cases with pytest + echo "[MegaLinter init] RUNNING TEST CASES" pip install pytest-cov pytest-timeout - echo "RUNNING TEST CASES" if [ -z "${TEST_KEYWORDS}" ]; then pytest -v --timeout=80 --durations=0 --cov=megalinter --cov-report=xml megalinter/ else @@ -39,13 +46,45 @@ if [ "${TEST_CASE_RUN}" == "true" ]; then # Upload to codecov.io if all tests run if [ -z "${TEST_KEYWORDS}" ]; then bash <(curl -s https://codecov.io/bash) + exit $? fi + exit $? +fi +if [ "${MEGALINTER_SERVER}" == "true" ]; then + # MegaLinter HTTP server run + set -eu + echo "[MegaLinter init] MEGALINTER SERVER" + python ./megalinter/megalinter_server.py else - # Normal run - LOG_LEVEL="${LOG_LEVEL:-INFO}" # Default log level (VERBOSE, DEBUG, TRACE) - if [[ ${LOG_LEVEL} == "DEBUG" ]]; then - printenv + if [ "${MEGALINTER_SSH}" == "true" ]; then + # MegaLinter SSH server + set -eu + SSH_VOLUME_FOLDER=/root/docker_ssh + if [ -d "$SSH_VOLUME_FOLDER" ]; then + # SSH key copy from local volume + echo "Docker ssh folder content:" + ls "$SSH_VOLUME_FOLDER" + mkdir ~/.ssh + chmod 700 ~/.ssh + touch ~/.ssh/authorized_keys + chmod 600 ~/.ssh/authorized_keys + cat $SSH_VOLUME_FOLDER/id_rsa.pub >> ~/.ssh/authorized_keys + chmod 644 /root/.ssh/authorized_keys + mkdir -p /var/run/sshd + ssh-keygen -A + sed -i s/^#PasswordAuthentication\ yes/PasswordAuthentication\ no/ /etc/ssh/sshd_config + sed -i s/^#PermitRootLogin\ prohibit-password/PermitRootLogin\ yes/ /etc/ssh/sshd_config + sed -i s/^#PermitUserEnvironment\ no/PermitUserEnvironment\ yes/ /etc/ssh/sshd_config + echo "root:root" | chpasswd + fi + # SSH startup + echo "[MegaLinter init] SSH" + tmux new -s main -d + /usr/sbin/sshd -D + else + # Normal (run megalinter) + echo "[MegaLinter init] ONE-SHOT RUN" + python -m megalinter.run fi - python -m megalinter.run fi diff --git a/flavors/ci_light/Dockerfile b/flavors/ci_light/Dockerfile index 85841b482f7..6d27ac07de6 100644 --- a/flavors/ci_light/Dockerfile +++ b/flavors/ci_light/Dockerfile @@ -39,7 +39,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -135,13 +137,6 @@ RUN curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -174,10 +169,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=ci_light #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -195,3 +186,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/dart/Dockerfile b/flavors/dart/Dockerfile index 4a749c0b76e..49d0aa6b920 100644 --- a/flavors/dart/Dockerfile +++ b/flavors/dart/Dockerfile @@ -41,7 +41,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -212,13 +214,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -251,10 +246,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=dart #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -272,3 +263,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/documentation/Dockerfile b/flavors/documentation/Dockerfile index 52f9c28b039..02fa7e24610 100644 --- a/flavors/documentation/Dockerfile +++ b/flavors/documentation/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -201,13 +203,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -240,10 +235,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=documentation #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -261,3 +252,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/dotnet/Dockerfile b/flavors/dotnet/Dockerfile index 5a05f1b6ba4..fea28421491 100644 --- a/flavors/dotnet/Dockerfile +++ b/flavors/dotnet/Dockerfile @@ -45,7 +45,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -280,13 +282,6 @@ RUN dotnet tool install --global TSQLLint #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -319,10 +314,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=dotnet #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -340,3 +331,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/go/Dockerfile b/flavors/go/Dockerfile index 2196f25f251..9adf63ee7bb 100644 --- a/flavors/go/Dockerfile +++ b/flavors/go/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -209,13 +211,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -248,10 +243,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=go #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -269,3 +260,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/java/Dockerfile b/flavors/java/Dockerfile index a814cbba672..d4b7cb9da73 100644 --- a/flavors/java/Dockerfile +++ b/flavors/java/Dockerfile @@ -11,7 +11,7 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM cljkondo/clj-kondo:2021.06.18-alpine as clj-kondo +FROM cljkondo/clj-kondo:2021.12.19-alpine as clj-kondo FROM hadolint/hadolint:v2.8.0-alpine as hadolint FROM yoheimuta/protolint:latest as protolint FROM zricethezav/gitleaks:latest as gitleaks @@ -41,7 +41,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -218,13 +220,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -257,10 +252,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=java #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -278,3 +269,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index 61f8b7c4e90..e7fe4d70009 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -221,13 +223,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -260,10 +255,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=javascript #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -281,3 +272,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 6dd2ce67a30..e94ed7b0d86 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -72,6 +74,7 @@ RUN apk add --update --no-cache \ php8-dom \ php8-simplexml \ composer \ + dpkg \ nodejs \ npm \ yarn \ @@ -179,7 +182,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # actionlint installation @@ -254,13 +259,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -293,10 +291,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=php #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -314,3 +308,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/python/Dockerfile b/flavors/python/Dockerfile index 006d62d0062..207a152bcd3 100644 --- a/flavors/python/Dockerfile +++ b/flavors/python/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -212,13 +214,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -251,10 +246,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=python #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -272,3 +263,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/ruby/Dockerfile b/flavors/ruby/Dockerfile index b5d4f31dd2b..0217bbe1e5c 100644 --- a/flavors/ruby/Dockerfile +++ b/flavors/ruby/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -206,13 +208,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -245,10 +240,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=ruby #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -266,3 +257,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/rust/Dockerfile b/flavors/rust/Dockerfile index cbf12014376..31817e54c63 100644 --- a/flavors/rust/Dockerfile +++ b/flavors/rust/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -208,13 +210,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -247,10 +242,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=rust #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -268,3 +259,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/salesforce/Dockerfile b/flavors/salesforce/Dockerfile index bba08858049..88dd235d463 100644 --- a/flavors/salesforce/Dockerfile +++ b/flavors/salesforce/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -218,13 +220,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -257,10 +252,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=salesforce #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -278,3 +269,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#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/scala/Dockerfile b/flavors/scala/Dockerfile index f7a8c3afa2e..d5fffa038d7 100644 --- a/flavors/scala/Dockerfile +++ b/flavors/scala/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -209,13 +211,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -248,10 +243,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=scala #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -269,3 +260,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#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/security/Dockerfile b/flavors/security/Dockerfile index c836c525362..24a9af43461 100644 --- a/flavors/security/Dockerfile +++ b/flavors/security/Dockerfile @@ -43,7 +43,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -160,13 +162,6 @@ COPY --from=kics /app/bin/assets /opt/kics/assets/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -199,10 +194,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=security #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -220,3 +211,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/swift/Dockerfile b/flavors/swift/Dockerfile index 23ee33353f4..313ba04c8ad 100644 --- a/flavors/swift/Dockerfile +++ b/flavors/swift/Dockerfile @@ -40,7 +40,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -204,13 +206,6 @@ RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -243,10 +238,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=swift #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -264,3 +255,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/terraform/Dockerfile b/flavors/terraform/Dockerfile index 2ef5a502ef1..e3dd9daabf1 100644 --- a/flavors/terraform/Dockerfile +++ b/flavors/terraform/Dockerfile @@ -44,7 +44,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -229,13 +231,6 @@ COPY --from=kics /app/bin/assets /opt/kics/assets/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -268,10 +263,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=terraform #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START - -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -289,3 +280,9 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#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/linters/action_actionlint/Dockerfile b/linters/action_actionlint/Dockerfile index 2ad6b6f970f..9ae589afd15 100644 --- a/linters/action_actionlint/Dockerfile +++ b/linters/action_actionlint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/ansible_ansible_lint/Dockerfile b/linters/ansible_ansible_lint/Dockerfile index 3543eeb9b86..c93d5b813c8 100644 --- a/linters/ansible_ansible_lint/Dockerfile +++ b/linters/ansible_ansible_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/arm_arm_ttk/Dockerfile b/linters/arm_arm_ttk/Dockerfile index f6c895cc156..537932a6429 100644 --- a/linters/arm_arm_ttk/Dockerfile +++ b/linters/arm_arm_ttk/Dockerfile @@ -41,7 +41,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/bash_exec/Dockerfile b/linters/bash_exec/Dockerfile index 5c79b600b76..0e081da4862 100644 --- a/linters/bash_exec/Dockerfile +++ b/linters/bash_exec/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/bash_shellcheck/Dockerfile b/linters/bash_shellcheck/Dockerfile index 9b594e2f798..9d4c7cf0ea4 100644 --- a/linters/bash_shellcheck/Dockerfile +++ b/linters/bash_shellcheck/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/bash_shfmt/Dockerfile b/linters/bash_shfmt/Dockerfile index c7c0a11f1bc..1ca8f576a88 100644 --- a/linters/bash_shfmt/Dockerfile +++ b/linters/bash_shfmt/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/c_cpplint/Dockerfile b/linters/c_cpplint/Dockerfile index 75419f542da..a557ee8def6 100644 --- a/linters/c_cpplint/Dockerfile +++ b/linters/c_cpplint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/clojure_clj_kondo/Dockerfile b/linters/clojure_clj_kondo/Dockerfile index 6d7ffd22d5f..180674adf32 100644 --- a/linters/clojure_clj_kondo/Dockerfile +++ b/linters/clojure_clj_kondo/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/cloudformation_cfn_lint/Dockerfile b/linters/cloudformation_cfn_lint/Dockerfile index fd6be887523..93eec4ee9f3 100644 --- a/linters/cloudformation_cfn_lint/Dockerfile +++ b/linters/cloudformation_cfn_lint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -99,13 +101,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -138,22 +133,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=CLOUDFORMATION_CFN_LINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=CLOUDFORMATION_CFN_LINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -171,3 +150,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CLOUDFORMATION_CFN_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CLOUDFORMATION_CFN_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/coffee_coffeelint/Dockerfile b/linters/coffee_coffeelint/Dockerfile index e8ed50770aa..8df336a599d 100644 --- a/linters/coffee_coffeelint/Dockerfile +++ b/linters/coffee_coffeelint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/copypaste_jscpd/Dockerfile b/linters/copypaste_jscpd/Dockerfile index 02470d41393..ee3a7542e7f 100644 --- a/linters/copypaste_jscpd/Dockerfile +++ b/linters/copypaste_jscpd/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/cpp_cpplint/Dockerfile b/linters/cpp_cpplint/Dockerfile index fb660050426..496dc44e649 100644 --- a/linters/cpp_cpplint/Dockerfile +++ b/linters/cpp_cpplint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/csharp_dotnet_format/Dockerfile b/linters/csharp_dotnet_format/Dockerfile index 789738b4e1f..47b37b17dd7 100644 --- a/linters/csharp_dotnet_format/Dockerfile +++ b/linters/csharp_dotnet_format/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/css_scss_lint/Dockerfile b/linters/css_scss_lint/Dockerfile index 439fe8ec091..48505d9f474 100644 --- a/linters/css_scss_lint/Dockerfile +++ b/linters/css_scss_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/css_stylelint/Dockerfile b/linters/css_stylelint/Dockerfile index 5d91b57967e..0aab923d1d2 100644 --- a/linters/css_stylelint/Dockerfile +++ b/linters/css_stylelint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/dart_dartanalyzer/Dockerfile b/linters/dart_dartanalyzer/Dockerfile index cb849a6d2d2..f6d49d7670b 100644 --- a/linters/dart_dartanalyzer/Dockerfile +++ b/linters/dart_dartanalyzer/Dockerfile @@ -38,7 +38,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/dockerfile_hadolint/Dockerfile b/linters/dockerfile_hadolint/Dockerfile index 085a6b35fdb..c3430b1ff9f 100644 --- a/linters/dockerfile_hadolint/Dockerfile +++ b/linters/dockerfile_hadolint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -100,13 +102,6 @@ COPY --from=hadolint /bin/hadolint /usr/bin/hadolint #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -139,22 +134,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=DOCKERFILE_HADOLINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=DOCKERFILE_HADOLINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -172,3 +151,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=DOCKERFILE_HADOLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=DOCKERFILE_HADOLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/editorconfig_editorconfig_checker/Dockerfile b/linters/editorconfig_editorconfig_checker/Dockerfile index efd2c4a38b9..2314b0963a0 100644 --- a/linters/editorconfig_editorconfig_checker/Dockerfile +++ b/linters/editorconfig_editorconfig_checker/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/env_dotenv_linter/Dockerfile b/linters/env_dotenv_linter/Dockerfile index 901041bafaa..542ff9ad388 100644 --- a/linters/env_dotenv_linter/Dockerfile +++ b/linters/env_dotenv_linter/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/gherkin_gherkin_lint/Dockerfile b/linters/gherkin_gherkin_lint/Dockerfile index 24ddbacddf6..fee121810bb 100644 --- a/linters/gherkin_gherkin_lint/Dockerfile +++ b/linters/gherkin_gherkin_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/go_golangci_lint/Dockerfile b/linters/go_golangci_lint/Dockerfile index d92a02d1210..7877275c3c5 100644 --- a/linters/go_golangci_lint/Dockerfile +++ b/linters/go_golangci_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/go_revive/Dockerfile b/linters/go_revive/Dockerfile index 9b8c8a05d11..17159e3d4c6 100644 --- a/linters/go_revive/Dockerfile +++ b/linters/go_revive/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -101,13 +103,6 @@ RUN go get -u github.com/mgechev/revive #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -140,22 +135,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=GO_REVIVE \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=GO_REVIVE \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -173,3 +152,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GO_REVIVE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GO_REVIVE \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/graphql_graphql_schema_linter/Dockerfile b/linters/graphql_graphql_schema_linter/Dockerfile index b89701c258a..3f9f129c9c2 100644 --- a/linters/graphql_graphql_schema_linter/Dockerfile +++ b/linters/graphql_graphql_schema_linter/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/groovy_npm_groovy_lint/Dockerfile b/linters/groovy_npm_groovy_lint/Dockerfile index cdaa48a8afb..9493b04fd53 100644 --- a/linters/groovy_npm_groovy_lint/Dockerfile +++ b/linters/groovy_npm_groovy_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/html_htmlhint/Dockerfile b/linters/html_htmlhint/Dockerfile index 17426000310..b708f98eb15 100644 --- a/linters/html_htmlhint/Dockerfile +++ b/linters/html_htmlhint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/java_checkstyle/Dockerfile b/linters/java_checkstyle/Dockerfile index 11ca35ca79f..5b0a08baa06 100644 --- a/linters/java_checkstyle/Dockerfile +++ b/linters/java_checkstyle/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -111,13 +113,6 @@ RUN CHECKSTYLE_LATEST=$(curl -s https://api.github.com/repos/checkstyle/checksty #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -150,22 +145,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=JAVA_CHECKSTYLE \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=JAVA_CHECKSTYLE \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -183,3 +162,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVA_CHECKSTYLE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVA_CHECKSTYLE \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/javascript_es/Dockerfile b/linters/javascript_es/Dockerfile index 07bf6571cec..79baf17a580 100644 --- a/linters/javascript_es/Dockerfile +++ b/linters/javascript_es/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -115,13 +117,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -154,22 +149,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=JAVASCRIPT_ES \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=JAVASCRIPT_ES \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -187,3 +166,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVASCRIPT_ES \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVASCRIPT_ES \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/javascript_prettier/Dockerfile b/linters/javascript_prettier/Dockerfile index 91dbf4d45d8..c1277db8ca5 100644 --- a/linters/javascript_prettier/Dockerfile +++ b/linters/javascript_prettier/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/javascript_standard/Dockerfile b/linters/javascript_standard/Dockerfile index 28ae7a8c543..6143eada80c 100644 --- a/linters/javascript_standard/Dockerfile +++ b/linters/javascript_standard/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/json_eslint_plugin_jsonc/Dockerfile b/linters/json_eslint_plugin_jsonc/Dockerfile index 0f76da018a5..48c3d62bc06 100644 --- a/linters/json_eslint_plugin_jsonc/Dockerfile +++ b/linters/json_eslint_plugin_jsonc/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -104,13 +106,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -143,22 +138,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=JSON_ESLINT_PLUGIN_JSONC \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=JSON_ESLINT_PLUGIN_JSONC \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -176,3 +155,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSON_ESLINT_PLUGIN_JSONC \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSON_ESLINT_PLUGIN_JSONC \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/json_jsonlint/Dockerfile b/linters/json_jsonlint/Dockerfile index 009b0b61bfd..be1926f16aa 100644 --- a/linters/json_jsonlint/Dockerfile +++ b/linters/json_jsonlint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/json_prettier/Dockerfile b/linters/json_prettier/Dockerfile index 8fe2307e5ef..5ea0f720b66 100644 --- a/linters/json_prettier/Dockerfile +++ b/linters/json_prettier/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/json_v8r/Dockerfile b/linters/json_v8r/Dockerfile index a2fa9e43baa..d047bc23d3b 100644 --- a/linters/json_v8r/Dockerfile +++ b/linters/json_v8r/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/jsx_eslint/Dockerfile b/linters/jsx_eslint/Dockerfile index de32437995f..fd471e78c21 100644 --- a/linters/jsx_eslint/Dockerfile +++ b/linters/jsx_eslint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -105,13 +107,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -144,22 +139,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=JSX_ESLINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=JSX_ESLINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -177,3 +156,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSX_ESLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSX_ESLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/kotlin_ktlint/Dockerfile b/linters/kotlin_ktlint/Dockerfile index 2fbd60ae5a4..b70e39305b5 100644 --- a/linters/kotlin_ktlint/Dockerfile +++ b/linters/kotlin_ktlint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -104,13 +106,6 @@ RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/rel #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -143,22 +138,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=KOTLIN_KTLINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=KOTLIN_KTLINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -176,3 +155,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=KOTLIN_KTLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=KOTLIN_KTLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/kubernetes_kubeval/Dockerfile b/linters/kubernetes_kubeval/Dockerfile index 524e8852fa4..baec585ac0f 100644 --- a/linters/kubernetes_kubeval/Dockerfile +++ b/linters/kubernetes_kubeval/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/latex_chktex/Dockerfile b/linters/latex_chktex/Dockerfile index cc2e27b39c6..2a9179b13f1 100644 --- a/linters/latex_chktex/Dockerfile +++ b/linters/latex_chktex/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/lua_luacheck/Dockerfile b/linters/lua_luacheck/Dockerfile index 8159fd62c22..59ecde00ebd 100644 --- a/linters/lua_luacheck/Dockerfile +++ b/linters/lua_luacheck/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/markdown_markdown_link_check/Dockerfile b/linters/markdown_markdown_link_check/Dockerfile index 6acd98ababd..0453f2c22d2 100644 --- a/linters/markdown_markdown_link_check/Dockerfile +++ b/linters/markdown_markdown_link_check/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/markdown_markdown_table_formatter/Dockerfile b/linters/markdown_markdown_table_formatter/Dockerfile index f17fe340741..e5d98621f32 100644 --- a/linters/markdown_markdown_table_formatter/Dockerfile +++ b/linters/markdown_markdown_table_formatter/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/markdown_markdownlint/Dockerfile b/linters/markdown_markdownlint/Dockerfile index 90572d007e8..991ed3efcdc 100644 --- a/linters/markdown_markdownlint/Dockerfile +++ b/linters/markdown_markdownlint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/markdown_remark_lint/Dockerfile b/linters/markdown_remark_lint/Dockerfile index 9405b13cd9e..4a61a1ed059 100644 --- a/linters/markdown_remark_lint/Dockerfile +++ b/linters/markdown_remark_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/openapi_spectral/Dockerfile b/linters/openapi_spectral/Dockerfile index 88ce72b876f..428574779be 100644 --- a/linters/openapi_spectral/Dockerfile +++ b/linters/openapi_spectral/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/perl_perlcritic/Dockerfile b/linters/perl_perlcritic/Dockerfile index d4c51d8f7a2..5529df0bc1a 100644 --- a/linters/perl_perlcritic/Dockerfile +++ b/linters/perl_perlcritic/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/php_phpcs/Dockerfile b/linters/php_phpcs/Dockerfile index ecdcaa6f10f..2e3727b1207 100644 --- a/linters/php_phpcs/Dockerfile +++ b/linters/php_phpcs/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/php_phplint/Dockerfile b/linters/php_phplint/Dockerfile index 52600a768d4..85c962c5078 100644 --- a/linters/php_phplint/Dockerfile +++ b/linters/php_phplint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/php_phpstan/Dockerfile b/linters/php_phpstan/Dockerfile index ac91c6b89bf..53f42dbb39f 100644 --- a/linters/php_phpstan/Dockerfile +++ b/linters/php_phpstan/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/php_psalm/Dockerfile b/linters/php_psalm/Dockerfile index dc4a2bcc62d..715a0cea87c 100644 --- a/linters/php_psalm/Dockerfile +++ b/linters/php_psalm/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -65,7 +67,8 @@ RUN apk add --update --no-cache \ php8-curl \ php8-dom \ php8-simplexml \ - composer + composer \ + dpkg #APK__END # PATH for golang @@ -127,7 +130,9 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # psalm installation @@ -136,13 +141,6 @@ RUN phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0 #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -175,22 +173,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=PHP_PSALM \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=PHP_PSALM \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -208,3 +190,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PSALM \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PSALM \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/powershell_powershell/Dockerfile b/linters/powershell_powershell/Dockerfile index 8cbdf5ec438..a585bcdf7d4 100644 --- a/linters/powershell_powershell/Dockerfile +++ b/linters/powershell_powershell/Dockerfile @@ -39,7 +39,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/protobuf_protolint/Dockerfile b/linters/protobuf_protolint/Dockerfile index 1030a423837..6547d10b93c 100644 --- a/linters/protobuf_protolint/Dockerfile +++ b/linters/protobuf_protolint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/puppet_puppet_lint/Dockerfile b/linters/puppet_puppet_lint/Dockerfile index e32c68cbb5f..671fe3f4370 100644 --- a/linters/puppet_puppet_lint/Dockerfile +++ b/linters/puppet_puppet_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/python_bandit/Dockerfile b/linters/python_bandit/Dockerfile index 59b9107f9f0..b7a320bb87f 100644 --- a/linters/python_bandit/Dockerfile +++ b/linters/python_bandit/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -100,13 +102,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -139,22 +134,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=PYTHON_BANDIT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=PYTHON_BANDIT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -172,3 +151,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_BANDIT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_BANDIT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/python_black/Dockerfile b/linters/python_black/Dockerfile index 53d6a843386..5e348509a02 100644 --- a/linters/python_black/Dockerfile +++ b/linters/python_black/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/python_flake8/Dockerfile b/linters/python_flake8/Dockerfile index 7c9ab13f00f..ad2b85369d5 100644 --- a/linters/python_flake8/Dockerfile +++ b/linters/python_flake8/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/python_isort/Dockerfile b/linters/python_isort/Dockerfile index c4fd830faa7..a131f8cf8e8 100644 --- a/linters/python_isort/Dockerfile +++ b/linters/python_isort/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/python_mypy/Dockerfile b/linters/python_mypy/Dockerfile index 9e756fde37b..8635eaadb95 100644 --- a/linters/python_mypy/Dockerfile +++ b/linters/python_mypy/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/python_pylint/Dockerfile b/linters/python_pylint/Dockerfile index 594d38e7665..1f6bdad64d9 100644 --- a/linters/python_pylint/Dockerfile +++ b/linters/python_pylint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/r_lintr/Dockerfile b/linters/r_lintr/Dockerfile index 5fd20e2a5a1..ba5a843381a 100644 --- a/linters/r_lintr/Dockerfile +++ b/linters/r_lintr/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/raku_raku/Dockerfile b/linters/raku_raku/Dockerfile index ebe29b040bc..6a90903ca98 100644 --- a/linters/raku_raku/Dockerfile +++ b/linters/raku_raku/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/repository_git_diff/Dockerfile b/linters/repository_git_diff/Dockerfile index ae18a09501e..7364d9e6cb4 100644 --- a/linters/repository_git_diff/Dockerfile +++ b/linters/repository_git_diff/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/repository_gitleaks/Dockerfile b/linters/repository_gitleaks/Dockerfile index 6bb89e5352d..08708fc8a81 100644 --- a/linters/repository_gitleaks/Dockerfile +++ b/linters/repository_gitleaks/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -100,13 +102,6 @@ COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -139,22 +134,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=REPOSITORY_GITLEAKS \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=REPOSITORY_GITLEAKS \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -172,3 +151,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_GITLEAKS \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_GITLEAKS \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_goodcheck/Dockerfile b/linters/repository_goodcheck/Dockerfile index 66c79bce7ca..d3ee24d94ba 100644 --- a/linters/repository_goodcheck/Dockerfile +++ b/linters/repository_goodcheck/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/repository_secretlint/Dockerfile b/linters/repository_secretlint/Dockerfile index 6dcf19e1763..eeaa281088f 100644 --- a/linters/repository_secretlint/Dockerfile +++ b/linters/repository_secretlint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/repository_trivy/Dockerfile b/linters/repository_trivy/Dockerfile index 2eb39e256be..1b2bcb2c01d 100644 --- a/linters/repository_trivy/Dockerfile +++ b/linters/repository_trivy/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -100,13 +102,6 @@ RUN curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -139,22 +134,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=REPOSITORY_TRIVY \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=REPOSITORY_TRIVY \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -172,3 +151,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_TRIVY \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_TRIVY \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/rst_rst_lint/Dockerfile b/linters/rst_rst_lint/Dockerfile index e4903cf5ef4..997235a7b19 100644 --- a/linters/rst_rst_lint/Dockerfile +++ b/linters/rst_rst_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/rst_rstcheck/Dockerfile b/linters/rst_rstcheck/Dockerfile index f9e2ecfba06..fbf02e0dadc 100644 --- a/linters/rst_rstcheck/Dockerfile +++ b/linters/rst_rstcheck/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/rst_rstfmt/Dockerfile b/linters/rst_rstfmt/Dockerfile index 5306079e1f4..e35ae8d0a87 100644 --- a/linters/rst_rstfmt/Dockerfile +++ b/linters/rst_rstfmt/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/ruby_rubocop/Dockerfile b/linters/ruby_rubocop/Dockerfile index 429b1ceac49..a3fbe224fa6 100644 --- a/linters/ruby_rubocop/Dockerfile +++ b/linters/ruby_rubocop/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/rust_clippy/Dockerfile b/linters/rust_clippy/Dockerfile index c978114fe85..9186543ba69 100644 --- a/linters/rust_clippy/Dockerfile +++ b/linters/rust_clippy/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/salesforce_sfdx_scanner_apex/Dockerfile b/linters/salesforce_sfdx_scanner_apex/Dockerfile index 256c0a6521f..549a334029a 100644 --- a/linters/salesforce_sfdx_scanner_apex/Dockerfile +++ b/linters/salesforce_sfdx_scanner_apex/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/salesforce_sfdx_scanner_aura/Dockerfile b/linters/salesforce_sfdx_scanner_aura/Dockerfile index 7f656650c2e..cc005dd4b7f 100644 --- a/linters/salesforce_sfdx_scanner_aura/Dockerfile +++ b/linters/salesforce_sfdx_scanner_aura/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/salesforce_sfdx_scanner_lwc/Dockerfile b/linters/salesforce_sfdx_scanner_lwc/Dockerfile index 95c54b54e18..4ae98c76f7e 100644 --- a/linters/salesforce_sfdx_scanner_lwc/Dockerfile +++ b/linters/salesforce_sfdx_scanner_lwc/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/scala_scalafix/Dockerfile b/linters/scala_scalafix/Dockerfile index 59e1217227b..9be484cecb3 100644 --- a/linters/scala_scalafix/Dockerfile +++ b/linters/scala_scalafix/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/snakemake_lint/Dockerfile b/linters/snakemake_lint/Dockerfile index c1e7c80cd3c..1691ac2cbd7 100644 --- a/linters/snakemake_lint/Dockerfile +++ b/linters/snakemake_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/snakemake_snakefmt/Dockerfile b/linters/snakemake_snakefmt/Dockerfile index c515a707cdd..195ad4fb599 100644 --- a/linters/snakemake_snakefmt/Dockerfile +++ b/linters/snakemake_snakefmt/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/spell_cspell/Dockerfile b/linters/spell_cspell/Dockerfile index d87a277c8eb..8e1a6568d53 100644 --- a/linters/spell_cspell/Dockerfile +++ b/linters/spell_cspell/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/spell_misspell/Dockerfile b/linters/spell_misspell/Dockerfile index 6c98f41f0dd..da0cd11a7db 100644 --- a/linters/spell_misspell/Dockerfile +++ b/linters/spell_misspell/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/sql_sql_lint/Dockerfile b/linters/sql_sql_lint/Dockerfile index a8ce42ca100..b6791c09bc8 100644 --- a/linters/sql_sql_lint/Dockerfile +++ b/linters/sql_sql_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/sql_sqlfluff/Dockerfile b/linters/sql_sqlfluff/Dockerfile index 010bcafa37c..c3e219b3f07 100644 --- a/linters/sql_sqlfluff/Dockerfile +++ b/linters/sql_sqlfluff/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/sql_tsqllint/Dockerfile b/linters/sql_tsqllint/Dockerfile index 186737e82e5..fb862bc2489 100644 --- a/linters/sql_tsqllint/Dockerfile +++ b/linters/sql_tsqllint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/swift_swiftlint/Dockerfile b/linters/swift_swiftlint/Dockerfile index 69dec990e98..657cd6729f7 100644 --- a/linters/swift_swiftlint/Dockerfile +++ b/linters/swift_swiftlint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/tekton_tekton_lint/Dockerfile b/linters/tekton_tekton_lint/Dockerfile index ef1b3d8dbf2..8ae3279ffa9 100644 --- a/linters/tekton_tekton_lint/Dockerfile +++ b/linters/tekton_tekton_lint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/terraform_checkov/Dockerfile b/linters/terraform_checkov/Dockerfile index ecce2f60acf..46a765eb80f 100644 --- a/linters/terraform_checkov/Dockerfile +++ b/linters/terraform_checkov/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -102,13 +104,6 @@ RUN pip3 install --upgrade --no-cache-dir pip && pip3 install --upgrade --no-cac #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -141,22 +136,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=TERRAFORM_CHECKOV \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=TERRAFORM_CHECKOV \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -174,3 +153,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_CHECKOV \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_CHECKOV \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/terraform_kics/Dockerfile b/linters/terraform_kics/Dockerfile index b7a3e8c9912..3eedbdd5141 100644 --- a/linters/terraform_kics/Dockerfile +++ b/linters/terraform_kics/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/terraform_terraform_fmt/Dockerfile b/linters/terraform_terraform_fmt/Dockerfile index f1aed74eb11..bb5b77da70a 100644 --- a/linters/terraform_terraform_fmt/Dockerfile +++ b/linters/terraform_terraform_fmt/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/terraform_terragrunt/Dockerfile b/linters/terraform_terragrunt/Dockerfile index c9ecdedc3e6..55a2860e25d 100644 --- a/linters/terraform_terragrunt/Dockerfile +++ b/linters/terraform_terragrunt/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/terraform_terrascan/Dockerfile b/linters/terraform_terrascan/Dockerfile index ee135335a04..869db49537c 100644 --- a/linters/terraform_terrascan/Dockerfile +++ b/linters/terraform_terrascan/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -101,13 +103,6 @@ RUN terrascan init #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -140,22 +135,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=TERRAFORM_TERRASCAN \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=TERRAFORM_TERRASCAN \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -173,3 +152,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TERRASCAN \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TERRASCAN \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/terraform_tflint/Dockerfile b/linters/terraform_tflint/Dockerfile index aef315d41b7..0c010df5e1b 100644 --- a/linters/terraform_tflint/Dockerfile +++ b/linters/terraform_tflint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -100,13 +102,6 @@ COPY --from=tflint /usr/local/bin/tflint /usr/bin/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -139,22 +134,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=TERRAFORM_TFLINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=TERRAFORM_TFLINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -172,3 +151,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TFLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TFLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/tsx_eslint/Dockerfile b/linters/tsx_eslint/Dockerfile index b03fed72f52..910d56ce5ef 100644 --- a/linters/tsx_eslint/Dockerfile +++ b/linters/tsx_eslint/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -114,13 +116,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -153,22 +148,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=TSX_ESLINT \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=TSX_ESLINT \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -186,3 +165,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TSX_ESLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TSX_ESLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/typescript_es/Dockerfile b/linters/typescript_es/Dockerfile index e29421816f6..48ac5ce9aa3 100644 --- a/linters/typescript_es/Dockerfile +++ b/linters/typescript_es/Dockerfile @@ -37,7 +37,9 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh \ + tmux && \ git config --global core.autocrlf true ############################################################################################# @@ -117,13 +119,6 @@ ENV PATH="/node_modules/.bin:${PATH}" #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -156,22 +151,6 @@ ENV BUILD_DATE=$BUILD_DATE \ ENV MEGALINTER_FLAVOR=none #FLAVOR__END -#EXTRA_DOCKERFILE_LINES__START -ENV ENABLE_LINTERS=TYPESCRIPT_ES \ - FLAVOR_SUGGESTIONS=false \ - SINGLE_LINTER=TYPESCRIPT_ES \ - PRINT_ALPACA=false \ - LOG_FILE=none \ - SARIF_REPORTER=true \ - TEXT_REPORTER=false \ - UPDATED_SOURCES_REPORTER=false \ - GITHUB_STATUS_REPORTER=false \ - GITHUB_COMMENT_REPORTER=false \ - EMAIL_REPORTER=false \ - FILEIO_REPORTER=false \ - CONFIG_REPORTER=false -#EXTRA_DOCKERFILE_LINES__END - ######################################### # Label the instance and set maintainer # ######################################### @@ -189,3 +168,32 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.documentation="https://megalinter.github.io" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TYPESCRIPT_ES \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TYPESCRIPT_ES \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_tmux /usr/bin/megalinter_tmux +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_tmux && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias tmux_exec='/usr/bin/megalinter-sh/tmux_exec.sh'" >> ~/.bashrc && source ~/.bashrc +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/typescript_prettier/Dockerfile b/linters/typescript_prettier/Dockerfile index 576edb3868e..fd99f3c3774 100644 --- a/linters/typescript_prettier/Dockerfile +++ b/linters/typescript_prettier/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/typescript_standard/Dockerfile b/linters/typescript_standard/Dockerfile index a6d034c3a5d..f05b842e4fd 100644 --- a/linters/typescript_standard/Dockerfile +++ b/linters/typescript_standard/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/vbdotnet_dotnet_format/Dockerfile b/linters/vbdotnet_dotnet_format/Dockerfile index e6af1829c49..c076821a244 100644 --- a/linters/vbdotnet_dotnet_format/Dockerfile +++ b/linters/vbdotnet_dotnet_format/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/xml_xmllint/Dockerfile b/linters/xml_xmllint/Dockerfile index a7a25ebe727..7dc7870d696 100644 --- a/linters/xml_xmllint/Dockerfile +++ b/linters/xml_xmllint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/yaml_prettier/Dockerfile b/linters/yaml_prettier/Dockerfile index e5bc4262b37..6e1b6b219cd 100644 --- a/linters/yaml_prettier/Dockerfile +++ b/linters/yaml_prettier/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/yaml_v8r/Dockerfile b/linters/yaml_v8r/Dockerfile index 23a4d57c047..bbb578ad50e 100644 --- a/linters/yaml_v8r/Dockerfile +++ b/linters/yaml_v8r/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/linters/yaml_yamllint/Dockerfile b/linters/yaml_yamllint/Dockerfile index b648677d9e8..c35878816d3 100644 --- a/linters/yaml_yamllint/Dockerfile +++ b/linters/yaml_yamllint/Dockerfile @@ -37,7 +37,8 @@ RUN apk add --update --no-cache \ git \ libffi-dev \ make \ - musl-dev && \ + musl-dev \ + openssh && \ git config --global core.autocrlf true ############################################################################################# diff --git a/mega-linter-runner/README.md b/mega-linter-runner/README.md index ea32e0af639..5e9a67cc21b 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/megalinter/megalinter?maxAge=2592000)](https://GitHub.com/megalinter/megalinter/stargazers/) -[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.6M-blue)](https://megalinter.github.io/flavors/) +[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-2.9M-blue)](https://megalinter.github.io/flavors/) [![MegaLinter](https://github.com/megalinter/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://megalinter.github.io) [![codecov](https://codecov.io/gh/megalinter/megalinter/branch/master/graph/badge.svg)](https://codecov.io/gh/megalinter/megalinter) [![Secured with Trivy](https://img.shields.io/badge/Trivy-secured-green?logo=docker)](https://github.com/aquasecurity/trivy) diff --git a/mega-linter-runner/package-lock.json b/mega-linter-runner/package-lock.json index adb006aa5e8..bb6e95cd915 100644 --- a/mega-linter-runner/package-lock.json +++ b/mega-linter-runner/package-lock.json @@ -1,6 +1,6 @@ { "name": "mega-linter-runner", - "version": "5.2.0", + "version": "5.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/mega-linter-runner/package.json b/mega-linter-runner/package.json index b33d6f98955..5faa1a651cf 100644 --- a/mega-linter-runner/package.json +++ b/mega-linter-runner/package.json @@ -1,6 +1,6 @@ { "name": "mega-linter-runner", - "version": "5.2.0", + "version": "5.5.0", "repository": { "type": "git", "url": "https://github.com/megalinter/megalinter.git" diff --git a/megalinter/Linter.py b/megalinter/Linter.py index 3d0d84cca42..7854f9c62a0 100644 --- a/megalinter/Linter.py +++ b/megalinter/Linter.py @@ -31,11 +31,11 @@ from time import perf_counter from megalinter import config, pre_post_factory, utils +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR class Linter: TEMPLATES_DIR = "/action/lib/.automation/" - DEFAULT_WORKSPACE_DIR = "/tmp/lint" # Constructor: Initialize Linter instance with name and config variables def __init__(self, params=None, linter_config=None): @@ -424,7 +424,7 @@ def load_config_vars(self): # Set config file label if not set by remote rule if self.config_file is not None and self.config_file_label is None: self.config_file_label = self.config_file.replace( - self.DEFAULT_WORKSPACE_DIR, "" + DEFAULT_DOCKER_WORKSPACE_DIR, "" ).replace(self.TEMPLATES_DIR, "") # User override of cli_lint_mode if config.exists(self.name + "_CLI_LINT_MODE"): @@ -826,12 +826,14 @@ def manage_docker_command(self, command): volume_root = config.get("MEGALINTER_VOLUME_ROOT", "") if volume_root != "": workspace_value = ( - volume_root + "/" + self.workspace.replace("/tmp/lint", "") + volume_root + + "/" + + self.workspace.replace(DEFAULT_DOCKER_WORKSPACE_DIR, "") ) else: workspace_value = self.workspace else: - workspace_value = "/tmp/lint" + workspace_value = DEFAULT_DOCKER_WORKSPACE_DIR docker_command += map( lambda arg, w=workspace_value: arg.replace("{{WORKSPACE}}", w), self.cli_docker_args, @@ -840,7 +842,9 @@ def manage_docker_command(self, command): if type(command) == str: command = " ".join(docker_command) + " " + command else: - command = docker_command + command # ["ls", "-A", "/tmp/lint"] + command = ( + docker_command + command + ) # ["ls", "-A", DEFAULT_DOCKER_WORKSPACE_DIR] return command ######################################## @@ -872,7 +876,7 @@ def build_lint_command(self, file=None): self.final_config_file = self.config_file if self.cli_docker_image is not None: self.final_config_file = self.final_config_file.replace( - self.workspace, "/tmp/lint" + self.workspace, DEFAULT_DOCKER_WORKSPACE_DIR ) if self.cli_config_arg_name.endswith("="): cmd += [self.cli_config_arg_name + self.final_config_file] diff --git a/megalinter/MegaLinter.py b/megalinter/MegaLinter.py index 9a69e0c1c2c..bb41bb14ad7 100644 --- a/megalinter/MegaLinter.py +++ b/megalinter/MegaLinter.py @@ -4,6 +4,7 @@ """ +import argparse import logging import multiprocessing as mp import os @@ -19,7 +20,11 @@ pre_post_factory, utils, ) -from megalinter.constants import ML_DOC_URL, DEFAULT_REPORT_FOLDER_NAME +from megalinter.constants import ( + DEFAULT_DOCKER_WORKSPACE_DIR, + ML_DOC_URL, + DEFAULT_REPORT_FOLDER_NAME, +) from multiprocessing_logging import install_mp_handler @@ -37,18 +42,14 @@ class Megalinter: def __init__(self, params=None): if params is None: params = {} + self.arg_input = None + self.arg_output = None + self.load_cli_vars() self.workspace = self.get_workspace() config.init_config(self.workspace) # Initialize runtime config self.github_workspace = config.get("GITHUB_WORKSPACE", self.workspace) self.megalinter_flavor = config.get("MEGALINTER_FLAVOR", "all") - self.report_folder = config.get( - "REPORT_OUTPUT_FOLDER", - config.get( - "OUTPUT_FOLDER", - self.github_workspace + os.path.sep + DEFAULT_REPORT_FOLDER_NAME, - ), - ) - os.makedirs(self.report_folder, exist_ok=True) + self.initialize_output() self.initialize_logger() self.manage_upgrade_message() self.display_header() @@ -229,25 +230,48 @@ def process_linters_parallel(self, active_linters, linters_do_fixes): def get_workspace(self): default_workspace = config.get("DEFAULT_WORKSPACE", "") github_workspace = config.get("GITHUB_WORKSPACE", "") - # Github action run without override of DEFAULT_WORKSPACE and using /tmp/lint - if ( + # Use CLI input argument + if self.arg_input is not None: + if os.path.isdir(self.arg_input): + # Absolute directory + return self.arg_input + else: + # Relative directory + logging.debug( + f"[Context] workspace sent as input argument: {self.arg_input}" + ) + assert os.path.isdir( + DEFAULT_DOCKER_WORKSPACE_DIR + "/" + self.arg_input + ), ( + f"--input directory not found at {DEFAULT_DOCKER_WORKSPACE_DIR}/" + + self.arg_input + ) + return DEFAULT_DOCKER_WORKSPACE_DIR + "/" + self.arg_input + # Github action run without override of DEFAULT_WORKSPACE and using DEFAULT_DOCKER_WORKSPACE_DIR + elif ( default_workspace == "" and github_workspace != "" - and os.path.isdir(github_workspace + "/tmp/lint") + and os.path.isdir(github_workspace + DEFAULT_DOCKER_WORKSPACE_DIR) ): logging.debug( - "[Context] Github action run without override of DEFAULT_WORKSPACE - /tmp/lint" + "[Context] Github action run without override of DEFAULT_WORKSPACE - " + + DEFAULT_DOCKER_WORKSPACE_DIR ) - return github_workspace + "/tmp/lint" + return github_workspace + DEFAULT_DOCKER_WORKSPACE_DIR # Docker run without override of DEFAULT_WORKSPACE elif default_workspace != "" and os.path.isdir( - "/tmp/lint" + os.path.sep + default_workspace + DEFAULT_DOCKER_WORKSPACE_DIR + os.path.sep + default_workspace ): logging.debug( "[Context] Docker run without override of DEFAULT_WORKSPACE" - f" - {default_workspace}/tmp/lint{os.path.sep + default_workspace}" + f" - {default_workspace}{DEFAULT_DOCKER_WORKSPACE_DIR}{os.path.sep + default_workspace}" + ) + return ( + default_workspace + + DEFAULT_DOCKER_WORKSPACE_DIR + + os.path.sep + + default_workspace ) - return default_workspace + "/tmp/lint" + os.path.sep + default_workspace # Docker run with override of DEFAULT_WORKSPACE for test cases elif default_workspace != "" and os.path.isdir(default_workspace): logging.debug( @@ -255,11 +279,12 @@ def get_workspace(self): ) return default_workspace # Docker run test classes without override of DEFAULT_WORKSPACE - elif os.path.isdir("/tmp/lint"): + elif os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR): logging.debug( - "[Context] Docker run test classes without override of DEFAULT_WORKSPACE - /tmp/lint" + "[Context] Docker run test classes without override of DEFAULT_WORKSPACE - " + + DEFAULT_DOCKER_WORKSPACE_DIR ) - return "/tmp/lint" + return DEFAULT_DOCKER_WORKSPACE_DIR # Github action with override of DEFAULT_WORKSPACE elif ( default_workspace != "" @@ -271,7 +296,7 @@ def get_workspace(self): f" - {github_workspace + os.path.sep + default_workspace}" ) return github_workspace + os.path.sep + default_workspace - # Github action without override of DEFAULT_WORKSPACE and NOT using /tmp/lint + # Github action without override of DEFAULT_WORKSPACE and NOT using DEFAULT_DOCKER_WORKSPACE_DIR elif ( default_workspace == "" and github_workspace != "" @@ -279,7 +304,8 @@ def get_workspace(self): and os.path.isdir(github_workspace) ): logging.debug( - "[Context] Github action without override of DEFAULT_WORKSPACE and NOT using /tmp/lint" + "[Context] Github action without override of DEFAULT_WORKSPACE" + f" and NOT using {DEFAULT_DOCKER_WORKSPACE_DIR}" f" - {github_workspace}" ) return github_workspace @@ -291,6 +317,19 @@ def get_workspace(self): f"GITHUB_WORKSPACE: {github_workspace}" ) + # Manage CLI variables + def load_cli_vars(self): + parser = argparse.ArgumentParser() + parser.add_argument("--input", type=str, help="Input folder to lint") + parser.add_argument("--output", type=str, help="Output file or directory") + args, _unknown = parser.parse_known_args() + # Input folder to lint + if args.input: + self.arg_input = args.input + # Report folder or file + if args.output: + self.arg_output = args.output + # Manage configuration variables def load_config_vars(self): # Linter rules root path @@ -570,6 +609,32 @@ def list_git_ignored_files(self): ignored_files = sorted(list(ignored_files)) return ignored_files + def initialize_output(self): + self.report_folder = config.get( + "REPORT_OUTPUT_FOLDER", + config.get( + "OUTPUT_FOLDER", + self.github_workspace + os.path.sep + DEFAULT_REPORT_FOLDER_NAME, + ), + ) + # Manage case when output is sent as argument. + if self.arg_output is not None: + if ".sarif" in self.arg_output: + if "/" in self.arg_output: + # --output /logs/megalinter/myoutputfile.sarif + self.report_folder = os.path.dirname(self.arg_output) + config.set( + "SARIF_REPORTER_FILE_NAME", os.path.basename(self.arg_output) + ) + else: + # --output myoutputfile.sarif + config.set("SARIF_REPORTER_FILE_NAME", self.arg_output) + elif os.path.isdir(self.arg_output): + # --output /logs/megalinter + self.report_folder = self.arg_output + # Initialize output dir + os.makedirs(self.report_folder, exist_ok=True) + def initialize_logger(self): logging_level_key = config.get("LOG_LEVEL", "INFO").upper() logging_level_list = { @@ -591,7 +656,7 @@ def initialize_logger(self): ) if not os.path.isdir(os.path.dirname(log_file)): os.makedirs(os.path.dirname(log_file), exist_ok=True) - if (config.get("LOG_FILE","") == "none"): + if config.get("LOG_FILE", "") == "none": # Do not log console output in a file logging.basicConfig( force=True, diff --git a/megalinter/__init__.py b/megalinter/__init__.py index c34f553ab1d..2b5fce8f5c3 100644 --- a/megalinter/__init__.py +++ b/megalinter/__init__.py @@ -15,5 +15,6 @@ "plugin_factory", "pre_post_factory", "utils", - "alpaca", + "alpaca" + # "megalinter_server" ] diff --git a/megalinter/config.py b/megalinter/config.py index 83c50ad27e4..1c14ca491cc 100644 --- a/megalinter/config.py +++ b/megalinter/config.py @@ -111,6 +111,12 @@ def get(config_var=None, default=None): return val +def set(config_var, value): + global CONFIG_DATA + assert CONFIG_DATA is not None, "Config has not been initialized yet !" + CONFIG_DATA[config_var] = value + + def get_list(config_var, default=None): var = get(config_var, None) if var is not None: diff --git a/megalinter/constants.py b/megalinter/constants.py index 342a0243480..78bb845c531 100644 --- a/megalinter/constants.py +++ b/megalinter/constants.py @@ -2,13 +2,14 @@ ML_REPO_NAME = "megalinter" ML_REPO = f"{ML_REPO_OWNER}/{ML_REPO_NAME}" ML_REPO_URL = f"https://github.com/{ML_REPO_OWNER}/{ML_REPO_NAME}" -ML_DOC_URL = "https://megalinter.github.io/v6-alpha" #TODOv6: remove v6-alpha, replace by latest +ML_DOC_URL = "https://megalinter.github.io/v6-alpha" # TODOv6: remove v6-alpha, replace by latest ML_DOCKER_OWNER = "megalinter" ML_DOCKER_NAME = "megalinter" ML_DOCKER_IMAGE = f"{ML_DOCKER_OWNER}/{ML_DOCKER_NAME}" ML_DOCKER_IMAGE_LEGACY = "nvuillam/mega-linter" +DEFAULT_DOCKER_WORKSPACE_DIR = "/tmp/lint" DEFAULT_REPORT_FOLDER_NAME = "megalinter-reports" DEFAULT_SARIF_REPORT_FILE_NAME = "megalinter-report.sarif" -DEFAULT_RELEASE = "v6-alpha" # TODOv6 : replace with v6 \ No newline at end of file +DEFAULT_RELEASE = "v6-alpha" # TODOv6 : replace with v6 diff --git a/megalinter/descriptors/clojure.megalinter-descriptor.yml b/megalinter/descriptors/clojure.megalinter-descriptor.yml index b516689e78f..3d7962846cc 100644 --- a/megalinter/descriptors/clojure.megalinter-descriptor.yml +++ b/megalinter/descriptors/clojure.megalinter-descriptor.yml @@ -26,7 +26,7 @@ linters: downgraded_version: true install: dockerfile: - - FROM cljkondo/clj-kondo:2021.06.18-alpine as clj-kondo + - FROM cljkondo/clj-kondo:2021.12.19-alpine as clj-kondo - COPY --from=clj-kondo /bin/clj-kondo /usr/bin/ ide: atom: diff --git a/megalinter/descriptors/php.megalinter-descriptor.yml b/megalinter/descriptors/php.megalinter-descriptor.yml index ba7e93707cc..dabd70f29dd 100644 --- a/megalinter/descriptors/php.megalinter-descriptor.yml +++ b/megalinter/descriptors/php.megalinter-descriptor.yml @@ -27,6 +27,7 @@ install: - php8-dom - php8-simplexml - composer + - dpkg dockerfile: - | RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ @@ -39,7 +40,9 @@ install: && gpg --verify phive.phar.asc phive.phar \ && chmod +x phive.phar \ && mv phive.phar /usr/local/bin/phive \ - && rm phive.phar.asc + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 linters: # PHPCS - linter_name: phpcs diff --git a/megalinter/megalinter_server-py-unused b/megalinter/megalinter_server-py-unused new file mode 100644 index 00000000000..213cd216fd6 --- /dev/null +++ b/megalinter/megalinter_server-py-unused @@ -0,0 +1,90 @@ +# !/usr/bin/env python3 +""" +Start MegaLinter server +""" +import json +import os +import subprocess +import time +from flask import Flask +from flask_restful import Resource, Api, reqparse, abort + +print("MegaLinter Server starting...") +app = Flask(__name__) +api = Api(app) + +subprocess_env_default = {**os.environ, "FORCE_COLOR": "0"} + +parser = reqparse.RequestParser() +parser.add_argument("workspace") +parser.add_argument("debug") + +running_processes = 0 +max_running_processes = 1 + + +class LintRequest(Resource): + def get(self): + global running_processes + return {"runningProcesses": running_processes} + + def post(self): + args = parser.parse_args() + print(f"Received request to lint workspace {args}") + global running_processes + running_processes += 1 + # Check max running processes has not been reached + if running_processes > max_running_processes: + running_processes -= 1 + abort(423, message="This server is already busy") + # Missing workspacec property + if "workspace" not in args: + running_processes -= 1 + abort(400, message="Missing workspace property") + workspace = args["workspace"] + sarif_file_name = ( + "megalinter-report-" + + os.environ.get("SINGLE_LINTER") + + time.strftime("%Y%m%d-%H%M%S") + + ".sarif" + ) + # Lint command + command = ["python", "-m", "megalinter.run"] + # Lint env variables + subprocess_env = { + **subprocess_env_default, + "DEFAULT_WORKSPACE": workspace, + # "REPORT_OUTPUT_FOLDER": "/tmp/megalinter-reports", not yet but soon + "SARIF_REPORTER_FILE_NAME": sarif_file_name, + } + if "debug" in args: + subprocess_env["LOG_LEVEL"] = "DEBUG" + process = subprocess.run( + command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + env=subprocess_env, + ) + # Base result + return_code = process.returncode + sarif_result_file = workspace + "/megalinter-reports/" + sarif_file_name + result = { + "returnCode": return_code, + "sarifFile": sarif_result_file, + } + # Add stdout if debug mode + if "debug" in args: + result["stdout"] = str(process.stdout) + # Add SARIF in output if found + if os.path.isfile(sarif_result_file): + with open(sarif_result_file, "r", encoding="utf-8") as json_file: + sarif_json = json.load(json_file) + result["sarif"] = sarif_json + running_processes -= 1 + return result + + +api.add_resource(LintRequest, "/lint_request") + +if __name__ == "__main__": + app.run(port=80, host="0.0.0.0", debug=True) diff --git a/megalinter/setup.py b/megalinter/setup.py index e85bdfccb11..3c3ea654ee5 100644 --- a/megalinter/setup.py +++ b/megalinter/setup.py @@ -20,7 +20,8 @@ "pyyaml", "requests==2.24.0", "terminaltables", - "importlib-metadata>=3.10", + "importlib-metadata>=3.10" + # "flask-restful" ], zip_safe=False, ) diff --git a/megalinter/tests/test_megalinter/filters_test.py b/megalinter/tests/test_megalinter/filters_test.py index f67a353cf30..4e82761b4e4 100644 --- a/megalinter/tests/test_megalinter/filters_test.py +++ b/megalinter/tests/test_megalinter/filters_test.py @@ -7,6 +7,7 @@ import unittest from megalinter import utils +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR class utilsTest(unittest.TestCase): @@ -49,7 +50,7 @@ def test_file_is_generated_false_2(self): ) def test_filter_files_with_ignored_files(self): - basedir = "/tmp/lint/" + basedir = DEFAULT_DOCKER_WORKSPACE_DIR + "/" all_files = [ f"{basedir}src/foo.ext", f"{basedir}README.md", @@ -81,7 +82,7 @@ def test_filter_files_with_ignored_files(self): ) def test_filter_files_with_file_extensions(self): - basedir = "/tmp/lint/" + basedir = DEFAULT_DOCKER_WORKSPACE_DIR + "/" all_files = [ f"{basedir}src/foo.ext", f"{basedir}README.md", diff --git a/megalinter/tests/test_megalinter/helpers/utilstest.py b/megalinter/tests/test_megalinter/helpers/utilstest.py index 9ad3e712309..8fe119b9a8b 100644 --- a/megalinter/tests/test_megalinter/helpers/utilstest.py +++ b/megalinter/tests/test_megalinter/helpers/utilstest.py @@ -14,11 +14,14 @@ from git import Repo from megalinter import Megalinter, config, utils -from megalinter.constants import DEFAULT_REPORT_FOLDER_NAME +from megalinter.constants import ( + DEFAULT_REPORT_FOLDER_NAME, + DEFAULT_DOCKER_WORKSPACE_DIR, +) REPO_HOME = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.dirname(os.path.abspath(__file__)) + os.path.sep + ".." @@ -46,11 +49,11 @@ def linter_test_setup(params=None): "IGNORE_GITIGNORED_FILES", "IGNORE_GENERATED_FILES", "SHOW_ELAPSED_TIME", - "UPDATED_SOURCES_REPORTER" + "UPDATED_SOURCES_REPORTER", "MEGALINTER_FLAVOR", "FLAVOR_SUGGESTIONS", "SARIF_REPORTER", - "LOG_FILE" + "LOG_FILE", ]: if key in os.environ: del os.environ[key] @@ -65,8 +68,8 @@ def linter_test_setup(params=None): ) # Root path of default rules root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -155,7 +158,7 @@ def test_linter_success(linter, test_self): "REPORT_OUTPUT_FOLDER": tmp_report_folder, "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, - "PRINT_ALL_FILES": True + "PRINT_ALL_FILES": True, } if linter.lint_all_other_linters_files is not False: env_vars["ENABLE_LINTERS"] += ",JAVASCRIPT_ES" @@ -298,8 +301,8 @@ def test_get_linter_version(linter, test_self): ) # Write in linter-versions.json root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -363,8 +366,8 @@ def test_get_linter_help(linter, test_self): ) # Write in linter-helps.json root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -413,10 +416,10 @@ def test_linter_report_tap(linter, test_self): f"expected-{linter.descriptor_id}.tap", ] + reports_with_extension for file_nm in list(dict.fromkeys(possible_reports)): - if os.path.isfile(f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}"): - expected_file_name = ( - f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}" - ) + if os.path.isfile( + f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}" + ): + expected_file_name = f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}" if expected_file_name == "": raise unittest.SkipTest( f"Expected report not defined in {workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}" @@ -482,11 +485,14 @@ def test_linter_report_tap(linter, test_self): f"remain perfectly identical :)" ) + # Test that the linter provides a SARIF output if it is configured like that def test_linter_report_sarif(linter, test_self): - if linter.disabled is True or "all" in getattr( - linter, "descriptor_flavors_exclude", [] - ) or linter.can_output_sarif is False: + if ( + linter.disabled is True + or "all" in getattr(linter, "descriptor_flavors_exclude", []) + or linter.can_output_sarif is False + ): raise unittest.SkipTest("SARIF is not configured for this linter") test_folder = linter.test_folder workspace = config.get("DEFAULT_WORKSPACE") + os.path.sep + test_folder @@ -499,7 +505,7 @@ def test_linter_report_sarif(linter, test_self): "REPORT_OUTPUT_FOLDER": tmp_report_folder, "ENABLE_LINTERS": linter.name, "LOG_LEVEL": "DEBUG", - "LOG_FILE": 'megalinter.log' + "LOG_FILE": "megalinter.log", } env_vars.update(linter.test_variables) mega_linter, _output = call_mega_linter(env_vars) @@ -511,7 +517,8 @@ def test_linter_report_sarif(linter, test_self): f"{tmp_report_folder}{os.path.sep}sarif{os.path.sep}{linter.name}.sarif" ) test_self.assertTrue( - os.path.isfile(tmp_sarif_file_name), f"SARIF report not found {tmp_sarif_file_name}" + os.path.isfile(tmp_sarif_file_name), + f"SARIF report not found {tmp_sarif_file_name}", ) diff --git a/megalinter/tests/test_megalinter/mega_linter_1_test.py b/megalinter/tests/test_megalinter/mega_linter_1_test.py index 071be14cb89..b260262469a 100644 --- a/megalinter/tests/test_megalinter/mega_linter_1_test.py +++ b/megalinter/tests/test_megalinter/mega_linter_1_test.py @@ -7,7 +7,7 @@ import unittest import megalinter -from megalinter.constants import ML_REPO +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR, ML_REPO from megalinter.tests.test_megalinter.helpers import utilstest @@ -105,8 +105,8 @@ def test_validate_all_code_base_false(self): megalinter.config.set_value( "GITHUB_WORKSPACE", ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../.." diff --git a/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py b/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py index ad51cb87626..3e013c2ff32 100644 --- a/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py +++ b/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py @@ -78,7 +78,7 @@ def test_2_apply_fixes_on_all_linters(self): # file_name = ( # updated_sources_dir # + os.path.sep - # + fixable_file.replace('/tmp/lint', "") + # + fixable_file.replace(DEFAULT_DOCKER_WORKSPACE_DIR, "") # ) # self.assertTrue( # os.path.isfile(file_name), diff --git a/megalinter/utils.py b/megalinter/utils.py index b6745ca6da1..addad919916 100644 --- a/megalinter/utils.py +++ b/megalinter/utils.py @@ -9,10 +9,11 @@ import git from megalinter import config +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR REPO_HOME_DEFAULT = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.environ.get("DEFAULT_WORKSPACE") if os.path.isdir(os.environ.get("DEFAULT_WORKSPACE", "null")) else os.path.dirname(os.path.abspath(__file__)) + os.path.sep + ".." @@ -21,7 +22,7 @@ ANSI_ESCAPE_REGEX = re.compile(r"(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]") LIST_OF_REPLACEMENTS = [ # MegaLinter image - ["/tmp/lint/", ""], + [f"{DEFAULT_DOCKER_WORKSPACE_DIR}/", ""], ["tmp/lint/", ""], # GitHub Actions ["/github/workspace/", ""], diff --git a/requirements.dev.txt b/requirements.dev.txt index 43e793e1ebd..ad96bf24a36 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -20,3 +20,4 @@ mdx_truly_sane_lists beautifulsoup4 giturlparse json-schema-for-humans +# flask-restful diff --git a/sh/megalinter_tmux b/sh/megalinter_tmux new file mode 100644 index 00000000000..de051c5fdf5 --- /dev/null +++ b/sh/megalinter_tmux @@ -0,0 +1,117 @@ +#!/usr/bin/env bash + +############################################################################################### +#Script Name : megalinter_tmux +#Description : Run the Megalinter scanner, for use when Megalinter is running in SSH mode +#Owner : ox.security +#Email Contact : support@ox.security +#Email Author : inbar@ox.security +############################################################################################### + +usage() +{ + echo -e "" + echo -e "execute megalinter" + echo -e "" + echo -e "Usage" + echo -e "\tmegalinter_tmux [options] --input --output [--capture-std ]" + echo -e "" + echo -e "Arguments" + echo -e "\t-h|-?|--help show usage (this message)" + echo -e "\t--input specify the directory to scan" + echo -e "\t--output specify the path for the report file to be created at" + echo -e "\t--capture-std specify a path to write all captured STDOUT and STDERR to" + echo -e "" + echo -e "Options" + echo -e "\t-v|--verbose verbose output (useful for debugging)" + echo -e "" + echo -e "Examples" + echo -e "\t1. scan megalinter repo" + echo -e "\t\tmegalinter_tmux --input /megalinter --output /tmp/output.sarif" + echo -e "\t2. scan megalinter repo with capture std" + echo -e "\t\tmegalinter_tmux --input /megalinter --output /tmp/output.sarif --capture-std /tmp/out.log" + echo -e "" +} + +INPUT="" +OUTPUT="" +CAPTURE_STD="" +VERBOSE=0 + +# parse command line arguments +while :; do + case $1 in + -h|-\?|--help) + usage + exit + ;; + # options + -v|--verbose) + VERBOSE=1 + ;; + # arguments + --input) + if [ -n "$2" ]; then + INPUT=$2 + shift + else + printf 'ERROR: "--input" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --output) + if [ -n "$2" ]; then + OUTPUT=$2 + shift + else + printf 'ERROR: "--output" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --capture-std) + if [ -n "$2" ]; then + CAPTURE_STD=$2 + shift + else + printf 'ERROR: "--capture-std" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --) # End of all options. + shift + break + ;; + -?*) + printf 'WARN: Unknown option (ignored): %s\n' "$1" >&2 + ;; + *) # Default case: If no more options then break out of the loop. + break + esac + shift +done + +## prepare Megalinter scan command +if [ "${INPUT}" == "" ]; then + printf 'ERROR: No input given (--input)\n' >&2 + exit 1 +fi + +if [ "${OUTPUT}" == "" ]; then + printf 'ERROR: No output given (--output)\n' >&2 + exit 1 +fi +MEGALINTER_SCAN_COMMAND="DEFAULT_WORKSPACE=${INPUT} python -m megalinter.run --output ${OUTPUT}" +if [ "${CAPTURE_STD}" != "" ]; then + MEGALINTER_SCAN_COMMAND="${MEGALINTER_SCAN_COMMAND} &> ${CAPTURE_STD}" +fi +## prepare bash command +if [ "${VERBOSE}" == "1" ]; then + echo "The Megalinter Scan command is: ${MEGALINTER_SCAN_COMMAND}" +fi +BASH_COMMAND_TO_EXECUTE="/usr/bin/megalinter-sh/tmux_exec.sh '${MEGALINTER_SCAN_COMMAND}'" +if [ "${VERBOSE}" == "1" ]; then + echo "About to run the following scan command (also setting -x): ${BASH_COMMAND_TO_EXECUTE}" + set -x +fi +## run bash command +bash --login -c "${BASH_COMMAND_TO_EXECUTE}" diff --git a/sh/motd b/sh/motd new file mode 100644 index 00000000000..fe170214d65 --- /dev/null +++ b/sh/motd @@ -0,0 +1,17 @@ +#################################### +Welcome to MegaLinter SSH server ! +#################################### +(2021) Nicolas Vuillamy + +You can run the following commands: + +- bash : get within bash context + +- Run MegaLinter using tmux alias + + - tmux_exec "megalinter --input myrepository --output myoutputfile.sarif" (not working yet, it seems that megalinter alias is not found) + - tmux_exec "python -m megalinter.run --input demo-megalinter-security-flavor --output /tmp/report" (requires a /tmp/report mounted volume) + - tmux_exec "python -m megalinter.run --input demo-megalinter-security-flavor --output /tmp/report/myfile.sarif" (requires a /tmp/report mounted volume) + - tmux_exec "python -m megalinter.run --input demo-megalinter-security-flavor --output myfile.sarif" (Will generate myfile.sarif in repo megalinter-reports folder) + - tmux_exec "DEFAULT_WORKSPACE=/tmp/lint/demo-megalinter-security-flavor python -m megalinter.run" (working !) + diff --git a/sh/tmux_exec.sh b/sh/tmux_exec.sh new file mode 100755 index 00000000000..14d5efe64db --- /dev/null +++ b/sh/tmux_exec.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +COMMAND="$@" + +tmux new-window -t main " + trap 'tmux wait-for -S main-neww-done' 0 + $COMMAND + " \; wait-for main-neww-done \ No newline at end of file