{"adoption": {"forks": 309, "observed_at": "2026-08-28T04:07:01.421094+00:00", "stars": 2570}, "canonical_url": "https://ross.abutalabs.com/products/megalinter", "card": {"archived": false, "artifact_type": "cli-tool", "description": "🦙 MegaLinter analyzes 50 languages, 22 formats, 21 tooling formats, excessive copy-pastes, spelling mistakes and security issues in your repository sources with a GitHub Action, other CI tools or locally.", "domain": ["developer-tools", "security"], "enriched": true, "function": ["linter", "formatter", "ci-cd", "security", "code-review", "developer-tools"], "health_score": 100, "homepage": "http://megalinter.io/", "language": "Dockerfile", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["oxsecurity/megalinter"], "name": "oxsecurity/megalinter", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-26T15:34:28+00:00", "repo": "oxsecurity/megalinter", "stars": 2570, "tags": ["code-quality", "autofix", "multi-language", "sarif", "static-analysis", "github-action", "gitlab-ci", "spelling", "copy-paste-detection", "devops", "automation", "docker", "github-actions"], "topics": ["linter", "java", "code-quality", "jenkins", "terraform", "python", "kotlin", "golang", "markdown", "linters", "formatter", "best-practices", "security", "autofix", "apex", "azure-pipelines", "gitlab-ci", "sarif-report", "megalinter", "gemini-cli-extension"], "urls": [], "use_cases": ["lint all languages in my repository with one CI step", "automatically fix code style issues across a monorepo", "scan my repo for security issues and spelling mistakes in CI", "generate SARIF reports for code quality in GitHub", "run linters locally before pushing", "enforce code quality best practices across python java and golang projects", "lint terraform and markdown files in a pipeline"], "what_it_is": "MegaLinter is an open-source code quality tool that runs over 50 linters and formatters covering 50 languages, 22 formats, and 21 tooling formats in a single pass, detecting security issues, spelling mistakes, and copy-pasted code. It can be run via GitHub Action, other CI systems (GitLab CI, Jenkins, Azure Pipelines), or locally, with autofix and SARIF report support.", "when_to_avoid": ["you only need one language-specific linter with fine-grained configuration", "you cannot use Docker or Node.js in your environment", "you require a permissive license (it is AGPL-3.0)"], "when_to_choose": ["you want a single tool to aggregate many linters across polyglot repositories", "you need CI integration with GitHub Actions, GitLab CI, Jenkins, or Azure Pipelines", "you want automatic fixes and SARIF security reporting out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/megalinter", "repo": "oxsecurity/megalinter", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.421094+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:23:19.722251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ce818aff9ac2ba610638c6805030ade91f244a349558bb127bb598041e4bae", "fetched_at": "2026-08-28T04:07:01.421094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxsecurity/megalinter"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-29T10:05:39.073856+00:00", "kind": "homepage", "missing": false, "url": "http://megalinter.io/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2146, "days_push": 7, "days_rel": 25, "gap_med": 37.5, "n_releases_24m": 19}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}