Skip to content

Add supported_cli_lint_modes#7150

Merged
nvuillam merged 84 commits into
mainfrom
supported_cli_lint_modes
Jul 12, 2026
Merged

Add supported_cli_lint_modes#7150
nvuillam merged 84 commits into
mainfrom
supported_cli_lint_modes

Conversation

@bdovaz

@bdovaz bdovaz commented Feb 14, 2026

Copy link
Copy Markdown
Collaborator

Fixes #7120

Proposed Changes

  1. Add the supported_cli_lint_modes schema to explicitly establish which modes each linter supports.
  2. Test the success/failure tests in each of the supported modes. This is important because until now, only the mode configured in cli_lint_mode was tested.
  3. Changes in documentation generation to accommodate these changes.
  4. By going linter by linter to set the modes, the execution of several linters is being improved by switching from file to list_of_files or project in cases where it has been possible.

Readiness Checklist

Author/Contributor

  • Add entry to the CHANGELOG listing the change and linking to the corresponding issue (if appropriate)
  • If documentation is needed for this change, has that been included in this pull request

Reviewing Maintainer

  • Label as breaking if this is a large fundamental change
  • Label as either automation, bug, documentation, enhancement, infrastructure, or performance

@bdovaz bdovaz changed the title Supported cli lint modes Add supported_cli_lint_modes Feb 14, 2026
@github-actions

github-actions Bot commented Feb 14, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

⚠️ PYTHON / bandit - 135 errors
---------------------
>> Issue: [B311:blacklist] Standard pseudo-random generators are not suitable for security/cryptographic purposes.
   Severity: Low   Confidence: High
   CWE: CWE-330 (https://cwe.mitre.org/data/definitions/330.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random
   Location: ./megalinter/utils_sarif.py:156:61
155	                        rule["id"] = (
156	                            rule["id"] + "_DUPLICATE_" + str(random.randint(1, 99999))
157	                        )

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:124:4
123	    )
124	    assert os.path.isdir(config.get(request_id, "DEFAULT_WORKSPACE")), (
125	        "DEFAULT_WORKSPACE "
126	        + config.get(request_id, "DEFAULT_WORKSPACE")
127	        + " is not a valid folder"
128	    )
129	

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:172:4
171	    tmp_report_folder = tempfile.gettempdir() + os.path.sep + str(uuid.uuid4())
172	    assert os.path.isdir(workspace), f"Test folder {workspace} is not existing"
173	    linter_name = linter.linter_name

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:246:4
245	    tmp_report_folder = tempfile.gettempdir() + os.path.sep + str(uuid.uuid4())
246	    assert os.path.isdir(workspace), f"Test folder {workspace} is not existing"
247	    if os.path.isfile(workspace + os.path.sep + "no_test_failure"):

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:501:4
500	    )
501	    assert os.path.isdir(workspace), f"Test folder {workspace} is not existing"
502	    expected_file_name = ""

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:601:4
600	        workspace += os.path.sep + "bad"
601	    assert os.path.isdir(workspace), f"Test folder {workspace} is not existing"
602	    # Call linter

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:695:4
694	        workspace = workspace + os.path.sep + "fix"
695	    assert os.path.isdir(workspace), f"Test folder {workspace} is not existing"
696	

--------------------------------------------------
>> Issue: [B101:assert_used] Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
   Severity: Low   Confidence: High
   CWE: CWE-703 (https://cwe.mitre.org/data/definitions/703.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html
   Location: ./megalinter/utilstest.py:801:12
800	            ]
801	            assert (len(list(diffs))) > 0, f"No changes in the {file} file"
802	

