Releases: oxsecurity/megalinter
Releases · oxsecurity/megalinter
v9.4.0
What's Changed
-
Core
- Improve files browsing performances (2 PRs)
- Optimize parallel linter processing and improve grouping logic
- Improve performance of listing .gitignored files by sending excluded directories to git ls-files
- If there are more than 500 .gitignored files, advise to add more excluded directories using variable ADDITIONAL_EXCLUDED_DIRECTORIES, to improve performances
- Reduce redundant config lookups, environment copies, and dict rebuilds across config, linter, and utils modules
- Cache subprocess environment per linter run and excluded directories per request
- Optimize parallel linter result update from O(n²) to O(n)
- Add support in the build of Docker images for linux/arm64 in compatible linters
-
New linters
- Add PYTHON_NBQA_MYPY for type-checking Jupyter notebooks using nbqa + mypy
-
Disabled linters
- LUA_SELENE: Kampfkarren/selene#662
-
Linters enhancements
-
Fixes
- Add support for SSH remote origins when building custom flavors (fixes: #6511)
- Fix issue with plugins ignored when FLAVOR_SUGGESTIONS=false
- Fix wrong tagging
apply_fixes=Truewhen linter has no fix options configured - Python mypy: Remove
.ipynbfrom file extensions (mypy doesn't support notebooks directly) - fixes #6904 - Fix operator precedence bug in pre_post_factory pre/post command logic
- Fix file handle leak in GitleaksLinter
- Fix variable name bug in utils.get_git_context_info
- Minor fixes in logger, SqlFluffLinter, PowershellLinter, TrivyLinter
-
Reporters
- Add a link inviting to star MegaLinter
- Display in the console reporter the working directory from which the commands are executed by @bdovaz
- Update WebHook reporter so it can send more events for a better integration with UI
- When truncating long comments in markdown reports, keep the end of the text instead of the beginning (which usually contains less useful information)
- In case GitHub Api returns 500, do not make the whole MegaLinter fail, display a warning instead
- Azure Reporter: Use Azure DevOps Services REST API instead of unmaintained python wrapper lib
-
Flavors
- Custom flavor builder:
- Add support for SSH remotes
- Allow selection of platforms to build the custom flavor on (ex: linux/amd64, linux/arm64) and build compatible linters on these platforms
- Build & release custom flavor builder image for linux/arm64
- Custom flavor builder:
-
Doc
- JSON Schema: Add default values for file extensions and file names variables + improve descriptions
- Update default secured env variables documentation
- Fix banner img in json_prettier and yaml_prettier docs
- Explain better how to run tests locally
- Vale: Mention community style packages in linter description
-
CI
- Free more space on GitHub Actions runners to avoid build failures
- Ignore .isorted files in secretlint to avoid scanning transient files created by other linters
- Avoid duplicate jobs "Mirror docker image"
- Allow to skip linters build using
skip lintersin latest commit text - Allow to disable build & push of standalone linters docker images using variable
BETA_LINTERS_ENABLED=false - Improve performances of formatting markdown tables during build
- Improve test classes performances and fix race conditions
- Fix plugin test to work with forks and feature branches
- Update .devcontainer image to trixie
-
mega-linter-runner
- If variables are defined in a local .env file, send their values to docker/podman run command (can be useful for secret variables)
- Never send .env file to the docker run for security reasons, instead create an empty one if needed
- Use npm trusted publishers (OIDC) to publish mega-linter-runner
-
Linter versions upgrades (59)
- actionlint from 1.7.10 to 1.7.11
- ansible-lint from 25.12.2 to 26.2.0
- bandit from 1.9.2 to 1.9.4
- bicep_linter from 0.39.26 to 0.41.2
- black from 25.12.0 to 26.1.0
- cfn-lint from 1.43.1 to 1.45.0
- checkov from 3.2.497 to 3.2.506
- clippy from 0.1.92 to 0.1.93
- clj-kondo from 2025.12.23 to 2026.01.19
- code-analyzer-apex from 5.7.1 to 5.10.0
- code-analyzer-aura from 5.7.1 to 5.10.0
- code-analyzer-lwc from 5.7.1 to 5.10.0
- csharpier from 1.2.5 to 1.2.6
- cspell from 9.4.0 to 9.7.0
- dartanalyzer from 3.10.7 to 3.11.1
- devskim from 1.0.67 to 1.0.70
- dotnet-format from 9.0.112 to 9.0.114
- editorconfig-checker from 3.6.0 to 3.6.1
- golangci-lint from 2.7.2 to 2.10.1
- grype from 0.104.3 to 0.109.0
- htmlhint from 1.8.0 to 1.9.1
- isort from 7.0.0 to 8.0.0
- jscpd from 4.0.5 to 4.0.8
- jsonlint from 16.0.0 to 17.0.1
- kics from 2.1.18 to 2.1.19
- kingfisher from 1.73.0 to 1.84.0
- kubescape from 3.0.47 to 4.0.2
- npm-groovy-lint from 16.1.1 to 16.2.0
- php-cs-fixer from 3.92.4 to 3.94.2
- phpstan from 2.1.33 to 2.1.40
- pmd from 7.20.0 to 7.22.0
- prettier from 3.7.4 to 3.8.1
- psalm from Psalm.6.14.3@ to Psalm.6.15.1@
- pylint from 4.0.4 to 4.0.5
- pyright from 1.1.407 to 1.1.408
- revive from 1.13.0 to 1.14.0
- robocop from 7.2.0 to 8.2.2
- rubocop from 1.82.1 to 1.85.0
- ruff-format from 0.14.10 to 0.15.4
- ruff from 0.14.10 to 0.15.4
- rumdl from 0.0.208 to 0.1.32
- scalafix from 0.14.5 to 0.14.6
- secretlint from 11.2.5 to 11.3.1
- semgrep from 1.151.0 to 1.153.1
- snakefmt from 0.11.2 to 0.11.4
- snakemake from 9.14.5 to 9.16.3
- sqlfluff from 3.5.0 to 4.0.4
- swiftlint from 0.63.0 to 0.63.2
- syft from 1.39.0 to 1.42.1
- terraform-fmt from 1.14.1 to 1.14.5
- terragrunt from 0.93.13 to 0.99.4
- tflint from 0.60.0 to 0.61.0
- trivy-sbom from 0.68.2 to 0.69.1
- trivy from 0.68.2 to 0.69.1
- trufflehog from 3.92.4 to 3.93.6
- v8r from 5.1.0 to 6.0.0
- vale from 3.13.0 to 3.13.1
- yamllint from 1.37.1 to 1.38.0
Pull Requests
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6890
- ci: ignore urls with parameters by @bdovaz in #6892
- chore: fix invalid urls by @bdovaz in #6893
- chore(deps): lock file maintenance by @renovate[bot] in #6895
- chore(deps): update dependency @salesforce/plugin-code-analyzer to v5.8.0 by @renovate[bot] in #6894
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6896
- chore(deps): update dependency rumdl to v0.0.209 by @renovate[bot] in #6897
- chore(deps): update dependency rumdl to v0.0.210 by @renovate[bot] in #6901
- chore(deps): update dependency cfn-lint to v1.43.2 by @renovate[bot] in #6900
- [...
v9.3.0
What's Changed
-
Core
- Add enum name support in MegaLinter config Json schema for better autocompletion in editors
- Update base image to python:3.13-alpine3.23
-
New linters
- Add codespell
- Add kingfisher by @bdovaz
- Add rumdl by @bdovaz
-
Linters enhancements
- Change checkmake Docker image reference by @bdovaz
-
Reporters
- Handle multiple MegaLinter runs on the same repo using custom value sent in variable MEGALINTER_MULTIRUN_KEY
- Allow to override url to CI build in Git based reporters using REPORTERS_ACTION_RUN_URL variable
- Fix sections display in Gitlab console logs
-
Doc
- Classify all JSON schema config variables by category and section
-
CI
- Free disk space on GitHub actions runner when releasing a new flavor
- Add missing Dockerfile patterns to Renovate Dockerfile manager
- Remove gitpod custom image, workflow, and makefile targets
-
Linter versions upgrades (54)
- actionlint from 1.7.9 to 1.7.10
- ansible-lint from 25.11.1 to 25.12.2
- bash-exec from 5.2.37 to 5.3.3
- black from 25.11.0 to 25.12.0
- cfn-lint from 1.41.0 to 1.43.1
- checkov from 3.2.495 to 3.2.497
- clang-format from 20.1.8 to 21.1.2
- clippy from 0.1.91 to 0.1.92
- clj-kondo from 2025.10.23 to 2025.12.23
- code-analyzer-apex from 5.6.1 to 5.7.1
- code-analyzer-aura from 5.6.1 to 5.7.1
- code-analyzer-lwc from 5.6.1 to 5.7.1
- cppcheck from 2.14.2 to 2.18.3
- csharpier from 1.2.1 to 1.2.5
- cspell from 9.3.2 to 9.4.0
- dartanalyzer from 3.8.3 to 3.10.7
- dotnet-format from 9.0.111 to 9.0.112
- git_diff from 2.49.1 to 2.52.0
- golangci-lint from 2.6.2 to 2.7.2
- grype from 0.104.1 to 0.104.3
- helm from 3.18.4 to 3.19.0
- htmlhint from 1.7.1 to 1.8.0
- kics from 2.1.16 to 2.1.18
- kingfisher from 1.71.0 to 1.73.0
- kubescape from 3.0.45 to 3.0.47
- markdown-table-formatter from 1.6.1 to 1.7.0
- markdownlint from 0.45.0 to 0.47.0
- mypy from 1.18.2 to 1.19.1
- npm-groovy-lint from 15.2.2 to 16.1.1
- npm-package-json-lint from 9.0.0 to 9.1.0
- php-cs-fixer from 3.90.0 to 3.92.4
- phplint from 9.6.2 to 9.7.1
- phpstan from 2.1.32 to 2.1.33
- pmd from 7.18.0 to 7.20.0
- prettier from 3.6.2 to 3.7.4
- psalm from Psalm.6.13.1@ to Psalm.6.14.3@
- pylint from 4.0.3 to 4.0.4
- robocop from 6.11.0 to 7.2.0
- roslynator from 0.11.0.0 to 0.12.0.0
- rubocop from 1.81.7 to 1.82.0
- rubocop from 1.82.0 to 1.82.1
- ruff-format from 0.14.6 to 0.14.10
- ruff from 0.14.6 to 0.14.10
- rumdl from 0.0.199 to 0.0.208
- scalafix from 0.14.4 to 0.14.5
- snakemake from 9.13.7 to 9.14.5
- stylelint from 16.26.0 to 16.26.1
- swiftlint from 0.62.2 to 0.63.0
- syft from 1.38.0 to 1.39.0
- terraform-fmt from 1.14.0 to 1.14.1
- terragrunt from 0.93.10 to 0.93.13
- trivy-sbom from 0.67.2 to 0.68.2
- trivy from 0.67.2 to 0.68.2
- trufflehog from 3.91.1 to 3.92.4
Pull Requests
- Frees disk space on GitHub Actions runners by @nvuillam in #6662
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6663
- chore(deps): update dependency eslint-plugin-vue to v10.6.2 by @renovate[bot] in #6660
- chore(deps): update dependency overtrue/phplint to v9.6.3 by @renovate[bot] in #6664
- feat(linter): add codespell linter by @ideaship in #6256
- chore(deps): lock file maintenance by @renovate[bot] in #6667
- Disable codespell on MegaLinter by @nvuillam in #6668
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6670
- Bump fastapi from 0.121.3 to 0.123.0 in /server by @dependabot[bot] in #6674
- Bump fastapi from 0.121.3 to 0.123.0 in /.config/python/dev by @dependabot[bot] in #6671
- Bump pymdown-extensions from 10.17.1 to 10.17.2 in /.config/python/dev by @dependabot[bot] in #6673
- Bump beautifulsoup4 from 4.14.2 to 4.14.3 in /.config/python/dev by @dependabot[bot] in #6672
- Bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in #6676
- chore(deps): update dependency mega-linter-runner to v9.2.0 by @renovate[bot] in #6680
- chore(deps): update checkmarx/kics docker tag to v2.1.17 by @renovate[bot] in #6677
- chore(deps): update dependency fastapi to v0.123.5 by @renovate[bot] in #6678
- chore(deps): update dependency ruff to v0.14.7 by @renovate[bot] in #6679
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6681
- chore(deps): update dependency pylint to v4.0.4 by @renovate[bot] in #6682
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6684
- chore(deps): update dependency sfdx-hardis to v6.12.10 by @renovate[bot] in #6683
- chore(deps): update dependency stylelint to v16.26.1 by @renovate[bot] in #6685
- chore(deps): update trufflesecurity/trufflehog docker tag to v3.91.2 by @renovate[bot] in #6687
- chore(deps): update dependency fastapi to v0.123.7 by @renovate[bot] in #6686
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6688
- chore(deps): update dependency pmd/pmd to v7.19.0 by @renovate[bot] in #6694
- chore(deps): update actions/setup-node action to v6.1.0 by @renovate[bot] in #6689
- chore(deps): update dependency ansible-lint to v25.12.0 by @renovate[bot] in #6690
- chore(deps): update dependency golangci/golangci-lint to v2.7.1 by @renovate[bot] in #6692
- chore(deps): update dependency mypy to v1.19.0 by @renovate[bot] in #6693
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6691
- chore(deps): update dependency ruff to v0.14.8 by @renovate[bot] in #6697
- chore(deps): update dependency friendsofphp/php-cs-fixer to v3.91.2 by @renovate[bot] in #6700
- chore(deps): update dependency urllib3 to v2.6.0 [security] by @r...
v9.2.0
What's Changed
-
New linters
-
Disabled linters
- Reactivate checkov
-
Deprecated linters
- Deprecate terrascan as the project is discontinued. Will be completely removed in a future version.
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
- Add conversion from Jenkins variables to related Git based reporters variables
-
Doc
-
Flavors
- Add GITHUB_TOKEN in docker buildx build command for custom flavor, by @davidfevre-gouv-nc in #6545
-
CI
-
mega-linter-runner
- Handle upgrade of stefanzweifel/git-auto-commit-action to v7
-
Linter versions upgrades (53)
- actionlint from 1.7.7 to 1.7.9
- ansible-lint from 25.9.1 to 25.11.1
- bandit from 1.8.6 to 1.9.2
- bicep_linter from 0.38.33 to 0.39.26
- black from 25.9.0 to 25.11.0
- cfn-lint from 1.40.0 to 1.41.0
- checkov from 3.2.413 to 3.2.495
- checkstyle from 11.1.0 to 12.1.0
- clippy from 0.1.90 to 0.1.91
- clj-kondo from 2025.09.22 to 2025.10.23
- csharpier from 1.1.2 to 1.2.1
- cspell from 9.2.1 to 9.3.2
- dotenv-linter from 3.3.0 to 4.0.0
- dotnet-format from 9.0.110 to 9.0.111
- editorconfig-checker from 3.4.0 to 3.6.0
- git_diff from 2.47.0 to 2.49.1
- gitleaks from 8.28.0 to 8.30.0
- golangci-lint from 2.5.0 to 2.6.2
- grype from 0.100.0 to 0.104.1
- isort from 6.1.0 to 7.0.0
- kics from 2.1.14 to 2.1.16
- ktlint from 1.7.1 to 1.8.0
- kubescape from 3.0.41 to 3.0.45
- php-cs-fixer from 3.88.2 to 3.90.0
- phpcs from 4.0.0 to 4.0.1
- phpstan from 2.1.30 to 2.1.32
- pmd from 7.17.0 to 7.18.0
- powershell from 7.5.3 to 7.5.4
- pylint from 3.3.9 to 4.0.3
- pyright from 1.1.406 to 1.1.407
- raku from 2024.12 to 2025.11
- revive from 1.12.0 to 1.13.0
- robocop from 6.7.2 to 6.11.0
- roslynator from 0.10.2.0 to 0.11.0.0
- rst-lint from 1.4.0 to 2.0.2
- rubocop from 1.81.1 to 1.81.7
- ruff-format from 0.13.3 to 0.14.6
- ruff from 0.13.3 to 0.14.6
- scalafix from 0.14.3 to 0.14.4
- secretlint from 11.2.4 to 11.2.5
- snakemake from 9.11.9 to 9.13.7
- sqlfluff from 3.4.2 to 3.5.0
- stylelint from 16.24.0 to 16.26.0
- swiftlint from 0.61.0 to 0.62.2
- syft from 1.33.0 to 1.38.0
- terraform-fmt from 1.13.3 to 1.14.0
- terragrunt from 0.88.1 to 0.93.10
- tflint from 0.59.1 to 0.60.0
- trivy-sbom from 0.67.0 to 0.67.2
- trivy from 0.67.0 to 0.67.2
- trufflehog from 3.90.11 to 3.91.1
- vale from 3.12.0 to 3.13.0
- xmllint from 21308 to 21309
Pull Requests
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6307
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6310
- chore(config): migrate renovate config by @renovate[bot] in #6309
- chore(deps): update dependency sfdx-hardis to v6.7.1 by @renovate[bot] in #6303
- chore(deps): update dependency ansible-lint to v25.9.2 by @renovate[bot] in #6312
- chore(deps): update dependency aquasecurity/trivy to v0.67.2 by @renovate[bot] in #6313
- chore(deps): update dependency snakemake to v9.13.2 by @renovate[bot] in #6304
- chore(deps): update dependency cfn-lint to v1.40.1 by @renovate[bot] in #6314
- chore(deps): update dependency fastapi to v0.118.3 by @renovate[bot] in #6315
- chore(deps): update dependency langchain_anthropic to v0.3.22 by @renovate[bot] in #6316
- chore(deps): update dependency python-gitlab to v6.4.0 by @renovate[bot] in #6243
- chore(deps): update dependency puppet-lint to v5.1.0 by @renovate[bot] in #6239
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6311
- chore(deps): update tflint plugin terraform-linters/tflint-ruleset-google to v0.36.0 by @renovate[bot] in #6246
- chore(deps): update dependency eslint-plugin-vue to v10.5.0 by @renovate[bot] in #6207
- chore(deps): update dependency langchain_community to v0.3.31 by @renovate[bot] in #6317
- chore(deps): update dependency langchain_core to v0.3.79 by @renovate[bot] in #6318
- chore(deps): update rhysd/actionlint docker tag to v1.7.8 by @renovate[bot] in #6319
- chore(deps): update dependency ruff to v0.14.0 by @renovate[bot] in #6320
- chore(deps): update dependency pylint to v4 by @renovate[bot] in #6321
- chore(deps): update dependency npm to v11.6.2 by @renovate[bot] in htt...
v9.1.0
What's Changed
-
New linters
-
Linters enhancements
- Python Linting: Added more file type supports for various linters. Full description here
-
Doc
- Add OLLAMA_BASE_URL is MegaLinter config Json schema
-
Flavors
- Custom flavors: Add workflow to automate detection of new MegaLinter versions and generation of new Custom Flavor
-
CI
- Fix v9 release issue + mark hardcoded versions to upgrade at each new major release.
-
Linter versions upgrades (22)
- ansible-lint from 25.9.0 to 25.9.1
- bicep_linter from 0.37.4 to 0.38.33
- cfn-lint from 1.39.1 to 1.40.0
- checkstyle from 11.0.1 to 11.1.0
- clj-kondo from 2025.09.19 to 2025.09.22
- golangci-lint from 2.4.0 to 2.5.0
- hadolint from 2.13.1 to 2.14.0
- isort from 6.0.1 to 6.1.0
- kics from 2.1.13 to 2.1.14
- npm-groovy-lint from 15.2.1 to 15.2.2
- php-cs-fixer from 3.87.2 to 3.88.2
- phpstan from 2.1.28 to 2.1.30
- pylint from 3.3.8 to 3.3.9
- pyright from 1.1.405 to 1.1.406
- robocop from 6.7.0 to 6.7.2
- rubocop from 1.80.2 to 1.81.1
- ruff-format from 0.13.1 to 0.13.3
- ruff from 0.13.1 to 0.13.3
- snakemake from 9.11.4 to 9.11.9
- terraform-fmt from 1.13.2 to 1.13.3
- terragrunt from 0.87.2 to 0.88.1
- trivy from 0.66.0 to 0.67.0
Pull Requests
- chore(deps): update alpine/terragrunt docker tag to v1.13.3 by @renovate[bot] in #6201
- chore(deps): update dependency @salesforce/cli to v2.106.6 by @renovate[bot] in #6199
- chore(deps): update dependency fastapi to v0.117.1 by @renovate[bot] in #6195
- chore(deps): update dependency @salesforce/plugin-packaging to v2.20.4 by @renovate[bot] in #6198
- chore(deps): update dependency sfdx-hardis to v6.5.2 by @renovate[bot] in #6202
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6203
- chore(deps): update dependency golangci/golangci-lint to v2.5.0 by @renovate[bot] in #6204
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6205
- Adding supported filetypes to black, bandit, mypy, pylint, isort, and pyright Python linters by @CraigCallender in #6214
- chore(deps): update dependency sfdx-hardis to v6.5.3 by @renovate[bot] in #6213
- chore(deps): update dependency mega-linter-runner to v9.0.1 by @renovate[bot] in #6200
- chore(deps): lock file maintenance by @renovate[bot] in #6206
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6216
- chore(deps): update dependency eslint to v9.36.0 - autoclosed by @renovate[bot] in #6211
- Bump hadolint/hadolint from v2.13.1-alpine to v2.14.0-alpine in /server by @dependabot[bot] in #6210
- chore(deps): update hadolint/hadolint docker tag to v2.14.0 by @renovate[bot] in #6208
- chore(deps): update dependency puppet-lint to v5 by @renovate[bot] in #6221
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6219
- chore(deps): update dependency uvicorn to v0.37.0 by @renovate[bot] in #6220
- chore(deps): update checkmarx/kics docker tag to v2.1.14 by @renovate[bot] in #6215
- [automation] Auto-update linters version, help and documentation by @nvuillam in #6222
- chore(deps): update dependency @salesforce/cli to v2.107.6 by @renovate[bot] in #6226
- chore(deps): update dependency snakemake to v9.11.6 by @renovate[bot] in #6217
- chore(deps): update typescript-eslint monorepo to v8.44.1 (patch) by @renovate[bot] in #6212
- chore(deps): update dependency phpstan/phpstan to v2.1.29 by @renovate[bot] in #6228
- chore(deps): update dependency friendsofphp/php-cs-fixer to v3.88.2 by @renovate[bot] in #6227
- Add Robocop linter by @bdovaz in #6232
- chore(deps): update dependency npm to v11.6.1 by @renovate[bot] in