chore(deps): update oxsecurity/megalinter action to v9#19
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
❌MegaLinter analysis: Error
Detailed Issues❌ ACTION / zizmor - 1 errorNotices⛔ ESLint v10 flat-config migration required — the following linters fail until you migrate: 📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining See detailed reports in MegaLinter artifacts
|
1a45d3b to
a18ee11
Compare
a18ee11 to
74bb061
Compare
74bb061 to
bdb80d2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR contains the following updates:
v8→v9Release Notes
oxsecurity/megalinter (oxsecurity/megalinter)
v9.6.0Compare Source
Breaking changes
cli_docker_image,cli_docker_image_versionandcli_docker_argsdescriptor properties (and the matching<LINTER>_DOCKER_IMAGE_VERSIONvariable) have been removed, and MegaLinter no longer mounts/var/run/docker.sock(inmega-linter-runner, the GitHub Actionaction.ymlfiles, and the Docker daemon previously bundled in flavor images). This closes the host-privilege escalation surface that the mounted Docker socket exposed. The only linter that used this mechanism wasSWIFT_SWIFTLINT, now installed natively (see below). (#8216)SWIFT_SWIFTLINTis now installed from the staticswiftlint-staticbinary instead of running theghcr.io/realm/swiftlintcontainer. It runs natively on the Alpine image with no Docker socket required. SourceKit-dependent rules are disabled in this build and reported to the console when encountered; pure-syntax style rules are unaffected. (#8216)@eslint/eslintrcshim removed from JavaScript/TypeScript/JSX/TSX Docker images (was only needed for legacyFlatCompat); MegaLinter's bundled test fixtures use native flat config. (#7869).eslintrc.*:JAVASCRIPT_ES,TYPESCRIPT_ES,JSX_ESLINT,TSX_ESLINTactivate when they find anyeslint.config.*or any deprecated.eslintrc.*/package.json#eslintConfig. In the legacy case the linter does not call ESLint at all — it emits a single hard failure with a migration message so the build stays red until the config is migrated to flat config. See the ESLint flat-config migration guide. To opt out, setDISABLE_LINTERSorDISABLEto exclude the affected linter/descriptor. (#7869)JSON_ESLINT_PLUGIN_JSONCremoved: upstream bug ota-meshi/eslint-plugin-jsonc#328 blocks ESLint v10 compatibility and will not be fixed. UseJSON_JSONLINT,JSON_PRETTIER, orJSON_V8Rfor JSON validation instead. (#7869)Core
common_linter_errors: declare known non-lint failure patterns (config issue, remote service down, missing credentials…) and the guidance message shown to users, directly in YAML — no custom Python class needed. (#7907)MARKDOWN_RUMDL: MARKDOWN_DEFAULT_STYLE=markdownlint (set MARKDOWN_DEFAULT_STYLE=rumdl to activate)), fixing #8017.New linters
Disabled linters
SALESFORCE_SFDX_SCANNER_APEX,SALESFORCE_SFDX_SCANNER_AURAandSALESFORCE_SFDX_SCANNER_LWC— disabled because sfdx-scanner 4.12.0 crashes on Node.js 22+ (TypeError: Cannot read properties of undefined (reading 'prototype'), caused by the removal ofSlowBuffer.prototype), which is shipped with Alpine 3.24. These linters were already deprecated; use theSALESFORCE_CODE_ANALYZER_APEX/SALESFORCE_CODE_ANALYZER_AURA/SALESFORCE_CODE_ANALYZER_LWCvariants instead (#8080).Deprecated linters
REPOSITORY_GITLEAKS— deprecated in favour ofREPOSITORY_BETTERLEAKS(same author, fully compatible config, significantly better detection). Will be removed in the next major release. Disable it by addingREPOSITORY_GITLEAKStoDISABLE_LINTERSin your.mega-linter.yml. (#8186)Removed linters
JSON_ESLINT_PLUGIN_JSONC— permanently broken by upstream bug (see Breaking changes) (#7869)Linters enhancements
REPOSITORY_CHECKOV: in pull-request mode, scan only the files modified in the PR instead of the whole repository (#7119)Fixes
REPOSITORY_BETTERLEAKS: default scan now runs in filesystem (dir) mode instead of auto-switching to git-history (git) mode when a git repository is detected. betterleaks does not read the global gitsafe.directoryconfig, so git mode failed withfatal: detected dubious ownership in repositoryin CI environments (e.g. GitHub Actions/github/workspace). Git-history mode is still used for the opt-inREPOSITORY_BETTERLEAKS_PR_COMMITS_SCANfeature. (#8186)REPOSITORY_BETTERLEAKS: added--verboseso detected findings (file, line and rule) are reported instead of only theleaks found: Nsummary, matching gitleaks behavior. Secret values stay redacted via--redact. (#8186)REPOSITORY_OSV_SCANNER: exit code 128 ("No package sources found") is now treated as a clean pass instead of a failure — osv-scanner returns this code when the repo contains no lockfiles/manifests/SBOMs, which is not a vulnerability finding (#7917).ansible-lintload-failure[not-found]error ongithub_conf/branch_protection_rules.jsoncaused by a race condition withcheckovrunning in parallel. Checkov's transient GitHub-conf directory is now written to a hidden path (.megalinter_github_conf) that project-mode linters skip, eliminating the conflict (#8092).python:3.14-alpine3.24base image (#8080).DeprecationWarning/ future breakage on Python 3.14 by no longer passingcountandflagsas positional arguments tore.sub(#8211).REPORT_OUTPUT_FOLDERfrom linting when configured as an absolute path inside the workspace (e.g./tmp/lint/megalinter-reports), fixing #7845.DOTNET_ROSLYNATOR) where a crafted.csprojfilename could break out ofdotnet restorearguments and execute arbitrary shell commands. The command is now invoked via argv list instead of a shell string. Reported by Francesco Sabiu. (#7857)IndexErrorwhen building the single-linter Docker image for a linter whose activation depends on a file (e.g.SPELL_VALErequires.vale.ini):python -m megalinter.run --linterversionnow bypasses activation filtering since the per-linter image is built for that linter unconditionally.make bootstrapappearing to hang because exported Make color variables re-evaluatedtputduring recursivemakeinvocations. (#8090)examplesin the Dart descriptor that were dropped from the generated documentation (#7913).Reporters
Doc
flavors-stats.jsonwith latest ghcr.io statspeter-evans/create-pull-requestto v8 in the documented workflow examples (#8089)mega-linter-runner
--user-map/--no-user-mapto control whether the MegaLinter container runs in non-root mode. On POSIX systems--user-mapuses the current host UID:GID; on other hosts it falls back to1000:1000. (#8120)--no-promptflag tomega-linter-runner --upgradefor non-interactive upgrades (#8093)mega-linter-runner/index.jsas executable in git (#8091)Dev
pr-monitor,security-analyst,version-bumper) and assign cost-effective models to mechanical tasks, to speed up and reduce the token cost of contributor workflows (#7906)./fix-issueClaude Code skill for end-to-end GitHub issue fixes (gather context, implement on a branch, open a PR, watch CI) (#7848).disabled: truein their descriptor. The matching images were already excluded from the build matrix (linters_matrix.json) and never published, so the on-disklinters/<linter>/Dockerfilewas dead code. Deleted the 8 corresponding stale Dockerfile directories.os.replace), so a transient file lock from an editor's JSON language server or antivirus no longer crashes the build withOSError: [Errno 22]on Windows..devcontainersetup from the Dockerfile to a JSON configuration file (#7865).CI
{ linter, platform, runner }job list directly inget-linters-matrixfor the DEV and BETA linter workflows, instead of a linter×runner cross-product filtered at runtime byjob_enabled. Removes thePreparestep and the no-op jobs while preserving selection logic (#8133, #8134).setup-runtime-user,megalinter_exec) in the image-build path filters by renaming them to.sh, so changes to them correctly trigger image rebuilds; generated images now use root-independent command wrappers instead of shell aliases (#8213).ref-version-mismatchaudit introduced by zizmor 1.25.0 for the project's pinneduses:action references. The SHA pins are correct (the supply-chain property); only the inline# vXcomments lag behind exact subversions, and renovate maintains the hashes.deploy-devworkflow (#8154).FromAsCasingbuild warning in generated Dockerfiles (#8094).Linter versions upgrades (58)
v9.5.0Compare Source
Take 2 mn to read MegaLinter v9.5.0 announcements
Breaking changes
Docker images published only to GitHub Container Registry (
ghcr.io) until OIDC-based publishing to Docker Hub is implemented. The Docker Hub registry (docker.io/oxsecurity/megalinter) is frozen at v9.4.0: pulls ofoxsecurity/megalinter:v9(or:beta, or any flavor tag) will keep returning v9.4.0. To get v9.5.0 and later from CI tools other than GitHub Actions (GitLab CI, Azure Pipelines, Bitbucket, Jenkins, Drone, rawdocker run, …), switch your image references:oxsecurity/megalinter:v9→ghcr.io/oxsecurity/megalinter:v9oxsecurity/megalinter:beta→ghcr.io/oxsecurity/megalinter:betaoxsecurity/megalinter-<flavor>:v9→ghcr.io/oxsecurity/megalinter-<flavor>:v9GitHub Action users (
uses: oxsecurity/megalinter@v9) andmega-linter-runnerusers are not affected, as both already pull fromghcr.io.ESLint-based linters upgraded to v10+. Legacy
.eslintrc.*configs are no longer supported: you must migrate to flat-config (eslint.config.js) to keep usingJAVASCRIPT_ES,TYPESCRIPT_ES,JSX_ESLINT,TSX_ESLINT, andJSON_ESLINT_PLUGIN_JSONC.Airbnb and Standard ESLint configs replaced (they never shipped ESLint 9+ support):
extends: ["airbnb"]→extends: ["airbnb-extended"]extends: ["standard"]→extends: ["neostandard"]Core
New linters
Disabled linters
Re-enabled linters
Deprecated linters
Removed linters
Media
Linters enhancements
.eslintrc.*configs are now detected and a migration notice is emitted in the report so users know they need to switch to flat-configBASH_SHELLCHECK_CONFIG_FILEvariable /.shellcheckrcconfig fileexclude_mailoption (no longer supported by lychee upstream)Fixes
YAML_V8R_CONFIG_FILE/JSON_V8R_CONFIG_FILEare now correctly applied (the v8r--catalogsoption is wired through)headers/ Accept settings being ignoredcwdoptionReporters
GITLAB_ACCESS_TOKEN_MEGALINTERis set (no longer requiresCI_JOB_TOKEN)###headings (Bitbucket Cloud markdown was displaying the previous<details>HTML tags as literal text)SECURITY_SUGGESTIONS: false.Flavors
linux/arm64in addition tolinux/amd64whenever possible (Apple Silicon, AWS Graviton, Ampere…)Doc
mega-linter-runner
--list-vars [pattern]flag (with--json) lists every MegaLinter env variable that can be passed via-e, with type, default, allowed values and examples (handy for AI coding agents)-e ENABLE_LINTERS=YAML_PRETTIER,YAML_YAMLLINTno longer silently drops values after the first comma (#7500). The--env=KEY=VALUElong form is also accepted.Dev
CLAUDE.mdand a set of/add-linter,/update-linter-version,/review-descriptor,/fix-linter-test,/add-reporter,/add-flavor,/build,/diagnose-config,/fix-security-issueskills to help work on MegaLinter with coding agents (Claude Code, GitHub Copilot, Codex, gemini-cli…)cli_lint_extra_args_afterper lint mode (list_of_files/project/file), a{file}template variable usable in command-line args, and a customizable files separatorCI
type=gha, zstd-compressed) on all deploy workflows, DEV pipeline split into parallel jobs sharing the image via cache, and cargo-based tools (sarif-fmt, zizmor, shellcheck-sarif, stylua) built in parallel multi-stage builders so the Rust toolchain no longer ships in the final image (except for clippy)Linter versions upgrades (62)
v9.4.0Compare Source
Take 2 mn to read MegaLinter v9.5.0 announcements
Breaking changes
Docker images published only to GitHub Container Registry (
ghcr.io) until OIDC-based publishing to Docker Hub is implemented. The Docker Hub registry (docker.io/oxsecurity/megalinter) is frozen at v9.4.0: pulls ofoxsecurity/megalinter:v9(or:beta, or any flavor tag) will keep returning v9.4.0. To get v9.5.0 and later from CI tools other than GitHub Actions (GitLab CI, Azure Pipelines, Bitbucket, Jenkins, Drone, rawdocker run, …), switch your image references:oxsecurity/megalinter:v9→ghcr.io/oxsecurity/megalinter:v9oxsecurity/megalinter:beta→ghcr.io/oxsecurity/megalinter:betaoxsecurity/megalinter-<flavor>:v9→ghcr.io/oxsecurity/megalinter-<flavor>:v9GitHub Action users (
uses: oxsecurity/megalinter@v9) andmega-linter-runnerusers are not affected, as both already pull fromghcr.io.ESLint-based linters upgraded to v10+. Legacy
.eslintrc.*configs are no longer supported: you must migrate to flat-config (eslint.config.js) to keep usingJAVASCRIPT_ES,TYPESCRIPT_ES,JSX_ESLINT,TSX_ESLINT, andJSON_ESLINT_PLUGIN_JSONC.Airbnb and Standard ESLint configs replaced (they never shipped ESLint 9+ support):
extends: ["airbnb"]→extends: ["airbnb-extended"]extends: ["standard"]→extends: ["neostandard"]Core
New linters
Disabled linters
Re-enabled linters
Deprecated linters
Removed linters
Media
Linters enhancements
.eslintrc.*configs are now detected and a migration notice is emitted in the report so users know they need to switch to flat-configBASH_SHELLCHECK_CONFIG_FILEvariable /.shellcheckrcconfig fileexclude_mailoption (no longer supported by lychee upstream)Fixes
YAML_V8R_CONFIG_FILE/JSON_V8R_CONFIG_FILEare now correctly applied (the v8r--catalogsoption is wired through)headers/ Accept settings being ignoredcwdoptionReporters
GITLAB_ACCESS_TOKEN_MEGALINTERis set (no longer requiresCI_JOB_TOKEN)###headings (Bitbucket Cloud markdown was displaying the previous<details>HTML tags as literal text)SECURITY_SUGGESTIONS: false.Flavors
linux/arm64in addition tolinux/amd64whenever possible (Apple Silicon, AWS Graviton, Ampere…)Doc
mega-linter-runner
--list-vars [pattern]flag (with--json) lists every MegaLinter env variable that can be passed via-e, with type, default, allowed values and examples (handy for AI coding agents)-e ENABLE_LINTERS=YAML_PRETTIER,YAML_YAMLLINTno longer silently drops values after the first comma (#7500). The--env=KEY=VALUElong form is also accepted.Dev
CLAUDE.mdand a set of/add-linter,/update-linter-version,/review-descriptor,/fix-linter-test,/add-reporter,/add-flavor,/build,/diagnose-config,/fix-security-issueskills to help work on MegaLinter with coding agents (Claude Code, GitHub Copilot, Codex, gemini-cli…)cli_lint_extra_args_afterper lint mode (list_of_files/project/file), a{file}template variable usable in command-line args, and a customizable files separatorCI
type=gha, zstd-compressed) on all deploy workflows, DEV pipeline split into parallel jobs sharing the image via cache, and cargo-based tools (sarif-fmt, zizmor, shellcheck-sarif, stylua) built in parallel multi-stage builders so the Rust toolchain no longer ships in the final image (except for clippy)Linter versions upgrades (62)
v9.3.0Compare Source
Core
New linters
Linters enhancements
Reporters
Doc
CI
Linter versions upgrades (54)
v9.2.0Compare Source
New linters
Disabled linters
Deprecated linters
SALESFORCE_SFDX_SCANNER_*linters have been deprecated and will be removed in a future version. (they are replaced bySALESFORCE_CODE_ANALYZER_*linters)Media
Linters enhancements
Fixes
Reporters
Doc
build.py --doc, by @echoix in #6447Flavors
CI
mega-linter-runner
Linter versions upgrades (53)
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.