--------------------------------------------------
>> Issue: [B108:hardcoded_tmp_directory] Probable insecure usage of temp file/directory.
   Severity: Medium   Confidence: Medium
   CWE: CWE-377 (https://cwe.mitre.org/data/definitions/377.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b108_hardcoded_tmp_directory.html
   Location: ./server/server.py:81:42
80	    if item.fileUploadId:
81	        uploaded_file_path = os.path.join("/tmp/server-files", item.fileUploadId)
82	        if not os.path.isdir(uploaded_file_path):

--------------------------------------------------
>> Issue: [B108:hardcoded_tmp_directory] Probable insecure usage of temp file/directory.
   Severity: Medium   Confidence: Medium
   CWE: CWE-377 (https://cwe.mitre.org/data/definitions/377.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b108_hardcoded_tmp_directory.html
   Location: ./server/server.py:103:38
102	    file_upload_id = "FILE_" + str(uuid1())
103	    uploaded_file_path = os.path.join("/tmp/server-files", file_upload_id)
104	    os.makedirs(uploaded_file_path)

--------------------------------------------------
>> Issue: [B108:hardcoded_tmp_directory] Probable insecure usage of temp file/directory.
   Severity: Medium   Confidence: Medium
   CWE: CWE-377 (https://cwe.mitre.org/data/definitions/377.html)
   More Info: https://bandit.readthedocs.io/en/1.9.4/plugins/b108_hardcoded_tmp_directory.html
   Location: ./server/server_worker.py:98:34
97	        temp_dir = self.create_temp_dir()
98	        upload_dir = os.path.join("/tmp/server-files", file_upload_id)
99	        if os.path.exists(upload_dir):

--------------------------------------------------

Code scanned:
	Total lines of code: 19937
	Total lines skipped (#nosec): 0
	Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0

Run metrics:
	Total issues (by severity):
		Undefined: 0
		Low: 104
		Medium: 22
		High: 9
	Total issues (by confidence):
		Undefined: 0
		Low: 14
		Medium: 20
		High: 101
Files skipped (0):

(Truncated to last 6666 characters out of 91273)
⚠️ BASH / bash-exec - 1 error
Results of bash-exec linter (version 5.3.9)
See documentation on https://megalinter.io/beta/descriptors/bash_bash_exec/
-----------------------------------------------

✅ [SUCCESS] .automation/build_schemas_doc.sh
✅ [SUCCESS] .automation/format-tables.sh
✅ [SUCCESS] .vscode/testlinter.sh
✅ [SUCCESS] build.sh
✅ [SUCCESS] entrypoint.sh
❌ [ERROR] sh/megalinter_exec.sh
    Error: File:[sh/megalinter_exec.sh] is not executable

✅ [SUCCESS] sh/setup-runtime-user.sh
⚠️ SPELL / lychee - 1 error
Error: Cannot parse inputs from arguments

Caused by:
    Input '.megalinter_github_conf/branch_protection_rules.json' not found as file and not a valid URL. Use full URL (e.g., https://example.com) or check file path.
⚠️ MARKDOWN / markdownlint - 362 errors
uld have alternate text (alt text)
docs/reporters/ApiReporter.md:330:1 error MD045/no-alt-text Images should have alternate text (alt text)
docs/reporters/ApiReporter.md:338:1 error MD045/no-alt-text Images should have alternate text (alt text)
docs/reporters/ApiReporter.md:344:1 error MD045/no-alt-text Images should have alternate text (alt text)
docs/reporters/ApiReporter.md:354:1 error MD045/no-alt-text Images should have alternate text (alt text)
docs/reporters/ApiReporter.md:360:1 error MD045/no-alt-text Images should have alternate text (alt text)
docs/reporters/AzureCommentReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Azure Comment Reporter"]
docs/reporters/BitbucketCommentReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Bitbucket Comment Reporter"]
docs/reporters/ConfigReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "IDE Configuration Reporter"]
docs/reporters/ConsoleReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Console Reporter"]
docs/reporters/EmailReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "E-mail Reporter"]
docs/reporters/FileIoReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "File.io Reporter"]
docs/reporters/GitHubCommentReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "GitHub Comment Reporter"]
docs/reporters/GitHubCommentReporter.md:27:196 error MD056/table-column-count Table column count [Expected: 4; Actual: 3; Too few cells, row will be missing data]
docs/reporters/GitHubCommentReporter.md:27:46 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:27:174 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:27:196 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:28:179 error MD056/table-column-count Table column count [Expected: 4; Actual: 3; Too few cells, row will be missing data]
docs/reporters/GitHubCommentReporter.md:28:46 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:28:160 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:28:179 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:29:159 error MD056/table-column-count Table column count [Expected: 4; Actual: 3; Too few cells, row will be missing data]
docs/reporters/GitHubCommentReporter.md:29:48 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:29:143 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:29:159 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:30:171 error MD056/table-column-count Table column count [Expected: 4; Actual: 3; Too few cells, row will be missing data]
docs/reporters/GitHubCommentReporter.md:30:46 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:30:152 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubCommentReporter.md:30:171 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
docs/reporters/GitHubStatusReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "GitHub Status Reporter"]
docs/reporters/GitlabCommentReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Gitlab Comment Reporter"]
docs/reporters/JsonReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "JSON Reporter"]
docs/reporters/MarkdownSummaryReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Markdown Summary Reporter"]
docs/reporters/SarifReporter.md:6 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "SARIF Reporter (beta)"]
docs/reporters/TapReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "TAP Reporter"]
docs/reporters/TextReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Text Reporter"]
docs/reporters/UpdatedSourcesReporter.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Updated Sources Reporter"]
docs/special-thanks.md:9 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Special thanks"]
docs/special-thanks.md:23:3 error MD045/no-alt-text Images should have alternate text (alt text)
docs/sponsor.md:5 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Sponsoring"]
docs/supported-linters.md:9 error MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "Supported Linters"]
mega-linter-runner/generators/mega-linter-custom-flavor/templates/README.md:69 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "How to use the custom flavor"]
mega-linter-runner/README.md:27:274 error MD051/link-fragments Link fragments should be valid [Context: "[**apply formatting and auto-fixes**](#apply-fixes)"]
mega-linter-runner/README.md:27:217 error MD051/link-fragments Link fragments should be valid [Context: "[**reports in several formats**](#reports)"]
README.md:190:127 error MD051/link-fragments Link fragments should be valid [Context: "[many additional features](#mega-linter-vs-super-linter)"]
README.md:1953:3 error MD045/no-alt-text Images should have alternate text (alt text)

