{"id":46293331,"url":"https://github.com/igorbayerl/nanovision","last_synced_at":"2026-03-04T09:02:26.875Z","repository":{"id":305231180,"uuid":"1022325935","full_name":"IgorBayerl/nanovision","owner":"IgorBayerl","description":"Cli tool to generate coverage reports in a human readable way","archived":false,"fork":false,"pushed_at":"2026-02-28T22:22:00.000Z","size":10159,"stargazers_count":7,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-28T23:42:22.598Z","etag":null,"topics":["code-quality","coverage-report","go","gocover","golang","report-generator","reporting","test-automation","testcoverage"],"latest_commit_sha":null,"homepage":"https://igorbayerl.github.io/nanovision/docs/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IgorBayerl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-18T21:11:54.000Z","updated_at":"2026-02-28T22:22:03.000Z","dependencies_parsed_at":"2025-08-02T19:14:45.438Z","dependency_job_id":"5ac2eec9-fa6f-431c-a877-e9564d33b116","html_url":"https://github.com/IgorBayerl/nanovision","commit_stats":null,"previous_names":["igorbayerl/adlercov","igorbayerl/nanovision"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/IgorBayerl/nanovision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBayerl%2Fnanovision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBayerl%2Fnanovision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBayerl%2Fnanovision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBayerl%2Fnanovision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgorBayerl","download_url":"https://codeload.github.com/IgorBayerl/nanovision/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBayerl%2Fnanovision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30076935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-quality","coverage-report","go","gocover","golang","report-generator","reporting","test-automation","testcoverage"],"created_at":"2026-03-04T09:02:25.694Z","updated_at":"2026-03-04T09:02:26.862Z","avatar_url":"https://github.com/IgorBayerl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\r\n\r\n![alt text](docs/public/nanovision_input_output.png)\r\n\u003cbr/\u003e\r\nnanovision\r\n\u003c/h1\u003e\r\n\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n    \r\n\u003cb\u003eThe code coverage visualization tool that understands your code\u003c/b\u003e\r\n  \r\nHere is an [example report](https://igorbayerl.github.io/nanovision/reports/), its a self coverage report of the **nanovision** project.\r\n\r\nFor more details check the [docs](https://igorbayerl.github.io/nanovision/docs/)\r\n\r\n[![Build Status](https://github.com/IgorBayerl/nanovision/actions/workflows/pages.yml/badge.svg)](https://github.com/IgorBayerl/nanovision/actions/workflows/pages.yml)\r\n[![Go Report Card](https://goreportcard.com/badge/github.com/IgorBayerl/nanovision)](https://goreportcard.com/report/github.com/IgorBayerl/nanovision)\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/IgorBayerl/nanovision/total?link=https%3A%2F%2Fgithub.com%2FIgorBayerl%2Fnanovision%2Freleases%2Flatest)\r\n\r\n\r\n\r\n\u003c/div\u003e\r\n\r\n---\r\n\r\nnanovision converts coverage reports (Cobertura, GoCover, GCov) into human-readable visualizations.\r\n\r\n\r\n### [View Example Report](https://igorbayerl.github.io/nanovision/reports/) \u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp; [Read the Docs](https://igorbayerl.github.io/nanovision/docs/)\r\n\r\n\r\n---\r\n\r\n![nanovision screenshot](docs/public/nanovision_summary_screen.png)\r\n\r\n## Why nanovision?\r\n\r\nWhile many CI tools give you a simple percentage, **nanovision** helps you understand *what* is covered and *why* it matters.\r\n\r\n*   **High Performance:** Written in Go. Fast parsing, low memory footprint.\r\n*   **Report Merging:** Combine Unit, Integration reports into a single unified view.\r\n*   **Patch Coverage:** Analyze coverage specifically on **new code** (using diffs) to stop technical debt before it merges.\r\n*   **Deep Analysis:** Calculates cyclomatic complexity and method/functions level metrics.\r\n*   **Modern UI:** Generates a static, html pages that are easy to host anywhere.\r\n\r\n## Supported Formats\r\n\r\n| Input Formats | Output Formats |\r\n|:--------------|:---------------|\r\n| Cobertura     | HTML           |\r\n| Go Cover      | Text Summary   |\r\n| GCov          | LCOV           |\r\n|               | Raw JSON       |\r\n\r\n## Installation\r\n\r\n**Windows**\r\n```ps1\r\nwinget install nanovision\r\n```\r\n\r\n**Linux**\r\n```bash\r\ncurl -sL https://raw.githubusercontent.com/IgorBayerl/nanovision/main/scripts/install.sh | bash\r\n```\r\n\r\n### Or downdload From Releases\r\nDownload the binaries for Windows or Linux from the **[Releases Page](https://github.com/IgorBayerl/nanovision/releases)**.\r\n\r\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/IgorBayerl/nanovision/total?link=https%3A%2F%2Fgithub.com%2FIgorBayerl%2Fnanovision%2Freleases%2Flatest)\r\n\r\n\r\n## Quick Start\r\n\r\n### 0. Check nanovision instalation \r\n```bash\r\nnanovision -version\r\n```\r\n\r\n```bash\r\nnanovision -help\r\n```\r\n\r\n### 1. Generate a basic HTML report\r\n```bash\r\nnanovision -report=\"coverage.out\" -sourcedirs=\".\"\r\n```\r\n\r\n### 2. Merge multiple reports\r\nCombine coverage from different languages or test suites:\r\n\r\n```bash\r\nnanovision -report=\"cobertura.xml;gocover.out\" -sourcedirs=\"src/csharp;src/go\"\r\n```\r\n\r\n### 3. Patch Coverage (Diff Analysis)\r\nFocus only on the lines changed in your branch (great for PR checks):\r\n\r\n```bash\r\n# 1. Generate a diff file\r\ngit diff main \u003e changes.diff\r\n\r\n# 2. Run nanovision with the diff flag\r\nnanovision -report=\"coverage.out\" -sourcedirs=\".\" -diff=\"changes.diff\"\r\n```\r\n\r\n## Configuration\r\n\r\nYou can run nanovision entirely via CLI flags, or use a `nanovision.yaml` file for complex setups (like file filtering, risk thresholds, and excluded paths).\r\n\r\nSee the **[Configuration Documentation](https://igorbayerl.github.io/nanovision/docs/configs/)** for details.\r\n\r\n## Contributing\r\n\r\nContributions are welcome! \r\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for details on setting up the dev environment (Devcontainer included).\r\n\r\n## License\r\n\r\nLicensed under the [Apache 2.0 License](LICENSE).\r\n\r\n## Credits\r\n\r\n*   Inspired by the excellent [ReportGenerator](https://github.com/danielpalme/ReportGenerator) by Daniel Palme.\r\n\r\n\r\n## Star History\r\n\r\n\u003ca href=\"https://www.star-history.com/#IgorBayerl/nanovision\u0026type=date\u0026legend=top-left\"\u003e\r\n \u003cpicture\u003e\r\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=IgorBayerl/nanovision\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\r\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=IgorBayerl/nanovision\u0026type=date\u0026legend=top-left\" /\u003e\r\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=IgorBayerl/nanovision\u0026type=date\u0026legend=top-left\" /\u003e\r\n \u003c/picture\u003e\r\n\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorbayerl%2Fnanovision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorbayerl%2Fnanovision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorbayerl%2Fnanovision/lists"}