Code coverage done right.®

Welcome to Codecov Documentation. You'll find comprehensive guides and documentation to help you start working with Codecov as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started

Quick Start

A quick start guide and collection of references for those that are brand new to codecov.

We've made getting started with Codecov as easy as possible. The rest of this page will outline important first steps to getting your first repository up and running on codecov.


Trying to get started with Codecov's self-hosted offering?

Many of the instructions below can be used with our Self-Hosted offering with minimal changes.

If you're attempting to setup an on-premises install of Codecov Self-Hosted, be sure to read our Self-Hosted Install Guide

Ingredients List

Here are the things you'll need or want to have in place before using Codecov:

  1. An account on GitHub, GitLab or Bitbucket. Codecov relies on Git-based codehosts to run.

  2. Code coverage report(s) being generated by your test suite in the applicable programming language. Codecov ingests these reports to provide our product. The centrally supported code coverage report format is a .xml format.

  3. [Really nice to have] A continuous integration provider. This will automatically run tests, generate coverage and upload that coverage to Codecov for every commit.

Getting Started

Basic Usage

  1. Sign up on and link either your GitHub, GitLab, or Bitbucket account.

  2. Once linked, Codecov will automatically sync all the repositories to which you have access.

  3. You can click on an organization from your dashboard to access its repositories, or navigate directly to a specific repository using:<repo-provider>/<account-name>/<repo-name>. Example:

A repository that has no coverage reports uploaded to codecov. Note that the repository upload token is displayed here.

  1. Run your normal test suite to generate code coverage reports in .xml format, likely through a CI build process.

  2. Use the Codecov bash uploader and a repository upload token, to upload your coverage report(s) to Codecov.

  3. Navigate back to the repository on Codecov, and you should see coverage information.

  4. If you are using GitHub, we recommend installing our GitHub App Integration. If not, add a Team Bot so codecov can push notifications and properly interact with repository providers.


Don't Want to Use The Bash Uploader Directly?

Codecov has a number of framework/language specific implementations for uploading coverage reports. You can access many of these from our list of Supported Languages

Advanced Usage

  1. Check out our recipe list for common configuration questions.

  2. Get codecov comments on your Pull Requests: (GitLab/Bitbucket) use a Team Bot, (GitHub) use the codecov GitHub integration.

  3. Enforce relative or absolute targets and thresholds during your CI build using the Codecov YAML

  4. Use flags to categorize reports in a single repository. This is great for monorepos or projects that include different types of test coverage (e.g., unit, end to end, integration).

  5. Use codecov with the Sourcegraph Browser Extension. Note that on-premises versions of repository providers (e.g. GitHub Enterprise) are currently not supported with the Codecov Sourcegraph Browser Extension.

Common Questions

What languages does Codecov support?
See Supported Languages

Will Codecov work with my CI provider?
See the List of CI Providers that work with Codecov out of the box, but all CI providers are able to be detected.

Additionally, you can read more about how Codecov fits in with your CI provider in the CI Provider Relationship

Will Codecov work with my repository provider?
Codecov works with Bitbucket, GitLab, and GitHub; and supports each provider's on-premises offering.

Updated about a month ago

What's Next

Consult our FAQ for even more helpful information

Frequently Asked Questions

Quick Start

A quick start guide and collection of references for those that are brand new to codecov.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.