(Truncated to last 6666 characters out of 47713)
⚠️ YAML / prettier - 14 errors
es/proselint/Spelling.yml 2ms (unchanged)
.github/linters/valestyles/proselint/Typography.yml 3ms (unchanged)
.github/linters/valestyles/proselint/Uncomparables.yml 5ms (unchanged)
.github/linters/valestyles/proselint/Very.yml 2ms (unchanged)
.github/release-drafter.yml 20ms (unchanged)
.grype.yaml 5ms (unchanged)
.mega-linter.yml 21ms (unchanged)
.pre-commit-hooks.yaml 13ms (unchanged)
action.yml 12ms (unchanged)
codecov.yml 2ms (unchanged)
mega-linter-runner/.eslintrc.yml 7ms (unchanged)
mega-linter-runner/.mega-linter.yml 8ms (unchanged)
mega-linter-runner/generators/mega-linter-custom-flavor/templates/action.yml 2ms (unchanged)
mega-linter-runner/generators/mega-linter-custom-flavor/templates/check-new-megalinter-version.yml 12ms (unchanged)
mega-linter-runner/generators/mega-linter-custom-flavor/templates/megalinter-custom-flavor-builder.yml 14ms (unchanged)
[error] mega-linter-runner/generators/mega-linter-custom-flavor/templates/megalinter-custom-flavor.yml: SyntaxError: Implicit map keys need to be followed by map values (6:1)
[error]   4 | label: <%= CUSTOM_FLAVOR_LABEL %>
[error]   5 | linters:
[error] > 6 | <%= CUSTOM_FLAVOR_LINTERS %>
[error]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]   7 |
mega-linter-runner/generators/mega-linter/templates/.drone.yml 3ms (unchanged)
mega-linter-runner/generators/mega-linter/templates/.gitlab-ci.yml 9ms (unchanged)
mega-linter-runner/generators/mega-linter/templates/azure-pipelines.yml 5ms (unchanged)
mega-linter-runner/generators/mega-linter/templates/bitbucket-pipelines.yml 7ms (unchanged)
mega-linter-runner/generators/mega-linter/templates/concourse-task.yml 4ms (unchanged)
[error] mega-linter-runner/generators/mega-linter/templates/mega-linter.yml: SyntaxError: Implicit map keys need to be followed by map values (67:11)
[error]   65 |           # Only define `secrets.PAT` if you fully understand the trade-off.
[error]   66 |           token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
[error] > 67 |           <%- PERSIST_CREDENTIALS %>
[error]      |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]   68 |
[error]   69 |           # If you use VALIDATE_ALL_CODEBASE = true, you can remove this line to
[error]   70 |           # improve performance
megalinter/descriptors/action.megalinter-descriptor.yml 15ms (unchanged)
megalinter/descriptors/ansible.megalinter-descriptor.yml 12ms (unchanged)
megalinter/descriptors/api.megalinter-descriptor.yml 11ms (unchanged)
megalinter/descriptors/arm.megalinter-descriptor.yml 10ms (unchanged)
megalinter/descriptors/bash.megalinter-descriptor.yml 14ms (unchanged)
megalinter/descriptors/bicep.megalinter-descriptor.yml 4ms (unchanged)
megalinter/descriptors/c.megalinter-descriptor.yml 20ms (unchanged)
megalinter/descriptors/clojure.megalinter-descriptor.yml 14ms (unchanged)
megalinter/descriptors/cloudformation.megalinter-descriptor.yml 33ms (unchanged)
megalinter/descriptors/coffee.megalinter-descriptor.yml 11ms (unchanged)
megalinter/descriptors/copypaste.megalinter-descriptor.yml 9ms (unchanged)
megalinter/descriptors/cpp.megalinter-descriptor.yml 25ms (unchanged)
megalinter/descriptors/csharp.megalinter-descriptor.yml 44ms (unchanged)
megalinter/descriptors/css.megalinter-descriptor.yml 10ms (unchanged)
megalinter/descriptors/dart.megalinter-descriptor.yml 13ms (unchanged)
megalinter/descriptors/dockerfile.megalinter-descriptor.yml 8ms (unchanged)
megalinter/descriptors/editorconfig.megalinter-descriptor.yml 6ms (unchanged)
megalinter/descriptors/env.megalinter-descriptor.yml 9ms (unchanged)
megalinter/descriptors/gherkin.megalinter-descriptor.yml 14ms (unchanged)
megalinter/descriptors/go.megalinter-descriptor.yml 21ms (unchanged)
megalinter/descriptors/graphql.megalinter-descriptor.yml 14ms (unchanged)
megalinter/descriptors/groovy.megalinter-descriptor.yml 21ms (unchanged)
megalinter/descriptors/html.megalinter-descriptor.yml 17ms (unchanged)
megalinter/descriptors/java.megalinter-descriptor.yml 17ms (unchanged)
megalinter/descriptors/javascript.megalinter-descriptor.yml 52ms (unchanged)
megalinter/descriptors/json.megalinter-descriptor.yml 57ms (unchanged)
megalinter/descriptors/jsx.megalinter-descriptor.yml 13ms (unchanged)
megalinter/descriptors/kotlin.megalinter-descriptor.yml 8ms (unchanged)
megalinter/descriptors/kubernetes.megalinter-descriptor.yml 26ms (unchanged)
megalinter/descriptors/latex.megalinter-descriptor.yml 7ms (unchanged)
megalinter/descriptors/lua.megalinter-descriptor.yml 20ms (unchanged)
megalinter/descriptors/makefile.megalinter-descriptor.yml 6ms (unchanged)
megalinter/descriptors/markdown.megalinter-descriptor.yml 26ms (unchanged)
megalinter/descriptors/perl.megalinter-descriptor.yml 16ms (unchanged)
megalinter/descriptors/php.megalinter-descriptor.yml 70ms (unchanged)
megalinter/descriptors/powershell.megalinter-descriptor.yml 25ms (unchanged)
megalinter/descriptors/protobuf.megalinter-descriptor.yml 8ms (unchanged)
megalinter/descriptors/puppet.megalinter-descriptor.yml 8ms (unchanged)
megalinter/descriptors/python.megalinter-descriptor.yml 172ms (unchanged)
megalinter/descriptors/r.megalinter-descriptor.yml 8ms (unchanged)
megalinter/descriptors/raku.megalinter-descriptor.yml 5ms (unchanged)
megalinter/descriptors/repository.megalinter-descriptor.yml 178ms (unchanged)
megalinter/descriptors/robotframework.megalinter-descriptor.yml 9ms (unchanged)
megalinter/descriptors/rst.megalinter-descriptor.yml 21ms (unchanged)
megalinter/descriptors/ruby.megalinter-descriptor.yml 23ms (unchanged)
megalinter/descriptors/rust.megalinter-descriptor.yml 6ms (unchanged)
megalinter/descriptors/salesforce.megalinter-descriptor.yml 60ms (unchanged)
megalinter/descriptors/scala.megalinter-descriptor.yml 6ms (unchanged)
megalinter/descriptors/snakemake.megalinter-descriptor.yml 16ms (unchanged)
megalinter/descriptors/spell.megalinter-descriptor.yml 58ms (unchanged)
megalinter/descriptors/sql.megalinter-descriptor.yml 11ms (unchanged)
megalinter/descriptors/swift.megalinter-descriptor.yml 11ms (unchanged)
megalinter/descriptors/tekton.megalinter-descriptor.yml 12ms (unchanged)
megalinter/descriptors/terraform.megalinter-descriptor.yml 40ms (unchanged)
megalinter/descriptors/tsx.megalinter-descriptor.yml 14ms (unchanged)
megalinter/descriptors/typescript.megalinter-descriptor.yml 28ms (unchanged)
megalinter/descriptors/vbdotnet.megalinter-descriptor.yml 7ms (unchanged)
megalinter/descriptors/xml.megalinter-descriptor.yml 7ms (unchanged)
megalinter/descriptors/yaml.megalinter-descriptor.yml 36ms (unchanged)
server/docker-compose-dev.yml 8ms (unchanged)
server/docker-compose.yml 7ms (unchanged)
trivy-secret.yaml 1ms (unchanged)
zizmor.yml 6ms (unchanged)

