Code Coverage
Upload test coverage from GitHub Actions and track it in Aikido.
Code Coverage shows how much of your code your tests actually exercise. Run your test suite in CI, upload the report, and review coverage per repository, file, and line in Aikido.
How it works
Your CI job runs tests with coverage enabled and writes one or more coverage reports.
The Aikido Code Coverage GitHub Action uploads the report to Aikido.
Aikido stores the report against the repository, commit SHA, and branch.
The Code Coverage tab shows the latest upload for each repository.
Use cases
See which repositories are under-tested: compare overall coverage across the repos connected to Aikido.
Find gaps in a codebase: open a repository and browse uncovered files in the code tree or file list.
Inspect a file before you change it: open line-level coverage against the source so you know what tests already cover.
Track whether coverage is improving: use coverage over time as you add tests or clean up dead code.
Pair coverage with quality work: when a repository scan or PR check flags a file, check whether that file is tested.
Prerequisites
Before you start, make sure:
You're on a Basic, Pro, Advanced, or Enterprise plan. Code Coverage isn't available on the Developer plan.
The repository is connected to Aikido.
Your tests produce a coverage report. Aikido currently accepts LCOV (
lcov.info). Jest and pytest-cov can write this natively. Other runners work if they can export LCOV.
Set up the GitHub Action
Use the Aikido Code Coverage GitHub Action. It authenticates with GitHub OIDC, so no API token or repository secret is required.
After your tests write a coverage report, add a step like this:
The job that runs the action must grant id-token: write.
For the full workflow, multiple reports, monorepos, and all inputs, follow the GitHub Action README.
View coverage in Aikido
After the next successful upload:
Search the repository list. Each row shows overall coverage and when it was last updated.
Open a repository to see:
Coverage summary: covered, partial, and uncovered line counts
Coverage over time: how the percentage changes across uploads
Files: browse as a Code Tree or a flat File List
Open a file to inspect line-level coverage against the source.
Source preview depends on Aikido having imported the file. If the source isn't available yet, coverage percentages still show in the file list.

Troubleshooting
Nothing appears in Aikido: confirm the repository is connected to Aikido, the coverage report contains at least one parseable source file, and the upload step ran.
Coverage looks incomplete: if you shard tests or use a matrix, merge every report into one upload per commit. See the GitHub Action README.
The report is rejected as too large: Aikido accepts coverage payloads up to 10 MB. Narrow the coverage output or exclude generated files before upload.
The action fails: check the GitHub Action README for required permissions and inputs.
Need help?
Open the Intercom chat in the bottom right corner. Our team is here to help.
Last updated
Was this helpful?