Codecov uses a Yaml-style configuration methodology.
There are two primary locations for the Codecov Yaml: the Team Yaml and the Repository Yaml. Each of them play an important role in how to configure Codecov.
Looking for all possible YAML configurations?
See the full codecov.yml Reference page.
The default configuration for all projects in Codecov is demonstrated below. You may override any of these configurations in your own Team/Repository Yaml.
codecov require_ci_to_passyes coverage precision2 rounddown range"70...100" parsers gcov branch_detection conditionalyes loopyes methodno macrono comment layout"reach,diff,flags,tree" behaviordefault require_changesno
Codecov provides a user interface to adjust a "team yaml", which overrides the default settings in Codecov. It is applied to all repositories in the team. Only team administrators can adjust the team yaml in Codecov. All changes are stored in history.
The team yaml (seen in the black box above) can be found in your account center
Each repository may have their own unique Codecov Yaml. The contents of the Repository Yaml are stored in a file, checked into
codecov.yml in the project root. If placed elsewhere you need to pass
-y <conf file> to the bash uploader.
All configurations in the Repository Yaml will override the Team Yaml. The Team Yaml is not replaced, but updated with the Repository Yaml.
# Team Yaml coverage rounddown precision5 # Repository Yaml coverage roundup range0..10 # Used in Codecov after updating coverage roundup range0..10 precision5
Looking to pass or fail a pull request / merge request based on coverage?
Please see our "Commit Status" feature for passing or failing a pull request based on code coverage thresholds
Validate your repository yaml by posting the content to Codecov for analysis.
curl --data-binary @codecov.yml https://codecov.io/validate
# PowerShell Sample Invoke-RestMethod -Uri https://codecov.io/validate -Body (Get-Content -Raw -LiteralPath .\codecov.yml) -Method post
Codecov will use the default branch for your repository as the "master" copy of the repositories Codecov Yaml. The default branch, if not otherwise stated, is the
master branch. You can change the Codecov default branch in your Yaml.
The default branch is used to identify:
- Which branch to cache the repository yaml for UI changes.
- Which branch is the first branch on the repository dashboard in Codecov.
Codecov will always use the current yaml on the branch being tested by default. If you would like to restrict changes to the yaml, and always use the yaml on a specific branch, you may declare the branch as shown below.
codecov: strict_yaml_branch: master # only use the latest copy on master branch
Codecov will reject reports that are over 12 hours old according to the timestamp in the report. This is to prevent reports that may have been accidently checked into
To disable this functionality please add the following to your
No. Starting the file with a period can cause issues detecting and reading it. The file must be placed the root of your repository to be detected. If you want to place it elsewhere, you must pass
-y <conf file> to the bash uploader.
The Codecov Yaml file is the single-point of configuration, providing the developers with a transparent and version controlled file to adjust all Codecov settings.
No. Review our default yaml, which all projects use. However, if you need to customize your project in Codecov, or add new notifications, then the yaml is required.
Head over to your repository settings page; click the Yaml tab. You will find the Create new secret string section in the UI. Information on how to create and use these strings is found in the app.
There are several reasons why the bot specified does not match the one in use:
The YAML in your repo is invalid. If you included the bot username in a repository-level YAML, please follow the steps here to determine if this repository-level YAML is valid.
You might also want to consider setting a bot in the organization-level YAML so it's easier to see what’s going wrong.
The bot is not part of the organization. For a team bot to work, it must be part of the organization your repositories live in.
The bot was not granted access to the repository you have. To resolve, simply login to Codecov as the bot.
The bot's access token has expired. To resolve, log into Codecov again as the bot and grant permission.
There are three possible reasons why the YAML you see in the Current repository yaml section of the
/settings/yaml page does not match the one you see in your repo:
The YAML in your repo is invalid. When the repoistory-level YAML is invalid, we keep using the last valid YAML provided. To determine whether your YAML is valid, please follow the steps here.
The repository-level YAML is not in what Codecov considers the default branch. If the YAML is in a feature branch, you should be able to see it in Current repository yaml section of the
/settings/yamlpage after merging the feature branch into the default branch. You can identify the default branch in the Default Branch section of the
Codecov was unable to fetch the new YAML from the repo. This usually happens when the bot user you use (more info) or the provider integration you installed does not have access to the repository in your provider (i.e. GitHub, GitLab, etc). It's also possible you unintentionally specified the wrong bot user.
Updated 15 days ago