(Truncated to last 6666 characters out of 12077)
⚠️ YAML / yamllint - 42 errors
.grype.yaml
  6:1       warning  missing document start "---"  (document-start)

mega-linter-runner/.eslintrc.yml
  11:9      warning  too few spaces inside empty braces  (braces)

mega-linter-runner/generators/mega-linter-custom-flavor/templates/megalinter-custom-flavor-builder.yml
  48:15     warning  too few spaces inside empty braces  (braces)

mega-linter-runner/generators/mega-linter-custom-flavor/templates/megalinter-custom-flavor.yml
  7:1       error    syntax error: could not find expected ':' (syntax)

mega-linter-runner/generators/mega-linter/templates/mega-linter.yml
  38:15     warning  too few spaces inside empty braces  (braces)
  69:11     error    syntax error: could not find expected ':' (syntax)

megalinter/descriptors/copypaste.megalinter-descriptor.yml
  18:301    warning  line too long (313 > 300 characters)  (line-length)

megalinter/descriptors/javascript.megalinter-descriptor.yml
  54:301    warning  line too long (475 > 300 characters)  (line-length)
  348:301   warning  line too long (307 > 300 characters)  (line-length)

megalinter/descriptors/jsx.megalinter-descriptor.yml
  30:301    warning  line too long (475 > 300 characters)  (line-length)

