{"adoption": {"forks": 297, "observed_at": "2026-08-28T04:07:42.335578+00:00", "stars": 3090}, "canonical_url": "https://ross.abutalabs.com/products/reportgenerator", "card": {"archived": false, "artifact_type": "cli-tool", "description": "ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.", "domain": ["testing", "developer-tools"], "enriched": true, "function": ["testing", "developer-tools", "cli", "ci-cd"], "health_score": 98, "homepage": "https://reportgenerator.io", "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["danielpalme/ReportGenerator"], "name": "danielpalme/ReportGenerator", "platform": ["cross-platform", "cli", "windows", "dotnet"], "pushed_at": "2026-08-12T15:26:51+00:00", "repo": "danielpalme/ReportGenerator", "stars": 3090, "tags": ["code-coverage", "coverage-reports", "dotnet", "reporting", "coverlet", "cobertura", "jacoco", "linux", "macos"], "topics": ["code-coverage", "testing", "tdd-utilities", "reporting", "dotnet-core"], "urls": [], "use_cases": ["generate html code coverage report from coverlet output", "merge multiple coverage files into one report", "convert cobertura xml to readable report in ci pipeline", "visualize which lines of code are covered by tests", "publish code coverage report in azure devops or github actions", "convert jacoco or lcov coverage data to html"], "what_it_is": "ReportGenerator is a command-line tool that converts code coverage reports from tools like coverlet, OpenCover, dotCover, Cobertura, JaCoCo, and lcov into human-readable reports in various formats. It supports merging multiple coverage files and visualizing which lines of source code were covered.", "when_to_avoid": ["you need a coverage collection tool rather than a report generator", "your project is not .NET-based and you only need simple coverage summaries", "you want live in-editor coverage highlighting"], "when_to_choose": ["you need readable coverage reports from .NET test runs", "you want to merge coverage files from multiple test projects", "you need coverage reporting in a CI/CD pipeline", "you work with multiple coverage formats (Cobertura, JaCoCo, OpenCover, etc.)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/reportgenerator", "repo": "danielpalme/ReportGenerator", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.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:42.335578+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.335578+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:46:28.719934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57c7a40a26050e22ed37c1c49d13cc227f3efed70c06ee1554dd20eb7d29d387", "fetched_at": "2026-08-28T04:07:42.335578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpalme/ReportGenerator"}, {"content_hash": "b6c5e33b6a9b7e223776a831d85bde9fa545961e047da3271ae586bbd18dfa9e", "fetched_at": "2026-08-29T09:42:36.246777+00:00", "kind": "homepage", "missing": false, "url": "https://reportgenerator.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4229, "days_push": 21, "days_rel": 37, "gap_med": 11, "n_releases_24m": 34}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}