megalinter/descriptors/markdown.megalinter-descriptor.yml
  89:301    warning  line too long (366 > 300 characters)  (line-length)

megalinter/descriptors/perl.megalinter-descriptor.yml
  26:301    warning  line too long (310 > 300 characters)  (line-length)

megalinter/descriptors/php.megalinter-descriptor.yml
  195:301   warning  line too long (389 > 300 characters)  (line-length)
  209:301   warning  line too long (302 > 300 characters)  (line-length)

megalinter/descriptors/repository.megalinter-descriptor.yml
  183:301   warning  line too long (408 > 300 characters)  (line-length)
  273:301   warning  line too long (329 > 300 characters)  (line-length)
  305:301   warning  line too long (306 > 300 characters)  (line-length)
  310:301   warning  line too long (321 > 300 characters)  (line-length)
  450:301   warning  line too long (345 > 300 characters)  (line-length)
  627:301   warning  line too long (338 > 300 characters)  (line-length)
  718:301   warning  line too long (306 > 300 characters)  (line-length)
  881:301   warning  line too long (316 > 300 characters)  (line-length)
  1206:301  warning  line too long (1263 > 300 characters)  (line-length)
  1299:301  warning  line too long (879 > 300 characters)  (line-length)
  1313:301  warning  line too long (358 > 300 characters)  (line-length)
  1375:301  warning  line too long (346 > 300 characters)  (line-length)
  1382:301  warning  line too long (307 > 300 characters)  (line-length)

megalinter/descriptors/salesforce.megalinter-descriptor.yml
  52:301    warning  line too long (359 > 300 characters)  (line-length)
  350:301   warning  line too long (359 > 300 characters)  (line-length)

megalinter/descriptors/spell.megalinter-descriptor.yml
  174:301   warning  line too long (315 > 300 characters)  (line-length)

megalinter/descriptors/sql.megalinter-descriptor.yml
  103:301   warning  line too long (319 > 300 characters)  (line-length)

megalinter/descriptors/terraform.megalinter-descriptor.yml
  27:301    warning  line too long (330 > 300 characters)  (line-length)
  92:301    warning  line too long (391 > 300 characters)  (line-length)
  150:301   warning  line too long (346 > 300 characters)  (line-length)
  216:301   warning  line too long (328 > 300 characters)  (line-length)

megalinter/descriptors/tsx.megalinter-descriptor.yml
  30:301    warning  line too long (475 > 300 characters)  (line-length)

megalinter/descriptors/typescript.megalinter-descriptor.yml
  41:301    warning  line too long (475 > 300 characters)  (line-length)
  338:301   warning  line too long (314 > 300 characters)  (line-length)

mkdocs.yml
  8:301     warning  line too long (552 > 300 characters)  (line-length)
  66:5      warning  wrong indentation: expected 6 but found 4  (indentation)
  78:5      warning  wrong indentation: expected 6 but found 4  (indentation)

zizmor.yml
  1:1       warning  missing document start "---"  (document-start)

✅ Linters with no issues

actionlint, betterleaks, black, checkov, cspell, flake8, git_diff, grype, hadolint, isort, jscpd, jsonlint, markdown-table-formatter, mypy, npm-groovy-lint, osv-scanner, pylint, ruff, secretlint, shellcheck, shfmt, syft, trivy, trivy-sbom, trufflehog, v8r, v8r, xmllint, zizmor

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

This pull request has been automatically marked as stale because it has not had recent activity.
It will be closed in 14 days if no further activity occurs.
Thank you for your contributions.

If you think this pull request should stay open, please remove the O: stale 🤖 label or comment on the pull request.

@nvuillam

nvuillam commented Jul 8, 2026

Copy link
Copy Markdown
Member

@bdovaz is this PR still draft ? 🙃

@bdovaz

bdovaz commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

@bdovaz is this PR still draft ? 🙃

Yes, as you can see, I still have 4 linters to fix. There's very little left, but I'm still working on it.

@cursor

cursor Bot commented Jul 9, 2026

Copy link
Copy Markdown

Bugbot is not enabled for this team, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@bdovaz

bdovaz commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

@nvuillam @echoix finally ready for review!

The errors are from Trivy

nvuillam added 5 commits July 12, 2026 10:32
The per-mode tests set <LINTER>_CLI_LINT_MODE then built the linter, which
now raises when the mode is unsupported (runtime enforcement). Probe the
linter's supported modes before applying the override so unsupported modes
are skipped instead of erroring; move the skip logic into LinterTestRoot and
drop the redundant per-mode wrappers in utilstest.
The per-mode test refactor moved php_good_1.php / php_good_2.php into the
.automation/test/php/good/ subfolder, but runtime-image.test.js still copied
them from the old flat path, failing the PHP_PHPCSFIXER runtime-image tests
with ENOENT.
The fixture reorg moved .automation/test/perl/perl_good_2 to
.automation/test/perl/good/perl_good_2.pl (subfolder + .pl extension), but
filters_test.test_file_contains_true still referenced the old flat path,
failing with a missing-file assertion.

@nvuillam nvuillam left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great PR, thanks @bdovaz

I just added a failure in case a mode is overridden with an unsupported value ^^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

nostale This issue or pull request is not stale, keep it open

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve lint modes

2 participants