CINXE.COM
Uploading Reports to Codecov using the Codecov CLI
<!DOCTYPE html><html lang="en" style="" data-color-mode="system" class=" useReactApp "><head><meta charset="utf-8"><meta name="readme-deploy" content="5.314.0"><meta name="readme-subdomain" content="codecov"><meta name="readme-version" content="2023"><title>Uploading Reports to Codecov using the Codecov CLI</title><meta name="description" content="Introduction Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. ℹ️ Update on the Bash and Node Uploader: With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we'..."><meta property="og:title" content="Uploading Reports to Codecov using the Codecov CLI"><meta property="og:description" content="Introduction Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. ℹ️ Update on the Bash and Node Uploader: With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we'..."><meta property="og:site_name" content="Codecov"><meta name="twitter:title" content="Uploading Reports to Codecov using the Codecov CLI"><meta name="twitter:description" content="Introduction Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. ℹ️ Update on the Bash and Node Uploader: With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we'..."><meta name="twitter:card" content="summary_large_image"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:image" content="https://files.readme.io/5affb88-codecov.svg"><meta name="twitter:image" content="https://files.readme.io/5affb88-codecov.svg"><link id="favicon" rel="shortcut icon" href="https://files.readme.io/f743cbc-small-Codecov_Mark_Circle_Pink.png" type="image/png"><link rel="canonical" href="https://docs.codecov.com/docs/codecov-uploader"><script src="https://cdn.readme.io/public/js/cash-dom.min.js?1743031252170"></script><link data-chunk="New" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/New.b2c21b39a87b5c42c152.css"> <link data-chunk="routes-Tutorials" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.7e7736cc7c5b0affc361.css"> <link data-chunk="routes-Changelog" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Changelog.28957affcff81e852361.css"> <link data-chunk="Page" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Page.b2c21b39a87b5c42c152.css"> <link data-chunk="CustomPage" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/CustomPage.38a39d6ce8b0e2afad5a.css"> <link data-chunk="Editor" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Editor.23606d783f007047768a.css"> <link data-chunk="routes-Landing" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Landing.332d7eed7b2d976c458e.css"> <link data-chunk="routes-Reference" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Reference.883d037c9b5898d42a5d.css"> <link data-chunk="routes-Doc" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Doc.0ab6d6e327e2be33020a.css"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.121e43a311e7e40b8656.css"> <link data-chunk="List" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/List.0b0b64406047e2a3670a.css"> <link data-chunk="routes-Discuss" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Discuss.b6e3c66bfa4e65097f5f.css"> <link data-chunk="Footer" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Footer.7ca87f1efe735da787ba.css"> <link data-chunk="routes-PageNotFound" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.d8afd1171cf7a455eed7.css"> <link data-chunk="Header" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Header.4c8c34bca506869e518a.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.99a5d42d4a6e4f0fafbc.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/7188.75e3fc491ee8103c63a3.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/2395.593cd7b6ba0bdb6787a8.css"> <link data-chunk="main" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/main.4c43266695a6f2b7b2bf.css"> <link data-chunk="main" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/ui-styles.fabafc9dbb50aa8c5ad2.css"> <link data-chunk="main" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/main.8401cd74fcdd93642c6b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6601.cef2fa12a9b5e2b9df03.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/1802.00a1e88cc0d9da2aae1b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6563.fbd3d15eee3b5e94f665.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/9772.2b0a744b76cb77e0dced.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4904.1067704c85da57778e22.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7449.dae0332305a8704415a6.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7372.fbd27ab77e6e47de9931.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2249.cb1f4fb7d2cce2c5e425.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5382.f3d48dea01a7ee0548c9.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/734.2949e3d7010fa5c21ffd.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/954.53ce7f86793664155f78.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6903.75b9333e2c99d6924d0e.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2395.0e49c51ab8d22525f6ff.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8161.a15ebcbf0b5b4748c0fd.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/1008.828e1c3ad92702b30f8b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7188.006f6f7e3184fb873f71.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5753.19245c7129f056485c33.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.80f0348ff5861a413a46.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3901.9a23139e8c32bd6a1186.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7783.4d5a6e419a35233ebd3c.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Header.e076d4e6ea766318a213.js"> <link data-chunk="routes-PageNotFound" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.7f382f4941474998a761.js"> <link data-chunk="Footer" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Footer.f3a023593089686064a9.js"> <link data-chunk="core-icons-search-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-search-svg.ad9cac962958d30983a7.js"> <link data-chunk="core-icons-custom-pages-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-custom-pages-svg.444e514638d9afbec182.js"> <link data-chunk="routes-Discuss" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Discuss.9ac9478f3014cd9a6ef2.js"> <link data-chunk="List" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2637.910d32e664cf986b636e.js"> <link data-chunk="List" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4674.b77d8e6ddbdaef99bf47.js"> <link data-chunk="List" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/List.ff2cf58cdb1ec8d5703f.js"> <link data-chunk="core-icons-chevron-down-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-chevron-down-svg.e20b84e9871bd73d1b8c.js"> <link data-chunk="core-icons-chevron-up-down-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-chevron-up-down-svg.6aae957df71e6f4c5e24.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7717.c3f46aef4dac129abcfb.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4287.916cdd386055d2c5d238.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5359.fb0c48929b1827a8a2b2.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5948.a51402657e2eb40ab43b.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4201.ae4918ddf0595a4bfca6.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8230.69318b242a05e8e74cd8.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.f7a42c9e7ca76978c49b.js"> <link data-chunk="RMDX" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/RMDX.6966846032c03969e44f.js"> <link data-chunk="core-icons-arrow-right-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-arrow-right-svg.eadb74658f93b4e7d75f.js"> <link data-chunk="routes-Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Doc.a69d1038565eec3baddc.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Reference.52b5b8c183631200e8bc.js"> <link data-chunk="core-icons-more-vertical-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-more-vertical-svg.4822b3f831e11095980d.js"> <link data-chunk="core-icons-lock-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-lock-svg.70942d3ee6bad6267696.js"> <link data-chunk="routes-Landing" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6591.ebe74884cadb175806e0.js"> <link data-chunk="routes-Landing" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Landing.55eccb79070682a90c02.js"> <link data-chunk="Editor" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Editor.778b5192afd13371d8ec.js"> <link data-chunk="core-icons-x-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-x-circle-svg.abc0e0ea5b7f9dff667c.js"> <link data-chunk="core-icons-suggested-edits-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-suggested-edits-svg.8d2d8ac2fd22ded9238d.js"> <link data-chunk="CustomPage" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3457.54b5f96a07aafc769550.js"> <link data-chunk="CustomPage" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2859.dc9d7bf83dcb38e2167f.js"> <link data-chunk="Page" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Page.2c323cd107e7e82fe5ce.js"> <link data-chunk="core-icons-alert-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-alert-circle-svg.4cee8264c97045599b56.js"> <link data-chunk="core-icons-webhook-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-webhook-svg.fe540ea1c09e1c0e0247.js"> <link data-chunk="core-icons-star-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-star-svg.b834e1612cb2af1e174e.js"> <link data-chunk="core-icons-trending-up-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-trending-up-svg.0dd920b0698e57f75afa.js"> <link data-chunk="core-icons-callout-info-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-callout-info-svg.79b14e8568c9cecbc827.js"> <link data-chunk="routes-Changelog" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Changelog.c2ef3ef5eb8f547c5186.js"> <link data-chunk="Post" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Post.71d2a77f709abc802115.js"> <link data-chunk="core-icons-arrow-up-right-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-arrow-up-right-svg.8ec73f7e322d79a2695b.js"> <link data-chunk="routes-Tutorials" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.6686c9c18f1ee096cdc9.js"> <link data-chunk="core-icons-message-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-message-circle-svg.1e24c2d2eb4f9a6ede5d.js"> <link data-chunk="core-icons-eye-off-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-eye-off-svg.b2b8b241b4b324dfd9c1.js"> <link data-chunk="New" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/New.6ccd6d98f9612d613bd0.js"> <link data-chunk="core-icons-key-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-key-svg.71e09670b926900508b8.js"> <link data-chunk="core-icons-save-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-save-svg.2d085f1d8792d8787453.js"> <link data-chunk="core-icons-book-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-book-svg.556c5a2abddd44b2284c.js"> <link data-chunk="core-icons-inbox-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-inbox-svg.01c2ecb759e417a98bb8.js"> <link data-chunk="core-icons-unlock-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-unlock-svg.d27591cc9e0be731e26d.js"> <link data-chunk="core-icons-alert-triangle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-alert-triangle-svg.aa5960e73a548f38e8bd.js"> <link data-chunk="core-icons-gauge-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-gauge-circle-svg.fff25782546fef314a09.js"> <link data-chunk="main" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/ui-styles.fabafc9dbb50aa8c5ad2.css"> <link data-chunk="main" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/main.4c43266695a6f2b7b2bf.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/2395.593cd7b6ba0bdb6787a8.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/7188.75e3fc491ee8103c63a3.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.99a5d42d4a6e4f0fafbc.css"> <link data-chunk="Header" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Header.4c8c34bca506869e518a.css"> <link data-chunk="routes-PageNotFound" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.d8afd1171cf7a455eed7.css"> <link data-chunk="Footer" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Footer.7ca87f1efe735da787ba.css"> <link data-chunk="routes-Discuss" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Discuss.b6e3c66bfa4e65097f5f.css"> <link data-chunk="List" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/List.0b0b64406047e2a3670a.css"> <link data-chunk="routes-SuperHub-Routes" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.121e43a311e7e40b8656.css"> <link data-chunk="routes-Doc" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Doc.0ab6d6e327e2be33020a.css"> <link data-chunk="routes-Reference" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Reference.883d037c9b5898d42a5d.css"> <link data-chunk="routes-Landing" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Landing.332d7eed7b2d976c458e.css"> <link data-chunk="Editor" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Editor.23606d783f007047768a.css"> <link data-chunk="CustomPage" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/CustomPage.38a39d6ce8b0e2afad5a.css"> <link data-chunk="Page" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Page.b2c21b39a87b5c42c152.css"> <link data-chunk="routes-Changelog" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Changelog.28957affcff81e852361.css"> <link data-chunk="routes-Tutorials" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.7e7736cc7c5b0affc361.css"> <link data-chunk="New" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/New.b2c21b39a87b5c42c152.css"><!-- CUSTOM CSS--><style title="rm-custom-css">:root{--project-color-primary:#F01F7A;--project-color-inverse:#fff;--recipe-button-color:#5bb3f2;--recipe-button-color-hover:#1184d6;--recipe-button-color-active:#0d67a7;--recipe-button-color-focus:rgba(91, 179, 242, 0.25);--recipe-button-color-disabled:#ffffff}[id=enterprise] .ReadMeUI[is=AlgoliaSearch]{--project-color-primary:#F01F7A;--project-color-inverse:#fff}a{color:var(--color-link-primary,#5bb3f2)}a:hover{color:var(--color-link-primary-darken-5,#1184d6)}a.text-muted:hover{color:var(--color-link-primary,#5bb3f2)}.btn.btn-primary{background-color:#5bb3f2}.btn.btn-primary:hover{background-color:#1184d6}.theme-line #hub-landing-top h2{color:#5bb3f2}#hub-landing-top .btn:hover{color:#5bb3f2}.theme-line #hub-landing-top .btn:hover{color:#fff}.theme-solid header#hub-header #header-top{background-color:#f01f7a}.theme-solid.header-gradient header#hub-header #header-top{background:linear-gradient(to bottom,#f01f7a,#38591e)}.theme-solid.header-custom header#hub-header #header-top{background-image:url(undefined)}.theme-line header#hub-header #header-top{border-bottom-color:#f01f7a}.theme-line header#hub-header #header-top .btn{background-color:#f01f7a}header#hub-header #header-top #header-logo{width:40px;height:40px;margin-top:0;background-image:url(https://files.readme.io/5affb88-codecov.svg)}#hub-subheader-parent #hub-subheader .hub-subheader-breadcrumbs .dropdown-menu a:hover{background-color:#f01f7a}#subheader-links a.active{color:#f01f7a!important;box-shadow:inset 0 -2px 0 #f01f7a}#subheader-links a:hover{color:#f01f7a!important;box-shadow:inset 0 -2px 0 #f01f7a;opacity:.7}.discussion .submit-vote.submit-vote-parent.voted a.submit-vote-button{background-color:#5bb3f2}section#hub-discuss .discussion a .discuss-body h4{color:#5bb3f2}section#hub-discuss .discussion a:hover .discuss-body h4{color:#1184d6}#hub-subheader-parent #hub-subheader.sticky-header.sticky{border-bottom-color:#5bb3f2}#hub-subheader-parent #hub-subheader.sticky-header.sticky .search-box{border-bottom-color:#5bb3f2}#hub-search-results h3 em{color:#5bb3f2}.main_background,.tag-item{background:#5bb3f2!important}.main_background:hover{background:#1184d6!important}.main_color{color:#f01f7a!important}.border_bottom_main_color{border-bottom:2px solid #f01f7a}.main_color_hover:hover{color:#f01f7a!important}section#hub-discuss h1{color:#5bb3f2}#hub-reference .hub-api .api-definition .api-try-it-out.active{border-color:#5bb3f2;background-color:#5bb3f2}#hub-reference .hub-api .api-definition .api-try-it-out.active:hover{background-color:#1184d6;border-color:#1184d6}#hub-reference .hub-api .api-definition .api-try-it-out:hover{border-color:#5bb3f2;color:#5bb3f2}#hub-reference .hub-reference .logs .logs-empty .logs-login-button,#hub-reference .hub-reference .logs .logs-login .logs-login-button{background-color:var(--project-color-primary,#5bb3f2);border-color:var(--project-color-primary,#5bb3f2)}#hub-reference .hub-reference .logs .logs-empty .logs-login-button:hover,#hub-reference .hub-reference .logs .logs-login .logs-login-button:hover{background-color:#1184d6;border-color:#1184d6}#hub-reference .hub-reference .logs .logs-empty>svg>path,#hub-reference .hub-reference .logs .logs-login>svg>path{fill:#5bb3f2;fill:var(--project-color-primary,#5bb3f2)}#hub-reference .hub-reference .logs:last-child .logs-empty,#hub-reference .hub-reference .logs:last-child .logs-login{margin-bottom:35px}#hub-reference .hub-reference .hub-reference-section .hub-reference-left header .hub-reference-edit:hover{color:#5bb3f2}.main-color-accent{border-bottom:3px solid #f01f7a;padding-bottom:8px}/*! BEGIN HUB_CUSTOM_STYLES */.theme-solid header#hub-header #header-top{background-color:#0f1b29!important}.suggestEdits::before{content:"🤓"}.suggestEdits::after{content:"🤓"}.suggestEdits{display:flex;flex-direction:row;justify-content:center;font-size:16px!important}code{background:#eee;padding:2px 5px}pre>code{background:inherit;padding:0}div.PageThumbs-helpful{font-size:20px}.markdown-body.markdown-body.markdown-body strong{font-weight:700!important}/*! END HUB_CUSTOM_STYLES */</style><meta name="loadedProject" content="codecov"><script>var storedColorMode = `system` === 'system' ? window.localStorage.getItem('color-scheme') : `system` document.querySelector('[data-color-mode]').setAttribute('data-color-mode', storedColorMode)</script><script id="config" type="application/json" data-json="{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-26","fullstory":{"enabled":true,"orgId":"FSV9A"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.314.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true,"tracesSampleRate":0},"shMigration":{"promoVideo":"","forceWaitlist":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}}"></script></head><body class="body-none theme-line header-solid header-bg-size-tile-x header-bg-pos-tl header-overlay-circuits reference-layout-row lumosity-normal "><div id="ssr-top"></div><div id="ssr-main"><div class="App ThemeContext ThemeContext_dark ThemeContext_line" style="--color-primary:#F01F7A;--color-primary-inverse:#fff;--color-primary-alt:#38591e;--color-primary-darken-10:#ce0e62;--color-primary-darken-20:#9e0b4b;--color-primary-alpha-25:rgba(240, 31, 122, 0.25);--color-link-primary:#5bb3f2;--color-link-primary-darken-5:#43a8f0;--color-link-primary-darken-10:#2c9dee;--color-link-primary-darken-20:#1184d6;--color-link-primary-alpha-50:rgba(91, 179, 242, 0.5);--color-link-primary-alpha-25:rgba(91, 179, 242, 0.25);--color-link-background:rgba(91, 179, 242, 0.09);--color-link-text:#fff;--color-login-link:#018ef5;--color-login-link-text:#fff;--color-login-link-darken-10:#0171c2;--color-login-link-primary-alpha-50:rgba(1, 142, 245, 0.5)"><header class="Header3zzata9F_ZPQ rm-Header "><div class="rm-Header-top Header-topuTMpygDG4e1V"><div class="rm-Container rm-Container_flex"><div style="outline:none" tabindex="-1"><a href="#content" target="_self" class="Button Button_md rm-JumpTo Header-jumpTo3IWKQXmhSI5D Button_primary">Jump to Content</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU"><a class="rm-Logo Header-logo1Xy41PtkzbdG" href="/docs" target="_self"><img alt="Codecov" class="rm-Logo-img Header-logo-img3YvV4lcGKkeb" src="https://files.readme.io/5affb88-codecov.svg"/></a><a aria-current="page" class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text rm-Header-top-link_active Header-link2tXYTgXq85zW active" href="/docs" target="_self">Guides</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://docs.codecov.com/reference" target="_self" to="https://docs.codecov.com/reference">API</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="/changelog" target="_self">Changelog</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://codecovpro.zendesk.com/" target="_self" to="https://codecovpro.zendesk.com/">Support</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://status.codecov.com" target="_self" to="https://status.codecov.com">Status</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://about.codecov.io" target="_self" to="https://about.codecov.io">Codecov Home</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://about.codecov.io/codecov-free-trial/" target="_self" to="https://about.codecov.io/codecov-free-trial/">Try Codecov for Free</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU Header-left_mobile1RG-X93lx6PF"><div><button aria-label="Toggle navigation menu" class="icon-menu menu3d6DYNDa3tk5" type="button"></button><div class=""><div class="Flyout95xhYIIoTKtc undefined rm-Flyout" data-testid="flyout"><div class="MobileFlyout1hHJpUd-nYkd"><a aria-current="page" class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- active" href="/docs" target="_self"><i class="icon-guides NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">Guides</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/reference" target="_self"><i class="icon-references NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">API Endpoints</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/changelog" target="_self"><i class="icon-changelog NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">Changelog</span></a><select class="Select Select_md NavItem-item1gDDTqaXGhm1 NavItem-item_select3UEfLN-oSjxp NavItem-item_mobile1qG3gd-Mkck-"><option data-url="/v4.6/docs" value="4.6">v4.6</option><option data-url="/v5.0/docs" value="5.0">v5.0</option><option selected="" data-url="#" value="2023">v2023</option></select><hr class="MobileFlyout-divider10xf7R2X1MeW"/><a aria-current="page" class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74 active" href="/docs" target="_self">Guides</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://docs.codecov.com/reference" rel="noopener" target="_blank" to="https://docs.codecov.com/reference">API</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="/changelog" target="_self">Changelog</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://codecovpro.zendesk.com/" rel="noopener" target="_blank" to="https://codecovpro.zendesk.com/">Support</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://status.codecov.com" rel="noopener" target="_blank" to="https://status.codecov.com">Status</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://about.codecov.io" rel="noopener" target="_blank" to="https://about.codecov.io">Codecov Home</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://about.codecov.io/codecov-free-trial/" rel="noopener" target="_blank" to="https://about.codecov.io/codecov-free-trial/">Try Codecov for Free</a><a class="MobileFlyout-logo3Lq1eTlk1K76 Header-logo1Xy41PtkzbdG rm-Logo" href="/docs" target="_self"><img alt="Codecov" class="Header-logo-img3YvV4lcGKkeb rm-Logo-img" src="https://files.readme.io/5affb88-codecov.svg"/></a></div></div></div></div><div class="Header-left-nav2xWPWMNHOGf_"><i class="icon-guides Header-left-nav-icon10glJKFwewOv"></i>Guides</div></div><div class="rm-Header-right Header-right21PC2XTT6aMg"><span class="Header-right_desktop14ja01RUQ7HE"></span><div class="ThemeToggle-wrapper1M_iJESXCpGR Dropdown Dropdown_closed"><button aria-label="Toggle to light mode" id="ThemeToggle-button-static-id-placeholder" aria-haspopup="dialog" class="Button Button_slate_text Button_sm rm-ThemeToggle ThemeToggle2tVPbUyQbWDo Dropdown-toggle Button_primary" type="button"><svg aria-labelledby="ThemeToggle-button-static-id-placeholder" class="Icon ThemeToggle-Icon3g9ZT7pRMwCv " role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Moon (Dark Mode)</title><path d="M19 14.79C18.8427 16.4922 18.2039 18.1144 17.1582 19.4668C16.1126 20.8192 14.7035 21.8458 13.0957 22.4265C11.4879 23.0073 9.74798 23.1181 8.0795 22.7461C6.41102 22.3741 4.88299 21.5345 3.67423 20.3258C2.46546 19.117 1.62594 17.589 1.25391 15.9205C0.881876 14.252 0.992717 12.5121 1.57346 10.9043C2.1542 9.29651 3.18083 7.88737 4.53321 6.84175C5.8856 5.79614 7.5078 5.15731 9.21 5C8.21341 6.34827 7.73385 8.00945 7.85853 9.68141C7.98322 11.3534 8.70386 12.9251 9.8894 14.1106C11.0749 15.2961 12.6466 16.0168 14.3186 16.1415C15.9906 16.2662 17.6517 15.7866 19 14.79Z"></path><path class="ThemeToggle-Icon-star3wweJby1gM4w" d="M18.3707 1C18.3707 3.22825 16.2282 5.37069 14 5.37069C16.2282 5.37069 18.3707 7.51313 18.3707 9.74138C18.3707 7.51313 20.5132 5.37069 22.7414 5.37069C20.5132 5.37069 18.3707 3.22825 18.3707 1Z"></path></svg><svg aria-labelledby="ThemeToggle-button-static-id-placeholder" class="Icon ThemeToggle-Icon3g9ZT7pRMwCv ThemeToggle-Icon_active18I2-19CkbgD" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Sun (Light Mode)</title><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M12 1V3"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M18.36 5.64L19.78 4.22"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M21 12H23"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M18.36 18.36L19.78 19.78"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M12 21V23"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M4.22 19.78L5.64 18.36"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M1 12H3"></path><path class="ThemeToggle-Icon-ray2ab8_BwBkrTx" d="M4.22 4.22L5.64 5.64"></path><path d="M12 17C14.7614 17 17 14.7614 17 12C17 9.23858 14.7614 7 12 7C9.23858 7 7 9.23858 7 12C7 14.7614 9.23858 17 12 17Z"></path></svg></button></div><div class="Header-searchtb6Foi0-D9Vx"><button aria-label="Search ⌘k" class="rm-SearchToggle" data-symbol="⌘"><div class="rm-SearchToggle-icon icon-search1"></div></button></div></div></div></div><div class="Header-bottom2eLKOFXMEmh5 rm-Header-bottom "><div class="rm-Container rm-Container_flex"><nav aria-label="Primary navigation" class="Header-leftADQdGVqx1wqU" role="navigation"><div class="rm-VersionDropdown Dropdown Dropdown_closed"><button aria-haspopup="dialog" class="Button Button_slate_text Button_md rm-Header-bottom-link Dropdown-toggle Button_primary" type="button"><span class="Truncate1OzxBYrNNfH3" style="--Truncate-max-width:150px">v2023</span><i class="icon icon-chevron-down"></i></button></div><div class="Dropdown Dropdown_closed"><div class="Dropdown-toggle" aria-haspopup="dialog"><button class="rm-Header-link rm-Header-bottom-link undefined Button Button_slate_text Button_md" type="button"><span>Guides</span><i class="undefined icon-chevron-down"></i></button></div></div><span class="rm-Header-link rm-Header-bottom-link undefined NavItem_inactive1YE6SGanIJp5">Uploading Reports to Codecov using the Codecov CLI</span></nav><button align="center" justify="between" style="--flex-gap:var(--xs)" class="Button Button_sm Flex Flex_row MobileSubnav1DsTfasXloM2 Button_contrast Button_contrast_outline" type="button"><span class="Button-label">Uploading Reports to Codecov using the Codecov CLI</span><span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><svg fill="none" viewBox="0 0 24 24" class="Icon Icon3_D2ysxFZ_ll Icon-svg2Lm7f6G9Ly5a" data-name="chevron-up-down" role="img" style="--icon-color:inherit;--icon-size:inherit;--icon-stroke-width:2px"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m6 16 6 6 6-6M18 8l-6-6-6 6" class="icon-stroke-width"></path></svg></span></button><div class="rm-Header-search Header-searchtb6Foi0-D9Vx rm-Header-search_feather Header-search_featherYsmQBn55F3d9"><button aria-label="Search ⌘k" class="rm-SearchToggle" data-symbol="⌘"><div class="rm-SearchToggle-icon icon-search1"></div><div class="Header-search-placeholder3Vx4OmMPcjAi rm-SearchToggle-placeholder">Search</div><div class="rm-SearchToggle-shortcut"></div></button></div></div></div><div class="hub-search-results--reactApp " id="hub-search-results"><div class="hub-container"><div class="modal-backdrop show-modal rm-SearchModal" role="button" tabindex="0"></div></div></div></header><main class="rm-Guides"><div class="rm-Container rm-Container_flex"><nav aria-label="Secondary navigation" class="rm-Sidebar hub-sidebar reference-redesign Nav3C5f8FcjkaHj rm-Sidebar_guides" id="hub-sidebar" role="navigation"><div class="Sidebar1t2G1ZJq-vU1 rm-Sidebar hub-sidebar-content"><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Getting Started</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" data-active="" href="https://about.codecov.io/sign-up/"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sign up for Codecov</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/github-tutorial"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for GitHub Tutorial" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub Tutorial</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-0-setting-up-the-repository"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">0 - Setting up the demo repository</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-1-setting-and-getting-code-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">1 - Setting and getting code coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-2-getting-a-codecov-account-and-uploading-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">2 - Getting a Codecov account and uploading coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-3-customizing-codecov"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">3 - Customizing Codecov</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-4a-merging-reports"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4a - Merging reports</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-4b-getting-aggregate-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4b - Filtering Coverage by Directory</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-5a-writing-a-frontend"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">5a - Writing a frontend</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-5b-setting-coverage-standards-with-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">5b - Setting coverage standards with Flags</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/github-6-carryforward-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">6 - Test what you change with Carryforward Flags</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-tutorial"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for GitLab Tutorial" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitLab Tutorial</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-0-setting-up-the-demo-repository"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">0 - Setting up the demo repository</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-1-setting-and-getting-code-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">1 - Setting and getting code coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-2-getting-a-codecov-account-and-uploading-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">2 - Getting a Codecov account and uploading coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-3-customizing-codecov"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">3 - Customizing Codecov</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-4a-merging-reports"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4a - Merging reports</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-4b-setting-coverage-standards-with-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4b - Setting coverage standards with Flags</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/gitlab-5-test-what-you-change-with-carryforward-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">5 - Test what you change with Carryforward Flags</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-tutorial"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Bitbucket Tutorial" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Bitbucket Tutorial</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-0-setting-up-the-demo-repository"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">0 - Setting up the demo repository</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-1-setting-and-getting-code-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">1 - Setting and getting code coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-2-getting-a-codecov-account-and-uploading-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">2 - Getting a Codecov account and uploading coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-step-3-customizing-codecov"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">3 - Customizing Codecov</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-4a-merging-reports"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4a - Merging reports</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-4b-setting-coverage-standards-with-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">4b - Setting coverage standards with Flags</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/bitbucket-5-test-what-you-change-with-carryforward-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">5 - Test what you change with Carryforward Flags</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/common-recipe-list"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Common Configurations</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/about-code-coverage"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">About Code Coverage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/frequently-asked-questions"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Frequently Asked Questions</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/language-specific-guides"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Language Specific Guides" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Language Specific Guides</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/code-coverage-with-javascript"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Code coverage with JavaScript</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/code-coverage-with-python"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Code coverage with Python</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a aria-current="page" class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link active" target="_self" href="/docs/codecov-uploader"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Uploading Reports to Codecov using the Codecov CLI</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Concepts</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/ci-service-relationship"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CI Provider Relationship</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/team-bot"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Github App or Team Bot</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/merging-reports"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Merging Reports</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/coverage-percentages"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Coverage Percentages</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/comparing-commits"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Comparing Coverage Across Commits</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/merge-commits"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Merge Commits</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/fixing-reports"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Fixing Reports</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/unexpected-coverage-changes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Unexpected Coverage Changes</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/viewing-source-code"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Viewing Source Code</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/graphs"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Graphs</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/codecov-tokens"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov Tokens</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Features</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/status-badges"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Status Badges</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/components"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Components</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Flags</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/carryforward-flags"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Carryforward Flags</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/pull-request-comments"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Pull Request Comments" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Pull Request Comments</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/changing-your-pr-comment-format"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">PR comment for Git diff only ("Patch" coverage)</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/commit-status"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Status Checks" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Status Checks</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/removed-code-behavior"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Removed Code Behavior</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/github-checks"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub Checks</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/fixing-paths"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Path Fixing</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/path-regexp"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Path Regexp</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/ignoring-paths"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Ignoring Paths</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/notifications"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Notifications</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/organization-analytics"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Organization Analytics</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/sentry-and-codecov"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Sentry and Codecov" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sentry and Codecov</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/code-coverage-in-the-stack-trace"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Code Coverage in the Stack Trace</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/the-codecov-cli"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Codecov CLI" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov CLI</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/cli-options"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CLI Options</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/contributing-to-the-cli"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Contributing to the CLI</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/slack-integration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Slack Integration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/vscode-extension"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">VSCode Extension</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/the-codecov-browser-extension"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov Browser Extension</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/test-analytics"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Test Analytics</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/beta-codecov-ai"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">[Beta] Codecov AI</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Reference</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/supported-languages"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Supported Languages</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/supported-ci-providers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Supported CI Providers" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Supported CI Providers</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/detecting-ci-services"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Detecting Other CI Services</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/supported-report-formats"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Supported Coverage Report Formats</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/codecov-custom-coverage-format"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov Custom Coverage Format</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/testing-with-docker"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Testing with Docker</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/administration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Administration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/error-reference"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Error Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/adding-the-codecov-token"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Adding the Codecov token</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/codecov-yaml"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Codecov YAML" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov YAML</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/codecovyml-reference"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">codecov.yml Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/coverage-configuration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Coverage Configuration</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/about-the-codecov-bash-uploader"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for [Deprecating] Bash Uploader" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">[Deprecating] Bash Uploader</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/deprecated-uploader-migration-guide"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Deprecating (Bash) Uploader Migration Guide</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/github-oauth-application-authorization"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub Admin Authorization</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/securing-access-to-codecov-ui-with-okta"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Securing access to Codecov UI with Okta</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">JavaScript Bundle Analysis</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/javascript-bundle-analysis"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Overview - Bundle Analysis</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/bundle-names"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Bundle Names</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/supported-build-environments"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Supported Build Environments</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/environment-specific-requirements"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Environment Specific Requirements</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/bundle-analysis-faq"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">FAQ - Bundle Analysis</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/tokenless-bundle-analysis"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Tokenless - Bundle Analysis</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/github-oidc-bundle-analysis"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub OIDC - Bundle Analysis</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/astro-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Astro Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/nextjs-webpack-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">NextJS (Webpack) Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/nuxt-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Nuxt Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/remix-vite-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Remix (Vite) Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/rollup-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Rollup Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/sveltekit-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SvelteKit Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/solidstart-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SolidStart Quick Start</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/vite-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Vite Quick Start (React, Vue, Svelte, SolidJS, etc.)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/webpack-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Webpack 5 Quick Start (Angular, CRACO)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/bundle-analyzer-quick-start"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Bundle Analyzer Quick Start</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Codecov DEDICATED ENTERPRISE CLOUD</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/codecov-dedicated-enterprise-cloud-install-steps"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Dedicated Enterprise Cloud Guide</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/github-app-integration-for-codecov-dedicated-cloud"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for GitHub App Integration for Dedicated Cloud" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub App Integration for Dedicated Cloud</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/prefilled-github-app-creation"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Prefilled Github App Creation</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/manual-github-app-creation"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Manual GitHub App Creation</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/secure-credential-transmission"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Secure Credential Transmission</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/ip-acl-restrictions"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IP Access Control List Restrictions</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/peering"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Peering" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Peering</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/aws"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">AWS Peering</span></span></a></li></ul></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Codecov Self-Hosted</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/installing-codecov-self-hosted"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Codecov Self-Hosted Install Guide" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Codecov Self-Hosted Install Guide</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/configuration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Self-Hosted Configuration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/set-up-oauth-login"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Set Up Oauth Login (Self-Hosted)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/install-guide"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Other Install Notes and Updates</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/integrations-for-codecov-self-hosted"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Integrations for Codecov Self-Hosted" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Integrations for Codecov Self-Hosted</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/how-to-create-a-github-app-for-codecov-enterprise"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GitHub App Integration for Codecov Self-Hosted</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/frequently-asked-questions-1"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Frequently Asked Questions - Self-Hosted</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Site</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" data-active="" href="https://about.codecov.io/privacy/"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Privacy Policy</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" data-active="" href="https://about.codecov.io/security/"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Security Policy</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" data-active="" href="https://about.codecov.io/terms-and-conditions/"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Terms of Use</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li></ul></section></div></nav><article class="rm-Article " id="content"><header id="content-head"><div class="row clearfix"><div class="col-xs-9"><h1>Uploading Reports to Codecov using the Codecov CLI</h1></div><div class="col-xs-3"><a class="suggestEdits" rel="nofollow" href="/edit/codecov-uploader"><i aria-hidden="true" class="icon icon-edit"></i> Suggest Edits</a></div></div></header><div class="grid-container-fluid" id="content-container"><section class="content-body grid-75"><div dehydrated="<h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="introduction"></div><div class="heading-text"><div id="section-introduction" class="heading-anchor_backwardsCompatibility"></div>Introduction</div><a aria-label="Skip link to Introduction" class="heading-anchor-icon fa fa-anchor" href="#introduction"></a></h2> <p>Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. </p> <blockquote class="callout callout_info" theme="ℹ️"><h2 class="callout-heading"><span class="callout-icon">ℹ️</span><p>Update on the Bash and Node Uploader</p></h2><p>With the introduction of the CLI we&#x27;re upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we&#x27;re no longer adding more features to the Bash and Node uploaders moving forward. Any functional bugs on those would be fixed exclusively to the CLI moving forward.</p><p>We will still endeavour to patch critical security fixes to the Node Uploader, but we highly encourage people using the Bash and Node Uploader to plan on moving to use the Codecov CLI.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="using-the-cli"></div><div class="heading-text"><div id="section-using-the-cli" class="heading-anchor_backwardsCompatibility"></div>Using the CLI</div><a aria-label="Skip link to Using the CLI" class="heading-anchor-icon fa fa-anchor" href="#using-the-cli"></a></h2> <h3 class="heading heading-3 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="using-the-cli-to-upload-reports-with-codecovio-cloud"></div><div class="heading-text"><div id="section-using-the-cli-to-upload-reports-with-codecov-io-cloud" class="heading-anchor_backwardsCompatibility"></div>Using the CLI to upload reports with codecov.io (Cloud)</div><a aria-label="Skip link to Using the CLI to upload reports with codecov.io (Cloud)" class="heading-anchor-icon fa fa-anchor" href="#using-the-cli-to-upload-reports-with-codecovio-cloud"></a></h3> <p>The first step is to download the CLI. You can use our dedicated wrappers, or invoke things yourself in CI.</p> <blockquote class="callout callout_okay" theme="👍"><h2 class="callout-heading"><span class="callout-icon">👍</span><p>Dedicated wrappers for the Codecov CLI</p></h2><p>Avoid setup time and use a build pipeline-specific wrapper to the uploader to automatically ingest and run the CLI:</p><p><a href="https://github.com/marketplace/actions/codecov" target="" title="">Codecov&#x27;s Github Action</a><br/> <a href="https://circleci.com/developer/orbs/orb/codecov/codecov" target="" title="">Codecov&#x27;s CircleCI Orb</a><br/> <a href="https://devcenter.bitrise.io/en/testing/measuring-your-code-coverage-with-codecov.html#integrating-codecov-with-bitrise" target="" title="">Codecov&#x27;s Bitrise Step</a> </p><p>These wrappers all include integrity checking via SHASUM verification.</p></blockquote> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>It is Highly Recommended to Integrity Check the CLI</p></h2><p>While the snippets below can be used to download and use the CLI directly, it is highly recommended to perform signature and SHASUM verification to ensure integrity of the CLI before use. See <strong><a href="https://docs.codecov.com/docs/codecov-uploader#integrity-checking-the-codecov-cli" target="" title="">Integrity Checking the Uploader</a></strong> below for more information.</p></blockquote> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="download-using-pip"></div><div class="heading-text"><div id="section-download-using-pip" class="heading-anchor_backwardsCompatibility"></div>Download Using Pip</div><a aria-label="Skip link to Download Using Pip" class="heading-anchor-icon fa fa-anchor" href="#download-using-pip"></a></h4> <p>To use <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecov-cli</code> in your local machine, or your CI workflows, you need to install it:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">python</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-coffeescript theme-light" data-lang="coffeescript" name="python" tabindex="0">pip install codecov-cli </code></pre></div></div> <p>The above command will download the latest version of <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecov-cli</code>. If you wish to use a specific version, releases can be viewed <a href="https://pypi.org/project/codecov-cli/#history" target="" title="">here</a>. Note, the Codecov CLI expects to be run in the checked out repos, on a machine with <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">git</code> installed.</p> <p>Your default will need to be <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Python3</code> in order to make this work.</p> <p>Note: If you&#x27;re installing in a <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">pytest</code> environment, you may need to call <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">pytest rehash</code> before the CLI will work.</p> <blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>The version installed with pip has a different name</p></h2><p>Please note that the name of the CLI executable is <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecovcli</code> when it has been installed with pip</p></blockquote> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="download-as-a-binary"></div><div class="heading-text"><div id="section-download-as-a-binary" class="heading-anchor_backwardsCompatibility"></div>Download As a Binary</div><a aria-label="Skip link to Download As a Binary" class="heading-anchor-icon fa fa-anchor" href="#download-as-a-binary"></a></h4> <p>For Codecov Cloud users, the CLI can be invoked as follows: </p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux ARM64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/linux/codecov sudo chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/alpine/codecov sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/macos/codecov sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">#download Codecov CLI $ProgressPreference = &#x27;SilentlyContinue&#x27; Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe .\codecov.exe </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux ARM64" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/linux-arm64/codecov sudo chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov sudo chmod +x codecov </code></pre></div></div> <p>The above commands will download the latest version of the CLI. If you wish to use a specific version of the CLI, releases can be viewed per distribution here:<a href="https://cli.codecov.io/" target="" title=""> https://cli.codecov.io/</a> . Note, the Codecov CLI expects to be run in the checked out repos, on a machine with git installed.</p> <p>Pinning to a particular version requires replacing &quot;latest&quot; in the curl command with the specific version numbers, as follows:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/v0.4.4/linux/codecov sudo chmod +x codecov </code></pre></div></div> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="uploading-coverage-reports-to-codecov"></div><div class="heading-text"><div id="section-uploading-coverage-reports-to-codecov" class="heading-anchor_backwardsCompatibility"></div>Uploading coverage reports to Codecov</div><a aria-label="Skip link to Uploading coverage reports to Codecov" class="heading-anchor-icon fa fa-anchor" href="#uploading-coverage-reports-to-codecov"></a></h4> <p>Add the following snippet after your tests have run and a <a href="https://docs.codecov.com/docs/supported-report-formats" target="" title="">coverage report</a> has been generated.</p> <p>Here, we will upload the test report called <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">coverage-service.xml</code>, we are passing in the flag called &quot;service&quot; and a dynamic name to specify a specific test run (it will be useful to see in the Codecov UI). We are using some optional params like <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--verbose</code> and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--fail-on-error</code> and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--disable-search</code>.</p> <p>Note: the most important param that you must pass in this case is an <a href="https://docs.codecov.com/docs/codecov-tokens" target="" title="">upload token</a>. A token can be passed to the CLI via the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">$CODECOV_TOKEN</code> environment variable or the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">-t</code> command line argument as shown below.</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-asp theme-light" data-lang="asp" name="shell" tabindex="0">./codecov --verbose upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n &#x27;service&#x27;-${{ github.run_id }} -F service -f coverage-service.xml </code></pre></div></div> <p>For information about uploading reports to Codecov without a token, see <a href="https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token" target="" title="">the documentation for Codecov tokens</a>.</p> <h3 class="heading heading-3 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="self-hosted-use-of-the-cli"></div><div class="heading-text"><div id="section-self-hosted-use-of-the-cli" class="heading-anchor_backwardsCompatibility"></div>Self-Hosted Use of the CLI</div><a aria-label="Skip link to Self-Hosted Use of the CLI" class="heading-anchor-icon fa fa-anchor" href="#self-hosted-use-of-the-cli"></a></h3> <p>Note that for Codecov Self-Hosted the Self-Hosted URL will need to be included in the upload command via the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--enterprise-url</code> parameter. An example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0"># here we upload the test report called coverage-service.xml, we are passing # in the flag called &quot;service&quot; and a dyncamic name to specify a specifc test run # we are using some options params like --verbose and --fail-on-error # the most important that you must pass in this case is the actual upload token # NOTE: we are adding a parameter for the self-hosted URL ./codecov --verbose --enterprise-url https://&lt;your-codecov-self-hosted-url&gt; upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n &#x27;service&#x27;-${{ github.run_id }} -F service -f coverage-service.xml </code></pre></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="integrity-checking-the-codecov-cli"></div><div class="heading-text"><div id="section-integrity-checking-the-codecov-cli" class="heading-anchor_backwardsCompatibility"></div>Integrity Checking the Codecov CLI</div><a aria-label="Skip link to Integrity Checking the Codecov CLI" class="heading-anchor-icon fa fa-anchor" href="#integrity-checking-the-codecov-cli"></a></h2> <p>The Codecov CLI can be integrity checked against a known GPG key signature, and can also have its contents checked via SHASUM. While performing these two checks is optional, it is highly recommended to do so. By checking the GPG signature and the SHASUM of the uploader, users can be much more confident in the overall integrity of the downloaded file. </p> <p>At a high level, to integrity check the new Uploader, one must:</p> <ol> <li>Import the Codecov PGP public key (one-time step). The Codecov PGP public key can be retrieved from Keybase or many other keyservers. Key ID: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">ED779869</code> Key Fingerprint: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2703 4E7F DB85 0E0B BC2C 62FF 806B B28A ED77 9869</code></li> <li>Download the Uploader, SHA256SUM, and SHA256SUM.sig files for your particular distribution</li> <li>Verify the SHA256SUM file is signed using Codecov’s PGP key</li> <li>Verify the SHA256SUM in the file matches the CLI</li> </ol> <p>The following example performs these steps for each distribution of the Uploader&#x27;s latest version before using the Uploader to upload a coverage report:</p> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>Alpine Linux may Require Additional Dependencies</p></h2><p>If the following commands fail when using Alpine Linux, you may need to run: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">apk add curl gnupg coreutils</code></p></blockquote> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>Windows may Require Additional Dependencies</p></h2><p>If <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg.exe</code> is not already installed on your system, you can download the Windows GPG client from: <a href="https://gnupg.org/download/" target="" title="">https://gnupg.org/download/</a></p></blockquote> <p>For systems running <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code>&gt;= <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2.4.3</code>:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux Arm64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/linux/codecov curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/alpine/codecov curl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/macos/codecov curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">$ProgressPreference = &#x27;SilentlyContinue&#x27; Invoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc gpg.exe --import codecov.asc Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig gpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM If ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], &quot;codecov.exe&quot;) -join &quot; &quot;) -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo &quot;SHASUM verified&quot; } Else {exit 1} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/linux-arm64/codecov curl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre></div></div> <p>For those running <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code> &lt; <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2.4.3</code>: </p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux Arm64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/linux/codecov curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/alpine/codecov curl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov ./codecov -t ${CODECOV_TOKEN} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/macos/codecov curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM sudo chmod +x codecov ./codecov --help ./codecov -t ${CODECOV_TOKEN} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">$ProgressPreference = &#x27;SilentlyContinue&#x27; Invoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc gpg.exe --import codecov.asc Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig gpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM If ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], &quot;codecov.exe&quot;) -join &quot; &quot;) -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo &quot;SHASUM verified&quot; } Else {exit 1} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov ./codecov -t ${CODECOV_TOKEN} </code></pre></div></div> <p>To check your <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code> version, run</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="" tabindex="0">gpg --version </code></pre></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="fetching-version-specific-metadata"></div><div class="heading-text"><div id="section-fetching-version-specific-metadata" class="heading-anchor_backwardsCompatibility"></div>Fetching Version Specific Metadata</div><a aria-label="Skip link to Fetching Version Specific Metadata" class="heading-anchor-icon fa fa-anchor" href="#fetching-version-specific-metadata"></a></h2> <p>Metadata can be fetched for a particular release of the Uploader (including <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">latest</code>) as follows:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">cURL</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-curl theme-light" data-lang="curl" name="" tabindex="0">curl -H &quot;Accept: application/json&quot; https://cli.codecov.io/alpine/latest | jq </code></pre></div></div> <p>Which will return a JSON response of the following form:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">JSON</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-json theme-light" data-lang="json" name="" tabindex="0">{ &quot;artifact&quot;: { &quot;distro&quot;: &quot;linux&quot;, &quot;file&quot;: &quot;codecovcli_linux&quot;, &quot;full_version&quot;: &quot;v0.4.4&quot;, &quot;created_at&quot;: &quot;2024-01-11 16:36:06&quot;, &quot;version&quot;: &quot;v0.4.4&quot;, &quot;hash&quot;: &quot;e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2&quot; }, &quot;link&quot;: &quot;https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov&quot;, &quot;file_hash_link&quot;: &quot;https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov.SHA256SUM&quot;, &quot;file_sig_link&quot;: &quot;https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov.SHA256SUM.sig&quot;, &quot;github_release_link&quot;: &quot;https:\/\/github.com\/codecov\/codecov-cli\/releases\/tag\/v0.4.4&quot;, &quot;hash&quot;: &quot;e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2&quot;, &quot;version&quot;: &quot;v0.4.4&quot;, &quot;full_version&quot;: &quot;v0.4.4&quot; } </code></pre></div></div> <p>The response contains meta information about the particular version in the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">artifact</code> object, include the distro and the commit SHA of the release. Links to distributions of the particular version are also provided. </p> <p>While this is generally useful, the most obvious use case is leveraging this metadata to setup a vendoring pipeline that fetches and verifies <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">latest</code> whenever it updates and stores this verified version of the CLI in an private CDN, filestore, or other storage apparatus.</p> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="uploader-command-line-arguments"></div><div class="heading-text"><div id="section-uploader-command-line-arguments" class="heading-anchor_backwardsCompatibility"></div>Uploader Command Line Arguments</div><a aria-label="Skip link to Uploader Command Line Arguments" class="heading-anchor-icon fa fa-anchor" href="#uploader-command-line-arguments"></a></h2> <p>The Codecov CLI is an exciting way to interact with new Codecov features. In order to find more options on how to upload using the CLI, please review <a href="https://docs.codecov.com/docs/cli-options" target="" title="">CLI Options</a></p>" style="margin-left:31px" class="rm-Markdown markdown-body rm-Markdown markdown-body ng-non-bindable" data-testid="RDMD"><h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="introduction"></div><div class="heading-text"><div id="section-introduction" class="heading-anchor_backwardsCompatibility"></div>Introduction</div><a aria-label="Skip link to Introduction" class="heading-anchor-icon fa fa-anchor" href="#introduction"></a></h2> <p>Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. </p> <blockquote class="callout callout_info" theme="ℹ️"><h2 class="callout-heading"><span class="callout-icon">ℹ️</span><p>Update on the Bash and Node Uploader</p></h2><p>With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we're no longer adding more features to the Bash and Node uploaders moving forward. Any functional bugs on those would be fixed exclusively to the CLI moving forward.</p><p>We will still endeavour to patch critical security fixes to the Node Uploader, but we highly encourage people using the Bash and Node Uploader to plan on moving to use the Codecov CLI.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="using-the-cli"></div><div class="heading-text"><div id="section-using-the-cli" class="heading-anchor_backwardsCompatibility"></div>Using the CLI</div><a aria-label="Skip link to Using the CLI" class="heading-anchor-icon fa fa-anchor" href="#using-the-cli"></a></h2> <h3 class="heading heading-3 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="using-the-cli-to-upload-reports-with-codecovio-cloud"></div><div class="heading-text"><div id="section-using-the-cli-to-upload-reports-with-codecov-io-cloud" class="heading-anchor_backwardsCompatibility"></div>Using the CLI to upload reports with codecov.io (Cloud)</div><a aria-label="Skip link to Using the CLI to upload reports with codecov.io (Cloud)" class="heading-anchor-icon fa fa-anchor" href="#using-the-cli-to-upload-reports-with-codecovio-cloud"></a></h3> <p>The first step is to download the CLI. You can use our dedicated wrappers, or invoke things yourself in CI.</p> <blockquote class="callout callout_okay" theme="👍"><h2 class="callout-heading"><span class="callout-icon">👍</span><p>Dedicated wrappers for the Codecov CLI</p></h2><p>Avoid setup time and use a build pipeline-specific wrapper to the uploader to automatically ingest and run the CLI:</p><p><a target="_self" href="https://github.com/marketplace/actions/codecov">Codecov's Github Action</a><br/> <a target="_self" href="https://circleci.com/developer/orbs/orb/codecov/codecov">Codecov's CircleCI Orb</a><br/> <a target="_self" href="https://devcenter.bitrise.io/en/testing/measuring-your-code-coverage-with-codecov.html#integrating-codecov-with-bitrise">Codecov's Bitrise Step</a> </p><p>These wrappers all include integrity checking via SHASUM verification.</p></blockquote> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>It is Highly Recommended to Integrity Check the CLI</p></h2><p>While the snippets below can be used to download and use the CLI directly, it is highly recommended to perform signature and SHASUM verification to ensure integrity of the CLI before use. See <strong><a target="_self" href="/docs/codecov-uploader#integrity-checking-the-codecov-cli">Integrity Checking the Uploader</a></strong> below for more information.</p></blockquote> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="download-using-pip"></div><div class="heading-text"><div id="section-download-using-pip" class="heading-anchor_backwardsCompatibility"></div>Download Using Pip</div><a aria-label="Skip link to Download Using Pip" class="heading-anchor-icon fa fa-anchor" href="#download-using-pip"></a></h4> <p>To use <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecov-cli</code> in your local machine, or your CI workflows, you need to install it:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">python</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-coffeescript theme-light" data-lang="coffeescript" name="python" tabindex="0">pip install codecov-cli </code></pre></div></div> <p>The above command will download the latest version of <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecov-cli</code>. If you wish to use a specific version, releases can be viewed <a target="_self" href="https://pypi.org/project/codecov-cli/#history">here</a>. Note, the Codecov CLI expects to be run in the checked out repos, on a machine with <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">git</code> installed.</p> <p>Your default will need to be <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Python3</code> in order to make this work.</p> <p>Note: If you're installing in a <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">pytest</code> environment, you may need to call <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">pytest rehash</code> before the CLI will work.</p> <blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>The version installed with pip has a different name</p></h2><p>Please note that the name of the CLI executable is <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">codecovcli</code> when it has been installed with pip</p></blockquote> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="download-as-a-binary"></div><div class="heading-text"><div id="section-download-as-a-binary" class="heading-anchor_backwardsCompatibility"></div>Download As a Binary</div><a aria-label="Skip link to Download As a Binary" class="heading-anchor-icon fa fa-anchor" href="#download-as-a-binary"></a></h4> <p>For Codecov Cloud users, the CLI can be invoked as follows: </p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux ARM64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/linux/codecov sudo chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/alpine/codecov sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/macos/codecov sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">#download Codecov CLI $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe .\codecov.exe </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux ARM64" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/linux-arm64/codecov sudo chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov sudo chmod +x codecov </code></pre></div></div> <p>The above commands will download the latest version of the CLI. If you wish to use a specific version of the CLI, releases can be viewed per distribution here:<a target="_self" href="https://cli.codecov.io/"> https://cli.codecov.io/</a> . Note, the Codecov CLI expects to be run in the checked out repos, on a machine with git installed.</p> <p>Pinning to a particular version requires replacing "latest" in the curl command with the specific version numbers, as follows:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">#download Codecov CLI curl -Os https://cli.codecov.io/v0.4.4/linux/codecov sudo chmod +x codecov </code></pre></div></div> <h4 class="heading heading-4 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="uploading-coverage-reports-to-codecov"></div><div class="heading-text"><div id="section-uploading-coverage-reports-to-codecov" class="heading-anchor_backwardsCompatibility"></div>Uploading coverage reports to Codecov</div><a aria-label="Skip link to Uploading coverage reports to Codecov" class="heading-anchor-icon fa fa-anchor" href="#uploading-coverage-reports-to-codecov"></a></h4> <p>Add the following snippet after your tests have run and a <a target="_self" href="/docs/supported-report-formats">coverage report</a> has been generated.</p> <p>Here, we will upload the test report called <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">coverage-service.xml</code>, we are passing in the flag called "service" and a dynamic name to specify a specific test run (it will be useful to see in the Codecov UI). We are using some optional params like <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--verbose</code> and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--fail-on-error</code> and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--disable-search</code>.</p> <p>Note: the most important param that you must pass in this case is an <a target="_self" href="/docs/codecov-tokens">upload token</a>. A token can be passed to the CLI via the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">$CODECOV_TOKEN</code> environment variable or the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">-t</code> command line argument as shown below.</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-asp theme-light" data-lang="asp" name="shell" tabindex="0">./codecov --verbose upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml </code></pre></div></div> <p>For information about uploading reports to Codecov without a token, see <a target="_self" href="/docs/codecov-tokens#uploading-without-a-token">the documentation for Codecov tokens</a>.</p> <h3 class="heading heading-3 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="self-hosted-use-of-the-cli"></div><div class="heading-text"><div id="section-self-hosted-use-of-the-cli" class="heading-anchor_backwardsCompatibility"></div>Self-Hosted Use of the CLI</div><a aria-label="Skip link to Self-Hosted Use of the CLI" class="heading-anchor-icon fa fa-anchor" href="#self-hosted-use-of-the-cli"></a></h3> <p>Note that for Codecov Self-Hosted the Self-Hosted URL will need to be included in the upload command via the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">--enterprise-url</code> parameter. An example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0"># here we upload the test report called coverage-service.xml, we are passing # in the flag called "service" and a dyncamic name to specify a specifc test run # we are using some options params like --verbose and --fail-on-error # the most important that you must pass in this case is the actual upload token # NOTE: we are adding a parameter for the self-hosted URL ./codecov --verbose --enterprise-url https://<your-codecov-self-hosted-url> upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml </code></pre></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="integrity-checking-the-codecov-cli"></div><div class="heading-text"><div id="section-integrity-checking-the-codecov-cli" class="heading-anchor_backwardsCompatibility"></div>Integrity Checking the Codecov CLI</div><a aria-label="Skip link to Integrity Checking the Codecov CLI" class="heading-anchor-icon fa fa-anchor" href="#integrity-checking-the-codecov-cli"></a></h2> <p>The Codecov CLI can be integrity checked against a known GPG key signature, and can also have its contents checked via SHASUM. While performing these two checks is optional, it is highly recommended to do so. By checking the GPG signature and the SHASUM of the uploader, users can be much more confident in the overall integrity of the downloaded file. </p> <p>At a high level, to integrity check the new Uploader, one must:</p> <ol> <li>Import the Codecov PGP public key (one-time step). The Codecov PGP public key can be retrieved from Keybase or many other keyservers. Key ID: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">ED779869</code> Key Fingerprint: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2703 4E7F DB85 0E0B BC2C 62FF 806B B28A ED77 9869</code></li> <li>Download the Uploader, SHA256SUM, and SHA256SUM.sig files for your particular distribution</li> <li>Verify the SHA256SUM file is signed using Codecov’s PGP key</li> <li>Verify the SHA256SUM in the file matches the CLI</li> </ol> <p>The following example performs these steps for each distribution of the Uploader's latest version before using the Uploader to upload a coverage report:</p> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>Alpine Linux may Require Additional Dependencies</p></h2><p>If the following commands fail when using Alpine Linux, you may need to run: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">apk add curl gnupg coreutils</code></p></blockquote> <blockquote class="callout callout_warn" theme="🚧"><h2 class="callout-heading"><span class="callout-icon">🚧</span><p>Windows may Require Additional Dependencies</p></h2><p>If <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg.exe</code> is not already installed on your system, you can download the Windows GPG client from: <a target="_self" href="https://gnupg.org/download/">https://gnupg.org/download/</a></p></blockquote> <p>For systems running <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code>>= <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2.4.3</code>:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux Arm64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/linux/codecov curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/alpine/codecov curl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/macos/codecov curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">$ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc gpg.exe --import codecov.asc Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig gpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM If ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], "codecov.exe") -join " ") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo "SHASUM verified" } Else {exit 1} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/linux-arm64/codecov curl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov ./codecov --help </code></pre></div></div> <p>For those running <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code> < <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">2.4.3</code>: </p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Linux</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux</button><button aria-selected="false" class="" role="tab" type="button">macOS</button><button aria-selected="false" class="" role="tab" type="button">Windows</button><button aria-selected="false" class="" role="tab" type="button">Linux Arm64</button><button aria-selected="false" class="" role="tab" type="button">Alpine Linux Arm64</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/linux/codecov curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/alpine/codecov curl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov ./codecov -t ${CODECOV_TOKEN} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="macOS" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://cli.codecov.io/latest/macos/codecov curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM curl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM sudo chmod +x codecov ./codecov --help ./codecov -t ${CODECOV_TOKEN} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-powershell theme-light" data-lang="powershell" name="Windows" tabindex="0">$ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc gpg.exe --import codecov.asc Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig gpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM If ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], "codecov.exe") -join " ") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo "SHASUM verified" } Else {exit 1} </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov </code></pre><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="Alpine Linux Arm64" tabindex="0">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM curl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig gpgv codecov.SHA256SUM.sig codecov.SHA256SUM shasum -a 256 -c codecov.SHA256SUM chmod +x codecov ./codecov -t ${CODECOV_TOKEN} </code></pre></div></div> <p>To check your <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">gpg</code> version, run</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="" tabindex="0">gpg --version </code></pre></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="fetching-version-specific-metadata"></div><div class="heading-text"><div id="section-fetching-version-specific-metadata" class="heading-anchor_backwardsCompatibility"></div>Fetching Version Specific Metadata</div><a aria-label="Skip link to Fetching Version Specific Metadata" class="heading-anchor-icon fa fa-anchor" href="#fetching-version-specific-metadata"></a></h2> <p>Metadata can be fetched for a particular release of the Uploader (including <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">latest</code>) as follows:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">cURL</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-curl theme-light" data-lang="curl" name="" tabindex="0">curl -H "Accept: application/json" https://cli.codecov.io/alpine/latest | jq </code></pre></div></div> <p>Which will return a JSON response of the following form:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">JSON</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-json theme-light" data-lang="json" name="" tabindex="0">{ "artifact": { "distro": "linux", "file": "codecovcli_linux", "full_version": "v0.4.4", "created_at": "2024-01-11 16:36:06", "version": "v0.4.4", "hash": "e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2" }, "link": "https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov", "file_hash_link": "https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov.SHA256SUM", "file_sig_link": "https:\/\/cli.codecov.io\/v0.4.4\/linux\/codecov.SHA256SUM.sig", "github_release_link": "https:\/\/github.com\/codecov\/codecov-cli\/releases\/tag\/v0.4.4", "hash": "e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2", "version": "v0.4.4", "full_version": "v0.4.4" } </code></pre></div></div> <p>The response contains meta information about the particular version in the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">artifact</code> object, include the distro and the commit SHA of the release. Links to distributions of the particular version are also provided. </p> <p>While this is generally useful, the most obvious use case is leveraging this metadata to setup a vendoring pipeline that fetches and verifies <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">latest</code> whenever it updates and stores this verified version of the CLI in an private CDN, filestore, or other storage apparatus.</p> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="uploader-command-line-arguments"></div><div class="heading-text"><div id="section-uploader-command-line-arguments" class="heading-anchor_backwardsCompatibility"></div>Uploader Command Line Arguments</div><a aria-label="Skip link to Uploader Command Line Arguments" class="heading-anchor-icon fa fa-anchor" href="#uploader-command-line-arguments"></a></h2> <p>The Codecov CLI is an exciting way to interact with new Codecov features. In order to find more options on how to upload using the CLI, please review <a target="_self" href="/docs/cli-options">CLI Options</a></p></div><div class="UpdatedAt"><p class="DateLine "><i class="icon icon-watch"></i>Updated<!-- --> <!-- -->5 months ago<!-- --> </p></div><hr class="NextStepsDivider"/><nav aria-label="Pagination Controls" class="PaginationControlsjDYuqu8pBMUy rm-Pagination"></nav></section><section class="content-toc grid-25"><nav><ul class="toc-list"><li><a class="tocHeader" href="#"><i class="icon icon-text-align-left"></i>Table of Contents</a></li><li class="toc-children"><ul> <li> <a href="#introduction">Introduction</a> </li> <li> <a href="#using-the-cli">Using the CLI</a> <ul> <li><a href="#using-the-cli-to-upload-reports-with-codecovio-cloud">Using the CLI to upload reports with codecov.io (Cloud)</a></li> <li><a href="#self-hosted-use-of-the-cli">Self-Hosted Use of the CLI</a></li> </ul> </li> <li> <a href="#integrity-checking-the-codecov-cli">Integrity Checking the Codecov CLI</a> </li> <li> <a href="#fetching-version-specific-metadata">Fetching Version Specific Metadata</a> </li> <li> <a href="#uploader-command-line-arguments">Uploader Command Line Arguments</a> </li> </ul></li></ul></nav></section></div><div class="ModalWrapper" id="tutorialmodal-root"></div></article></div></main><footer aria-label="Status banner" class="Footer2U8XAPoGhlgO AppFooter rm-Banners"></footer><div class="ModalWrapper" id="ChatGPT-modal"></div></div></div><div class="ng-non-bindable"><script id="ssr-props" data-initial-props="{"sidebars":{"docs":[{"_id":"64c14ec8f2680d15b2982b24","project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","isAPI":false,"reference":false,"createdAt":"2019-01-28T03:07:50.737Z","order":0,"slug":"getting-started-1","title":"Getting Started","__v":0,"pages":[{"_id":"64c14ec8f2680d15b2982b89","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"params":[],"examples":{"codes":[]}},"title":"Quick Start","type":"basic","slug":"quick-start","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"quick-start-copy","createdAt":"2022-06-06T23:10:43.332Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b6a","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Sign up for Codecov","type":"link","slug":"sign-up-for-codecov","order":2,"isReference":false,"hidden":false,"sync_unique":"","link_url":"https://about.codecov.io/sign-up/","link_external":false,"previousSlug":"","createdAt":"2021-09-15T20:50:54.376Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982b6d","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"GitHub Tutorial","type":"basic","slug":"github-tutorial","order":3,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"codecov-tutorial","createdAt":"2022-02-15T19:25:11.120Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b6e","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"0 - Setting up the demo repository","type":"basic","slug":"github-0-setting-up-the-repository","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-tutorial0-setting-up-the-repository-1","createdAt":"2022-02-15T19:25:55.695Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b6f","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"1 - Setting and getting code coverage","type":"basic","slug":"github-1-setting-and-getting-code-coverage","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-1-setting-and-getting-code-coverage","createdAt":"2022-02-15T19:27:27.602Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b70","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"2 - Getting a Codecov account and uploading coverage","type":"basic","slug":"github-2-getting-a-codecov-account-and-uploading-coverage","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-2-getting-a-codecov-account-and-uploading-coverage","createdAt":"2022-02-15T19:31:40.566Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b71","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"3 - Customizing Codecov","type":"basic","slug":"github-3-customizing-codecov","order":3,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-3-customizing-codecov","createdAt":"2022-02-15T19:38:03.387Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b95","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4a - Merging reports","icon":"","type":"basic","slug":"github-4a-merging-reports","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4a-merging-reports","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-01-30T03:08:17.930Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b96","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4b - Filtering Coverage by Directory","icon":"","type":"basic","slug":"github-4b-getting-aggregate-coverage","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4b-getting-aggregate-coverage","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-01-30T04:13:04.811Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b72","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"5a - Writing a frontend","type":"basic","slug":"github-5a-writing-a-frontend","order":6,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-5a-merging-reports","createdAt":"2022-02-15T19:43:10.529Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b75","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"5b - Setting coverage standards with Flags","type":"basic","slug":"github-5b-setting-coverage-standards-with-flags","order":7,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-4b-setting-coverage-standards-with-flags","createdAt":"2022-03-05T05:32:02.134Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b73","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"6 - Test what you change with Carryforward Flags","type":"basic","slug":"github-6-carryforward-flags","order":8,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-5-carryforward-flags","createdAt":"2022-02-15T19:44:26.833Z","parentDoc":"64c14ec8f2680d15b2982b6d","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b79","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"GitLab Tutorial","type":"basic","slug":"gitlab-tutorial","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"gitlab-codecov-tutorial","createdAt":"2022-05-11T16:40:47.132Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b7a","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"0 - Setting up the demo repository","type":"basic","slug":"gitlab-0-setting-up-the-demo-repository","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-0-setting-up-the-demo-repository","createdAt":"2022-05-11T17:00:50.503Z","parentDoc":"64c14ec8f2680d15b2982b79","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b7b","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"1 - Setting and getting code coverage","type":"basic","slug":"gitlab-1-setting-and-getting-code-coverage","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"1-setting-and-getting-code-coverage","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-01T01:22:51.905Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b7c","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"2 - Getting a Codecov account and uploading coverage","type":"basic","slug":"gitlab-2-getting-a-codecov-account-and-uploading-coverage","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"2-getting-a-codecov-account-and-uploading-coverage","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-01T01:37:40.658Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b7d","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"3 - Customizing Codecov","type":"basic","slug":"gitlab-3-customizing-codecov","order":3,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"3-customizing-codecov","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-01T02:40:29.763Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b7e","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4a - Merging reports","type":"basic","slug":"gitlab-4a-merging-reports","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4a-merging-reports","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-06T19:32:47.464Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b7f","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4b - Setting coverage standards with Flags","type":"basic","slug":"gitlab-4b-setting-coverage-standards-with-flags","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4b-setting-coverage-standards-with-flags","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-06T19:46:46.526Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b80","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"5 - Test what you change with Carryforward Flags","type":"basic","slug":"gitlab-5-test-what-you-change-with-carryforward-flags","order":6,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"5-test-what-you-change-with-carryforward-flags","parentDoc":"64c14ec8f2680d15b2982b79","createdAt":"2022-06-06T20:02:42.556Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b81","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Bitbucket Tutorial","type":"basic","slug":"bitbucket-tutorial","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2022-06-06T21:29:51.041Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b82","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"0 - Setting up the demo repository","type":"basic","slug":"bitbucket-0-setting-up-the-demo-repository","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-0-setting-up-the-demo-repository-yum","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T21:31:19.200Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b83","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"1 - Setting and getting code coverage","type":"basic","slug":"bitbucket-1-setting-and-getting-code-coverage","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"1-setting-and-getting-code-coverage-1","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T21:36:29.198Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b84","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"2 - Getting a Codecov account and uploading coverage","type":"basic","slug":"bitbucket-2-getting-a-codecov-account-and-uploading-coverage","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"2-getting-a-codecov-account-and-uploading-coverage-1","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T21:39:06.112Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b85","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"3 - Customizing Codecov","type":"basic","slug":"bitbucket-step-3-customizing-codecov","order":3,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-3-customizing-codecov-1","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T22:36:13.833Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b86","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4a - Merging reports","type":"basic","slug":"bitbucket-4a-merging-reports","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4a-merging-reports-1","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T22:44:05.436Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b87","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"4b - Setting coverage standards with Flags","type":"basic","slug":"bitbucket-4b-setting-coverage-standards-with-flags","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"4b-setting-coverage-standards-with-flags-1","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T22:52:46.430Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b88","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"5 - Test what you change with Carryforward Flags","type":"basic","slug":"bitbucket-5-test-what-you-change-with-carryforward-flags","order":6,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"step-5-test-what-you-change-with-carryforward-flags","parentDoc":"64c14ec8f2680d15b2982b81","createdAt":"2022-06-06T23:01:03.794Z","category":"64c14ec8f2680d15b2982b24","icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b5f","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Common Configurations","type":"basic","slug":"common-recipe-list","order":6,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"createdAt":"2020-06-03T22:00:55.511Z","category":"64c14ec8f2680d15b2982b24","previousSlug":"","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b2b","isReference":false,"title":"About Code Coverage","category":"64c14ec8f2680d15b2982b24","createdAt":"2016-08-18T10:20:22.528Z","order":7,"sync_unique":"","hidden":false,"link_external":false,"link_url":"","type":"basic","parentDoc":null,"slug":"about-code-coverage","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","method":"get"},"previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b2c","link_external":false,"parentDoc":null,"createdAt":"2016-08-17T17:46:15.337Z","category":"64c14ec8f2680d15b2982b24","link_url":"","title":"Frequently Asked Questions","api":{"results":{"codes":[{"language":"json","status":200,"name":"","code":"{}"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"method":"get","examples":{"codes":[]}},"order":9,"type":"basic","hidden":false,"slug":"frequently-asked-questions","sync_unique":"","isReference":false,"deprecated":false,"previousSlug":"","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b9b","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Language Specific Guides","icon":"","type":"basic","slug":"language-specific-guides","order":11,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-03-31T15:27:31.792Z","parentDoc":null,"isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b9c","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Code coverage with JavaScript","icon":"","type":"basic","slug":"code-coverage-with-javascript","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982b9b","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-03-31T17:18:39.711Z","isBodyEmpty":false,"children":[]},{"_id":"64fb3d2e205f8300394847b1","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Code coverage with Python","icon":"","type":"basic","slug":"code-coverage-with-python","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982b9b","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-09-08T15:26:38.519Z","mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b67","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Uploading Reports to Codecov using the Codecov CLI","type":"basic","slug":"codecov-uploader","order":12,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-06-25T16:33:38.777Z","category":"64c14ec8f2680d15b2982b24","parentDoc":null,"deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b25","title":"Concepts","slug":"concepts","order":1,"reference":false,"isAPI":false,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2021-03-26T16:49:03.885Z","__v":0,"pages":[{"_id":"64c14ec8f2680d15b2982b34","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":"","method":"get"},"createdAt":"2016-08-17T17:57:54.281Z","hidden":false,"link_url":"","sync_unique":"","title":"CI Provider Relationship","type":"basic","isReference":false,"link_external":false,"order":0,"parentDoc":null,"category":"64c14ec8f2680d15b2982b25","slug":"ci-service-relationship","deprecated":false,"previousSlug":"","icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b43","hidden":false,"link_url":"","order":2,"slug":"team-bot","type":"basic","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get","examples":{"codes":[]}},"isReference":false,"title":"Github App or Team Bot","createdAt":"2016-08-17T14:07:39.791Z","category":"64c14ec8f2680d15b2982b25","sync_unique":"","link_external":false,"parentDoc":null,"previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b30","isReference":false,"parentDoc":null,"type":"basic","category":"64c14ec8f2680d15b2982b25","createdAt":"2016-08-17T17:34:22.704Z","link_url":"","sync_unique":"","api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"code":"{}","language":"json","status":200,"name":""},{"language":"json","status":400,"name":"","code":"{}"}]},"method":"get"},"hidden":false,"link_external":false,"order":3,"slug":"merging-reports","title":"Merging Reports","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b8f","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Coverage Percentages","icon":"","type":"basic","slug":"coverage-percentages","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b25","createdAt":"2023-01-06T23:44:57.687Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b31","isReference":false,"category":"64c14ec8f2680d15b2982b25","createdAt":"2016-08-17T17:44:23.751Z","link_external":false,"order":6,"title":"Comparing Coverage Across Commits","type":"basic","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get"},"hidden":false,"link_url":"","parentDoc":null,"slug":"comparing-commits","sync_unique":"","previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b32","category":"64c14ec8f2680d15b2982b25","isReference":false,"title":"Merge Commits","link_external":false,"link_url":"","parentDoc":null,"slug":"merge-commits","hidden":false,"order":7,"sync_unique":"","api":{"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"method":"get"},"createdAt":"2016-08-17T17:44:28.789Z","type":"basic","deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b38","parentDoc":null,"title":"Fixing Reports","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get"},"createdAt":"2016-08-30T12:19:29.378Z","hidden":false,"order":8,"type":"basic","sync_unique":"","link_url":"","category":"64c14ec8f2680d15b2982b25","isReference":false,"link_external":false,"slug":"fixing-reports","deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b33","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get","examples":{"codes":[]}},"createdAt":"2016-08-17T17:54:48.554Z","link_external":false,"link_url":"","title":"Unexpected Coverage Changes","type":"basic","category":"64c14ec8f2680d15b2982b25","parentDoc":null,"slug":"unexpected-coverage-changes","hidden":false,"isReference":false,"order":9,"sync_unique":"","previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b52","isReference":false,"title":"Viewing Source Code","type":"basic","category":"64c14ec8f2680d15b2982b25","hidden":false,"parentDoc":null,"sync_unique":"","createdAt":"2017-01-16T01:23:16.822Z","link_url":"","order":10,"api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"method":"get"},"link_external":false,"slug":"viewing-source-code","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b54","sync_unique":"","type":"basic","createdAt":"2017-01-18T15:34:54.277Z","hidden":false,"link_external":false,"link_url":"","order":11,"isReference":false,"slug":"graphs","api":{"params":[],"results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"","apiSetting":null,"auth":"required","method":"get"},"category":"64c14ec8f2680d15b2982b25","parentDoc":null,"title":"Graphs","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"66834e1f8427e90030bfed71","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Codecov Tokens","icon":"","type":"basic","slug":"codecov-tokens","order":15,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b25","createdAt":"2024-07-02T00:47:27.849Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b27","title":"Features","slug":"features","order":2,"reference":false,"isAPI":false,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2021-03-26T17:01:15.653Z","__v":0,"pages":[{"_id":"64c14ec8f2680d15b2982b66","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Status Badges","type":"basic","slug":"status-badges","order":0,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-05-06T16:32:46.034Z","category":"64c14ec8f2680d15b2982b27","parentDoc":null,"deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b92","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Components","icon":"","type":"basic","slug":"components","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-01-13T23:43:15.757Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b2f","sync_unique":"","link_external":false,"createdAt":"2016-08-17T11:27:52.389Z","isReference":false,"slug":"flags","type":"basic","api":{"settings":"","url":"","auth":"required","method":"get","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"examples":{"codes":[]}},"hidden":false,"parentDoc":null,"order":2,"title":"Flags","category":"64c14ec8f2680d15b2982b27","link_url":"","previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b5d","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Carryforward Flags","type":"basic","slug":"carryforward-flags","order":3,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"createdAt":"2020-03-19T13:17:10.488Z","category":"64c14ec8f2680d15b2982b27","previousSlug":"","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b40","slug":"pull-request-comments","title":"Pull Request Comments","createdAt":"2016-08-17T17:39:26.776Z","isReference":false,"type":"basic","link_external":false,"order":4,"hidden":false,"link_url":"","parentDoc":null,"sync_unique":"","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","method":"get","examples":{"codes":[]}},"category":"64c14ec8f2680d15b2982b27","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[{"_id":"64d64d1d5758a71320924ee1","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"PR comment for Git diff only (\"Patch\" coverage)","icon":"","type":"basic","slug":"changing-your-pr-comment-format","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982b40","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-08-11T15:00:45.873Z","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b3f","link_url":"","parentDoc":null,"title":"Status Checks","isReference":false,"link_external":false,"hidden":false,"order":5,"createdAt":"2016-08-17T15:23:54.660Z","slug":"commit-status","sync_unique":"","category":"64c14ec8f2680d15b2982b27","type":"basic","api":{"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"method":"get","examples":{"codes":[]}},"previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[{"_id":"65cfa8b77afd83001821e3e1","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Removed Code Behavior","icon":"","type":"basic","slug":"removed-code-behavior","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982b3f","category":"64c14ec8f2680d15b2982b27","createdAt":"2024-02-16T18:25:59.404Z","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b60","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"GitHub Checks","type":"basic","slug":"github-checks","order":6,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-checks-beta","createdAt":"2020-08-11T16:06:44.161Z","category":"64c14ec8f2680d15b2982b27","parentDoc":null,"deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b46","createdAt":"2016-08-17T14:25:12.538Z","isReference":false,"api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get"},"slug":"fixing-paths","sync_unique":"","type":"basic","link_external":false,"link_url":"","order":9,"parentDoc":null,"category":"64c14ec8f2680d15b2982b27","hidden":false,"title":"Path Fixing","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b47","isReference":false,"category":"64c14ec8f2680d15b2982b27","createdAt":"2016-09-15T14:45:49.056Z","hidden":false,"link_url":"","slug":"path-regexp","title":"Path Regexp","api":{"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"method":"get"},"order":10,"parentDoc":null,"sync_unique":"","type":"basic","link_external":false,"deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b45","hidden":false,"link_external":false,"sync_unique":"","category":"64c14ec8f2680d15b2982b27","order":11,"type":"basic","createdAt":"2016-08-17T14:25:03.904Z","isReference":false,"slug":"ignoring-paths","parentDoc":null,"title":"Ignoring Paths","api":{"params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"code":"{}","language":"json","status":400,"name":""}]},"settings":"","url":"","apiSetting":null,"auth":"required","method":"get"},"link_url":"","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b41","isReference":false,"link_url":"","order":12,"sync_unique":"","title":"Notifications","type":"basic","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"method":"get","examples":{"codes":[]}},"createdAt":"2016-08-17T14:01:01.132Z","hidden":false,"link_external":false,"parentDoc":null,"slug":"notifications","category":"64c14ec8f2680d15b2982b27","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b69","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Organization Analytics","type":"basic","slug":"organization-analytics","order":13,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-08-09T17:57:51.178Z","category":"64c14ec8f2680d15b2982b27","parentDoc":null,"deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b99","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Sentry and Codecov","icon":"","type":"basic","slug":"sentry-and-codecov","order":15,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-03-29T14:59:58.055Z","parentDoc":null,"isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b9a","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Code Coverage in the Stack Trace","icon":"","type":"basic","slug":"code-coverage-in-the-stack-trace","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982b99","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-03-31T14:44:40.620Z","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982bbf","api":{"method":"get","url":"","auth":"required","params":[],"examples":{"codes":[]},"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]}},"title":"Codecov CLI","icon":"","type":"basic","slug":"the-codecov-cli","order":16,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-05-19T15:20:08.621Z","parentDoc":null,"isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982bc0","api":{"method":"get","url":"","auth":"required","params":[]},"title":"CLI Options","icon":"","type":"basic","slug":"cli-options","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982bbf","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-05-19T15:28:38.420Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982bc1","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Contributing to the CLI","icon":"","type":"basic","slug":"contributing-to-the-cli","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"64c14ec8f2680d15b2982bbf","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-05-19T15:57:23.769Z","mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982bc3","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Slack Integration","icon":"","type":"basic","slug":"slack-integration","order":18,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-07-18T18:24:13.198Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"64efba399891bf00769979dd","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"VSCode Extension","icon":"","type":"basic","slug":"vscode-extension","order":19,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-08-30T21:52:57.548Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64fb585026f7f50024085f93","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Codecov Browser Extension","icon":"","type":"basic","slug":"the-codecov-browser-extension","order":20,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2023-09-08T17:22:24.694Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"65c5316b8149780038418527","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Test Analytics","icon":"","type":"basic","slug":"test-analytics","order":22,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"https://docs.codecov.com/docs/test-analytics","link_external":false,"previousSlug":"test-analytics-beta","category":"64c14ec8f2680d15b2982b27","createdAt":"2024-02-08T19:54:19.005Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66f1a994357579005204b6ec","mdx":{},"api":{"method":"get","url":"","auth":"required","params":[]},"title":"[Beta] Codecov AI","icon":"","type":"basic","slug":"beta-codecov-ai","order":24,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b27","createdAt":"2024-09-23T17:47:00.541Z","parentDoc":null,"isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b26","title":"Reference","slug":"reference","order":3,"reference":false,"isAPI":false,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2021-03-26T16:49:08.873Z","__v":0,"pages":[{"_id":"64c14ec8f2680d15b2982b2a","api":{"params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","method":"get"},"sync_unique":"","category":"64c14ec8f2680d15b2982b26","hidden":false,"slug":"supported-languages","parentDoc":null,"type":"basic","isReference":false,"order":0,"createdAt":"2016-08-17T11:19:10.525Z","link_external":false,"link_url":"","title":"Supported Languages","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b3a","api":{"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"method":"get","examples":{"codes":[]}},"link_url":"","createdAt":"2016-10-29T15:34:42.566Z","link_external":false,"parentDoc":null,"sync_unique":"","title":"Supported CI Providers","type":"basic","category":"64c14ec8f2680d15b2982b26","hidden":false,"isReference":false,"order":1,"slug":"supported-ci-providers","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b44","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get"},"link_external":false,"link_url":"","title":"Detecting Other CI Services","category":"64c14ec8f2680d15b2982b26","isReference":false,"createdAt":"2016-08-17T14:06:01.772Z","order":0,"sync_unique":"","type":"basic","hidden":false,"parentDoc":"64c14ec8f2680d15b2982b3a","slug":"detecting-ci-services","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b5a","createdAt":"2019-09-06T18:47:49.937Z","category":"64c14ec8f2680d15b2982b26","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":2,"slug":"supported-report-formats","type":"basic","title":"Supported Coverage Report Formats","parentDoc":null,"previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b62","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Codecov Custom Coverage Format","type":"basic","slug":"codecov-custom-coverage-format","order":3,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2020-10-19T15:31:41.122Z","category":"64c14ec8f2680d15b2982b26","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b35","link_url":"","order":4,"title":"Testing with Docker","hidden":false,"isReference":false,"category":"64c14ec8f2680d15b2982b26","link_external":false,"parentDoc":null,"sync_unique":"","type":"basic","api":{"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":"","url":"","apiSetting":null,"method":"get"},"createdAt":"2016-08-17T18:01:16.560Z","slug":"testing-with-docker","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b37","hidden":false,"link_url":"","slug":"administration","category":"64c14ec8f2680d15b2982b26","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":"","method":"get"},"isReference":false,"parentDoc":null,"sync_unique":"","type":"basic","link_external":false,"order":5,"title":"Administration","createdAt":"2016-08-25T19:50:41.600Z","deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b53","hidden":false,"slug":"error-reference","type":"basic","isReference":false,"link_external":false,"createdAt":"2017-01-17T16:40:42.818Z","order":6,"parentDoc":null,"api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","status":200,"language":"json","code":"{}"},{"language":"json","code":"{}","name":"","status":400}]},"settings":"","method":"get"},"category":"64c14ec8f2680d15b2982b26","link_url":"","sync_unique":"","title":"Error Reference","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"65a852c53fd757003edc3574","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Adding the Codecov token","icon":"","type":"basic","slug":"adding-the-codecov-token","order":7,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b26","createdAt":"2024-01-17T22:20:53.824Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b3e","hidden":false,"parentDoc":null,"title":"Codecov YAML","category":"64c14ec8f2680d15b2982b26","link_url":"","order":9,"api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"status":400,"name":"","code":"{}","language":"json"}]},"method":"get"},"createdAt":"2016-08-17T11:26:11.494Z","isReference":false,"link_external":false,"slug":"codecov-yaml","sync_unique":"","type":"basic","previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b5c","createdAt":"2019-11-06T13:51:06.107Z","category":"64c14ec8f2680d15b2982b26","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get","examples":{"codes":[]}},"isReference":false,"order":0,"slug":"codecovyml-reference","type":"basic","title":"codecov.yml Reference","parentDoc":"64c14ec8f2680d15b2982b3e","previousSlug":"","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b42","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"language":"json","status":200,"name":"","code":"{}"},{"status":400,"name":"","code":"{}","language":"json"}]},"settings":"","method":"get"},"category":"64c14ec8f2680d15b2982b26","sync_unique":"","createdAt":"2016-08-17T14:08:10.712Z","hidden":false,"isReference":false,"link_url":"","order":1,"parentDoc":"64c14ec8f2680d15b2982b3e","slug":"coverage-configuration","link_external":false,"title":"Coverage Configuration","type":"basic","deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b36","api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"code":"{}","language":"json","status":200,"name":""},{"name":"","code":"{}","language":"json","status":400}]},"method":"get"},"link_url":"","title":"[Deprecating] Bash Uploader","type":"basic","category":"64c14ec8f2680d15b2982b26","hidden":false,"sync_unique":"","parentDoc":null,"createdAt":"2016-08-19T19:44:15.013Z","isReference":false,"link_external":false,"order":13,"slug":"about-the-codecov-bash-uploader","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b6b","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Deprecating (Bash) Uploader Migration Guide","type":"basic","slug":"deprecated-uploader-migration-guide","order":0,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-10-04T21:19:49.835Z","category":"64c14ec8f2680d15b2982b26","parentDoc":"64c14ec8f2680d15b2982b36","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b68","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"GitHub Admin Authorization","type":"basic","slug":"github-oauth-application-authorization","order":14,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-07-19T17:29:38.718Z","category":"64c14ec8f2680d15b2982b26","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"66b511ee530d5c0010988a2a","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Securing access to Codecov UI with Okta","icon":"","type":"basic","slug":"securing-access-to-codecov-ui-with-okta","order":15,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b26","createdAt":"2024-08-08T18:43:58.233Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"66d9ae493a66f90010b2ca41","title":"JavaScript Bundle Analysis","slug":"javascript-bundle-analysis","order":4,"reference":false,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2024-09-05T13:12:41.215Z","__v":0,"pages":[{"_id":"66d9b17276b54100513ede11","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Overview - Bundle Analysis","icon":"","type":"basic","slug":"javascript-bundle-analysis","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"javascript-bundle-analysis-1","createdAt":"2024-09-05T13:25:00.000Z","category":"66d9ae493a66f90010b2ca41","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aeb6890f2f003d0f6928","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Bundle Names","icon":"","type":"basic","slug":"bundle-names","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"bundle-names-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:14:30.784Z","isBodyEmpty":false,"children":[]},{"_id":"66e2df3e021f00005aa56271","mdx":{},"api":{"method":"get","url":"","auth":"required","params":[]},"title":"Supported Build Environments","icon":"","type":"basic","slug":"supported-build-environments","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"supported-build-enviornments","category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-12T12:31:58.998Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"66d9aecc3efefa002572f265","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Environment Specific Requirements","icon":"","type":"basic","slug":"environment-specific-requirements","order":3,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"environment-specific-requirements-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:14:52.749Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aec422cbb70074cfe794","api":{"method":"get","url":"","auth":"required","params":[]},"title":"FAQ - Bundle Analysis","icon":"","type":"basic","slug":"bundle-analysis-faq","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"bundle-analysis-faq-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:14:44.894Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9b28c03ab99000f390802","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Tokenless - Bundle Analysis","icon":"","type":"basic","slug":"tokenless-bundle-analysis","order":5,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:30:52.986Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"66d9b2afbd4a430012db656e","api":{"method":"get","url":"","auth":"required","params":[]},"title":"GitHub OIDC - Bundle Analysis","icon":"","type":"basic","slug":"github-oidc-bundle-analysis","order":6,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:31:27.917Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"67471dc3b7db8d0052ffcc4b","mdx":{},"api":{"method":"get","url":"","auth":"required","params":[]},"title":"Astro Quick Start","icon":"","type":"basic","slug":"astro-quick-start","order":7,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"66d9ae493a66f90010b2ca41","createdAt":"2024-11-27T13:25:23.578Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"66d9af08b5289b001f34277e","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"NextJS (Webpack) Quick Start","icon":"","type":"basic","slug":"nextjs-webpack-quick-start","order":8,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"nextjs-webpack-quick-start-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:52.772Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aed3302e5900362992ae","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Nuxt Quick Start","icon":"","type":"basic","slug":"nuxt-quick-start","order":9,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"nuxt-module-quick-start","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:14:59.286Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aee1191cd8005b8af39a","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Remix (Vite) Quick Start","icon":"","type":"basic","slug":"remix-vite-quick-start","order":10,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"remix-vite-quick-start-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:13.915Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aeec490135005281edf1","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Rollup Quick Start","icon":"","type":"basic","slug":"rollup-quick-start","order":11,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"rollup-quick-start-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:24.634Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aef48919e70043c7f5c8","api":{"method":"get","url":"","auth":"required","params":[]},"title":"SvelteKit Quick Start","icon":"","type":"basic","slug":"sveltekit-quick-start","order":12,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"sveltekit-quick-start-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:32.013Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aef9457faf004895e10c","api":{"method":"get","url":"","auth":"required","params":[]},"title":"SolidStart Quick Start","icon":"","type":"basic","slug":"solidstart-quick-start","order":13,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"solidstart-quick-start-copy","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:37.100Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9aeff78312a006e0b88e0","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Vite Quick Start (React, Vue, Svelte, SolidJS, etc.)","icon":"","type":"basic","slug":"vite-quick-start","order":14,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"vite-quick-start-vue-sveltekit-remix-solidjs-etc","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:43.654Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66d9af044e2b290013fbd22c","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Webpack 5 Quick Start (Angular, CRACO)","icon":"","type":"basic","slug":"webpack-quick-start","order":15,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"webpack-quick-start-nextjs-craco","parentDoc":null,"category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-05T13:15:48.652Z","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"66e07a9f989bb300528b1d12","api":{"method":"get","url":"","auth":"required","params":[]},"title":"Bundle Analyzer Quick Start","icon":"","type":"basic","slug":"bundle-analyzer-quick-start","order":16,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"66d9ae493a66f90010b2ca41","createdAt":"2024-09-10T16:58:07.047Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]}]},{"_id":"651dcc9c5bcd49002bbe5d91","title":"Codecov DEDICATED ENTERPRISE CLOUD","slug":"dedicated-enterprise-cloud","order":5,"reference":false,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2023-10-04T20:35:40.312Z","__v":0,"pages":[{"_id":"651ebcf712b0d2004f5914b9","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Dedicated Enterprise Cloud Guide","icon":"","type":"basic","slug":"codecov-dedicated-enterprise-cloud-install-steps","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-05T13:41:11.127Z","parentDoc":null,"mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"651b32399308ea001f6c1b78","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"params":[],"examples":{"codes":[]}},"title":"GitHub App Integration for Dedicated Cloud","icon":"","type":"basic","slug":"github-app-integration-for-codecov-dedicated-cloud","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"github-app-integration-for-codecov-self-hosted-copy","parentDoc":null,"category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-02T21:12:25.846Z","isBodyEmpty":false,"children":[{"_id":"652030987fa505003cc0f375","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Prefilled Github App Creation","icon":"","type":"basic","slug":"prefilled-github-app-creation","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"651b32399308ea001f6c1b78","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-06T16:06:48.811Z","isBodyEmpty":false,"children":[]},{"_id":"65202b81a362c00013a419f3","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Manual GitHub App Creation","icon":"","type":"basic","slug":"manual-github-app-creation","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"651b32399308ea001f6c1b78","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-06T15:45:05.346Z","isBodyEmpty":false,"children":[]},{"_id":"65205d87057c4c006bf2eafb","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Secure Credential Transmission","icon":"","type":"basic","slug":"secure-credential-transmission","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"651b32399308ea001f6c1b78","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-06T19:18:31.367Z","isBodyEmpty":false,"children":[]}]},{"_id":"651dd00868ff3c0061ee8479","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"IP Access Control List Restrictions","icon":"","type":"basic","slug":"ip-acl-restrictions","order":2,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"ip-lists","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-10-04T20:50:16.560Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"6542683fc8eba40019a86189","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Peering","icon":"","type":"basic","slug":"peering","order":4,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-11-01T15:01:19.598Z","parentDoc":null,"isBodyEmpty":false,"children":[{"_id":"65426850aafaf10043b3010b","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"AWS Peering","icon":"","type":"basic","slug":"aws","order":0,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","parentDoc":"6542683fc8eba40019a86189","category":"651dcc9c5bcd49002bbe5d91","createdAt":"2023-11-01T15:01:36.529Z","isBodyEmpty":false,"children":[]}]}]},{"_id":"64c14ec8f2680d15b2982b22","reference":false,"createdAt":"2016-08-17T11:14:43.598Z","from_sync":false,"order":6,"slug":"enterprise","project":"57b33b5ec9a4551700b969a5","sync":{"url":"","isSync":false},"title":"Codecov Self-Hosted","__v":0,"version":"64c14ec8f2680d15b2982bc4","isAPI":false,"pages":[{"_id":"64c14ec8f2680d15b2982b63","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Codecov Self-Hosted Install Guide","type":"basic","slug":"installing-codecov-self-hosted","order":0,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"installing-codecov","createdAt":"2021-01-08T20:18:56.432Z","category":"64c14ec8f2680d15b2982b22","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b4c","isReference":false,"order":0,"category":"64c14ec8f2680d15b2982b22","link_external":false,"slug":"configuration","api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"method":"get"},"createdAt":"2016-08-18T11:30:00.113Z","hidden":false,"link_url":"","parentDoc":"64c14ec8f2680d15b2982b63","type":"basic","sync_unique":"","title":"Self-Hosted Configuration","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b4b","title":"Set Up Oauth Login (Self-Hosted)","type":"basic","link_url":"","order":1,"parentDoc":"64c14ec8f2680d15b2982b63","slug":"set-up-oauth-login","createdAt":"2016-08-18T11:07:35.430Z","hidden":false,"link_external":false,"isReference":false,"sync_unique":"","api":{"url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","method":"get","examples":{"codes":[]}},"category":"64c14ec8f2680d15b2982b22","previousSlug":"link-service-provider","deprecated":false,"icon":"","mdx":{},"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b49","hidden":false,"link_url":"","order":4,"createdAt":"2016-08-17T20:22:05.371Z","title":"Other Install Notes and Updates","type":"basic","category":"64c14ec8f2680d15b2982b22","api":{"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"method":"get","examples":{"codes":[]}},"isReference":false,"link_external":false,"parentDoc":"64c14ec8f2680d15b2982b63","slug":"install-guide","sync_unique":"","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b64","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[]},"title":"Integrations for Codecov Self-Hosted","type":"basic","slug":"integrations-for-codecov-self-hosted","order":2,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","createdAt":"2021-01-08T20:20:14.613Z","category":"64c14ec8f2680d15b2982b22","parentDoc":null,"deprecated":false,"icon":"","isBodyEmpty":false,"children":[{"_id":"64c14ec8f2680d15b2982b59","createdAt":"2019-08-29T14:07:07.078Z","category":"64c14ec8f2680d15b2982b22","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get","examples":{"codes":[]}},"isReference":false,"order":0,"slug":"how-to-create-a-github-app-for-codecov-enterprise","type":"basic","title":"GitHub App Integration for Codecov Self-Hosted","parentDoc":"64c14ec8f2680d15b2982b64","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b4a","order":5,"sync_unique":"","api":{"params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"code":"{}","language":"json","status":400,"name":""}]},"settings":"","url":"","apiSetting":null,"auth":"required","method":"get","examples":{"codes":[]}},"link_external":false,"link_url":"","slug":"frequently-asked-questions-1","hidden":false,"parentDoc":null,"createdAt":"2016-08-18T11:05:53.247Z","isReference":false,"category":"64c14ec8f2680d15b2982b22","title":"Frequently Asked Questions - Self-Hosted","type":"basic","previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":false,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b23","sync":{"isSync":false,"url":""},"order":7,"slug":"site","title":"Site","__v":0,"version":"64c14ec8f2680d15b2982bc4","project":"57b33b5ec9a4551700b969a5","reference":false,"createdAt":"2016-08-17T11:24:07.809Z","from_sync":false,"pages":[{"_id":"64c14ec8f2680d15b2982b3b","category":"64c14ec8f2680d15b2982b23","link_external":false,"title":"Privacy Policy","hidden":false,"parentDoc":null,"slug":"privacy-policy","sync_unique":"","type":"link","api":{"apiSetting":null,"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","method":"get"},"createdAt":"2016-08-17T11:24:33.182Z","isReference":false,"link_url":"https://about.codecov.io/privacy/","order":0,"previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982b3d","order":1,"link_url":"https://about.codecov.io/security/","parentDoc":null,"type":"link","createdAt":"2016-08-17T11:25:14.040Z","category":"64c14ec8f2680d15b2982b23","slug":"security-policy","sync_unique":"","title":"Security Policy","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":"","apiSetting":null,"auth":"required","params":[],"method":"get"},"hidden":false,"isReference":false,"link_external":false,"previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982b3c","category":"64c14ec8f2680d15b2982b23","title":"Terms of Use","slug":"terms-of-use","type":"link","hidden":false,"isReference":false,"link_external":false,"link_url":"https://about.codecov.io/terms-and-conditions/","api":{"params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"status":400,"name":"","code":"{}","language":"json"}]},"settings":"","url":"","apiSetting":null,"auth":"required","method":"get"},"createdAt":"2016-08-17T11:24:49.887Z","sync_unique":"","order":3,"parentDoc":null,"previousSlug":"","deprecated":false,"icon":"","isBodyEmpty":true,"children":[]}]}],"refs":[{"_id":"64c14ec8f2680d15b2982b29","title":"Codecov API","slug":"codecov-api","order":9999,"reference":true,"project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","createdAt":"2023-04-06T22:35:54.809Z","__v":0,"pages":[{"_id":"64c14ec8f2680d15b2982b97","api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"title":"Getting Started","icon":"","type":"basic","slug":"overview","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-01-30T14:32:28.231Z","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"64c14ec8f2680d15b2982b9e","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Users","icon":"","type":"basic","slug":"users","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Users","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.787Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982ba7","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Service owners","icon":"","type":"endpoint","slug":"root_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"root_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.489Z","parentDoc":"64c14ec8f2680d15b2982b9e","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982ba8","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Owner detail","icon":"","type":"endpoint","slug":"root_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"root_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.490Z","parentDoc":"64c14ec8f2680d15b2982b9e","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"66fc437ed967d70030aa9129","mdx":{},"api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"User session list","icon":"","type":"endpoint","slug":"user_sessions_list","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"user_sessions_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-10-01T18:46:22.265Z","parentDoc":"64c14ec8f2680d15b2982b9e","isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bbd","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"User list","icon":"","type":"endpoint","slug":"users_list","order":3,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"users_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.504Z","parentDoc":"64c14ec8f2680d15b2982b9e","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"66981076d98e6800126b4195","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"User detail","icon":"","type":"endpoint","slug":"users_retrieve","order":4,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"users_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-07-17T18:41:58.312Z","parentDoc":"64c14ec8f2680d15b2982b9e","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"67509e4a8e129a0010e0f2f3","mdx":{},"api":{"method":"patch","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Update a user","icon":"","type":"endpoint","slug":"users_partial_update","order":5,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"users_partial_update","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-12-04T18:24:10.760Z","parentDoc":"64c14ec8f2680d15b2982b9e","isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982b9f","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Repos","icon":"","type":"basic","slug":"repos","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Repos","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.788Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982ba9","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Repository list","icon":"","type":"endpoint","slug":"repos_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.491Z","parentDoc":"64c14ec8f2680d15b2982b9f","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982baa","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Repository detail","icon":"","type":"endpoint","slug":"repos_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.492Z","parentDoc":"64c14ec8f2680d15b2982b9f","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb4","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Repository config","icon":"","type":"endpoint","slug":"repos_config_retrieve","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_config_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.498Z","parentDoc":"64c14ec8f2680d15b2982b9f","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba0","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Branches","icon":"","type":"basic","slug":"branches","order":3,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Branches","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.788Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bab","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Branch list","icon":"","type":"endpoint","slug":"repos_branches_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_branches_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.493Z","parentDoc":"64c14ec8f2680d15b2982ba0","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bac","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Branch detail","icon":"","type":"endpoint","slug":"repos_branches_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_branches_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.493Z","parentDoc":"64c14ec8f2680d15b2982ba0","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba1","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commits","icon":"","type":"basic","slug":"commits","order":4,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Commits","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.789Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bad","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commit list","icon":"","type":"endpoint","slug":"repos_commits_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_commits_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.494Z","parentDoc":"64c14ec8f2680d15b2982ba1","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bae","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commit detail","icon":"","type":"endpoint","slug":"repos_commits_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_commits_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.494Z","parentDoc":"64c14ec8f2680d15b2982ba1","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"6628098ba9b3ae0011703639","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commit uploads","icon":"","type":"endpoint","slug":"repos_commits_uploads_list","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_commits_uploads_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-04-23T19:18:35.025Z","parentDoc":"64c14ec8f2680d15b2982ba1","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba2","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Comparison","icon":"","type":"basic","slug":"comparison","order":5,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Comparison","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.789Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982baf","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Comparison","icon":"","type":"endpoint","slug":"repos_compare_retrieve","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.495Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb0","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Component comparison","icon":"","type":"endpoint","slug":"repos_compare_components_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_components_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.495Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb1","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"File comparison","icon":"","type":"endpoint","slug":"repos_compare_file_retrieve","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_file_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.496Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb2","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Flag comparison","icon":"","type":"endpoint","slug":"repos_compare_flags_retrieve","order":3,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_flags_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.497Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"6628098ba9b3ae001170363a","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Impacted files comparison","icon":"","type":"endpoint","slug":"repos_compare_impacted_files_retrieve","order":4,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_impacted_files_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-04-23T19:18:35.027Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"6628098ba9b3ae001170363b","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Segmented file comparison","icon":"","type":"endpoint","slug":"repos_compare_segments_retrieve","order":5,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_compare_segments_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-04-23T19:18:35.028Z","parentDoc":"64c14ec8f2680d15b2982ba2","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba3","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Components","icon":"","type":"basic","slug":"components-1","order":6,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Components","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.789Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bb3","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Component list","icon":"","type":"endpoint","slug":"repos_components_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_components_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.497Z","parentDoc":"64c14ec8f2680d15b2982ba3","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba4","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Coverage","icon":"","type":"basic","slug":"coverage","order":7,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Coverage","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.790Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bb5","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Coverage trend","icon":"","type":"endpoint","slug":"repos_coverage_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_coverage_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.499Z","parentDoc":"64c14ec8f2680d15b2982ba4","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb6","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"File coverage report","icon":"","type":"endpoint","slug":"repos_file_report_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_file_report_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.500Z","parentDoc":"64c14ec8f2680d15b2982ba4","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bbb","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commit coverage report","icon":"","type":"endpoint","slug":"repos_report_retrieve","order":2,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_report_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.503Z","parentDoc":"64c14ec8f2680d15b2982ba4","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"6628098ba9b3ae001170363c","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Coverage report tree","icon":"","type":"endpoint","slug":"repos_report_tree_retrieve","order":3,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_report_tree_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-04-23T19:18:35.031Z","parentDoc":"64c14ec8f2680d15b2982ba4","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bbc","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Commit coverage totals","icon":"","type":"endpoint","slug":"repos_totals_retrieve","order":4,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_totals_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.503Z","parentDoc":"64c14ec8f2680d15b2982ba4","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba5","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Flags","icon":"","type":"basic","slug":"flags-1","order":8,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Flags","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.790Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bb7","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Flag list","icon":"","type":"endpoint","slug":"repos_flags_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_flags_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.500Z","parentDoc":"64c14ec8f2680d15b2982ba5","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bb8","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Coverage trend","icon":"","type":"endpoint","slug":"repos_flags_coverage_list","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_flags_coverage_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.501Z","parentDoc":"64c14ec8f2680d15b2982ba5","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"64c14ec8f2680d15b2982ba6","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Pulls","icon":"","type":"basic","slug":"pulls","order":9,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Pulls","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:55.790Z","parentDoc":null,"mdx":{},"isBodyEmpty":true,"children":[{"_id":"64c14ec8f2680d15b2982bb9","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Pull list","icon":"","type":"endpoint","slug":"repos_pulls_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_pulls_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.502Z","parentDoc":"64c14ec8f2680d15b2982ba6","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"64c14ec8f2680d15b2982bba","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Pull detail","icon":"","type":"endpoint","slug":"repos_pulls_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_pulls_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2023-04-06T22:35:57.502Z","parentDoc":"64c14ec8f2680d15b2982ba6","mdx":{},"isBodyEmpty":true,"children":[]}]},{"_id":"66981076d98e6800126b4191","api":{"method":"get","url":"","auth":"required","params":[],"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Test Results","icon":"","type":"basic","slug":"test-results","order":10,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"tag__Test Results","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-07-17T18:41:58.122Z","mdx":{},"isBodyEmpty":true,"children":[{"_id":"66981076d98e6800126b4193","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Test results list","icon":"","type":"endpoint","slug":"repos_test_results_list","order":0,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_test_results_list","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-07-17T18:41:58.310Z","parentDoc":"66981076d98e6800126b4191","mdx":{},"isBodyEmpty":true,"children":[]},{"_id":"66981076d98e6800126b4194","api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[]},"apiSetting":"64c14ec8f2680d15b2982b21"},"title":"Test results detail","icon":"","type":"endpoint","slug":"repos_test_results_retrieve","order":1,"isReference":true,"deprecated":false,"hidden":false,"sync_unique":"repos_test_results_retrieve","link_url":"","link_external":false,"previousSlug":"","category":"64c14ec8f2680d15b2982b29","createdAt":"2024-07-17T18:41:58.311Z","parentDoc":"66981076d98e6800126b4191","mdx":{},"isBodyEmpty":true,"children":[]}]}]}]},"apiBaseUrl":"/","baseUrl":"/","search":{"appId":"T28YKFATPY","searchApiKey":"MTg5M2Y2NzAwNzgzOTJlZjIyY2VmNmI4MjNiNmIyMTA5ODIzYWNjOTRmMTI2NTMwZDc5NTEyZGZiMTA2OGEwMnRhZ0ZpbHRlcnM9KHByb2plY3Q6NTdiMzNiNWVjOWE0NTUxNzAwYjk2OWE1KSwodmVyc2lvbjpub25lLHZlcnNpb246NjRjMTRlYzhmMjY4MGQxNWIyOTgyYmM0KSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpQYWdlLGluZGV4OkJsb2cp","indexName":"readme_search_v2","projectsMeta":[{"modules":{"suggested_edits":true,"discuss":false,"docs":true,"examples":true,"landing":false,"reference":true,"logs":false,"changelog":true,"custompages":false,"tutorials":false,"graphql":false},"id":"57b33b5ec9a4551700b969a5","name":"Codecov","subdomain":"codecov","subpath":"","nav_names":{"discuss":"Discussion","docs":"","reference":"API Endpoints","changelog":"Changelog","tutorials":"","recipes":""}}],"UrlManager":{"options":{"child":false,"parent":null,"hasOneChild":false,"project":null,"version":null,"lang":"en"},"defaults":{"lang":"en"}},"urlManagerOpts":{"lang":"en","parent":{"childrenProjects":[]},"project":{"subdomain":"codecov"},"version":"2023"}},"activeDoc":"codecov-uploader","rdmd":{"baseUrl":"/","body":"## Introduction\n\nCodecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. \n\n> ℹ️ Update on the Bash and Node Uploader\n> \n> With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we're no longer adding more features to the Bash and Node uploaders moving forward. Any functional bugs on those would be fixed exclusively to the CLI moving forward.\n> \n> We will still endeavour to patch critical security fixes to the Node Uploader, but we highly encourage people using the Bash and Node Uploader to plan on moving to use the Codecov CLI.\n\n## Using the CLI\n\n### Using the CLI to upload reports with codecov.io (Cloud)\n\nThe first step is to download the CLI. You can use our dedicated wrappers, or invoke things yourself in CI.\n\n> 👍 Dedicated wrappers for the Codecov CLI\n> \n> Avoid setup time and use a build pipeline-specific wrapper to the uploader to automatically ingest and run the CLI:\n> \n> [Codecov's Github Action](https://github.com/marketplace/actions/codecov) \n> [Codecov's CircleCI Orb](https://circleci.com/developer/orbs/orb/codecov/codecov) \n> [Codecov's Bitrise Step](https://devcenter.bitrise.io/en/testing/measuring-your-code-coverage-with-codecov.html#integrating-codecov-with-bitrise) \n> \n> These wrappers all include integrity checking via SHASUM verification.\n\n> 🚧 It is Highly Recommended to Integrity Check the CLI\n> \n> While the snippets below can be used to download and use the CLI directly, it is highly recommended to perform signature and SHASUM verification to ensure integrity of the CLI before use. See **[Integrity Checking the Uploader](https://docs.codecov.com/docs/codecov-uploader#integrity-checking-the-codecov-cli)** below for more information.\n\n#### Download Using Pip\n\nTo use `codecov-cli` in your local machine, or your CI workflows, you need to install it:\n\n```coffeescript python\npip install codecov-cli\n```\n\nThe above command will download the latest version of `codecov-cli`. If you wish to use a specific version, releases can be viewed [here](https://pypi.org/project/codecov-cli/#history). Note, the Codecov CLI expects to be run in the checked out repos, on a machine with `git` installed.\n\nYour default will need to be `Python3` in order to make this work.\n\nNote: If you're installing in a `pytest` environment, you may need to call `pytest rehash` before the CLI will work.\n\n> 📘 The version installed with pip has a different name\n> \n> Please note that the name of the CLI executable is `codecovcli` when it has been installed with pip\n\n#### Download As a Binary\n\nFor Codecov Cloud users, the CLI can be invoked as follows: \n\n```shell Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux/codecov\nsudo chmod +x codecov\n```\n```shell Alpine Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine/codecov\nsudo chmod +x codecov\n./codecov --help\n```\n```shell macOS\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/macos/codecov\nsudo chmod +x codecov\n./codecov --help\n```\n```powershell Windows\n#download Codecov CLI\n$ProgressPreference = 'SilentlyContinue' \nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe \n-Outfile codecov.exe .\\codecov.exe\n```\n```shell Linux ARM64\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\nsudo chmod +x codecov\n```\n```shell Alpine Linux Arm64\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\nsudo chmod +x codecov\n```\n\nThe above commands will download the latest version of the CLI. If you wish to use a specific version of the CLI, releases can be viewed per distribution here:[ https://cli.codecov.io/](https://cli.codecov.io/) . Note, the Codecov CLI expects to be run in the checked out repos, on a machine with git installed.\n\nPinning to a particular version requires replacing \"latest\" in the curl command with the specific version numbers, as follows:\n\n```shell Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/v0.4.4/linux/codecov\nsudo chmod +x codecov\n```\n\n#### Uploading coverage reports to Codecov\n\nAdd the following snippet after your tests have run and a [coverage report](https://docs.codecov.com/docs/supported-report-formats) has been generated.\n\nHere, we will upload the test report called `coverage-service.xml`, we are passing in the flag called \"service\" and a dynamic name to specify a specific test run (it will be useful to see in the Codecov UI). We are using some optional params like `--verbose` and `--fail-on-error` and `--disable-search`.\n\nNote: the most important param that you must pass in this case is an [upload token](https://docs.codecov.com/docs/codecov-tokens). A token can be passed to the CLI via the `$CODECOV_TOKEN` environment variable or the `-t` command line argument as shown below.\n\n```asp shell\n./codecov --verbose upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml\n```\n\nFor information about uploading reports to Codecov without a token, see [the documentation for Codecov tokens](https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token).\n\n### Self-Hosted Use of the CLI\n\nNote that for Codecov Self-Hosted the Self-Hosted URL will need to be included in the upload command via the `--enterprise-url` parameter. An example:\n\n```shell Linux\n# here we upload the test report called coverage-service.xml, we are passing \n# in the flag called \"service\" and a dyncamic name to specify a specifc test run\n# we are using some options params like --verbose and --fail-on-error\n# the most important that you must pass in this case is the actual upload token\n# NOTE: we are adding a parameter for the self-hosted URL\n\n./codecov --verbose --enterprise-url https://<your-codecov-self-hosted-url> upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml \n```\n\n## Integrity Checking the Codecov CLI\n\nThe Codecov CLI can be integrity checked against a known GPG key signature, and can also have its contents checked via SHASUM. While performing these two checks is optional, it is highly recommended to do so. By checking the GPG signature and the SHASUM of the uploader, users can be much more confident in the overall integrity of the downloaded file. \n\nAt a high level, to integrity check the new Uploader, one must:\n\n1. Import the Codecov PGP public key (one-time step). The Codecov PGP public key can be retrieved from Keybase or many other keyservers. Key ID: `ED779869` Key Fingerprint: `2703 4E7F DB85 0E0B BC2C 62FF 806B B28A ED77 9869`\n2. Download the Uploader, SHA256SUM, and SHA256SUM.sig files for your particular distribution\n3. Verify the SHA256SUM file is signed using Codecov’s PGP key\n4. Verify the SHA256SUM in the file matches the CLI\n\nThe following example performs these steps for each distribution of the Uploader's latest version before using the Uploader to upload a coverage report:\n\n> 🚧 Alpine Linux may Require Additional Dependencies\n> \n> If the following commands fail when using Alpine Linux, you may need to run: `apk add curl gnupg coreutils`\n\n> 🚧 Windows may Require Additional Dependencies\n> \n> If `gpg.exe` is not already installed on your system, you can download the Windows GPG client from: <https://gnupg.org/download/>\n\nFor systems running `gpg`>= `2.4.3`:\n\n```shell Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux/codecov\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell Alpine Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine/codecov\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell macOS\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```powershell Windows\n$ProgressPreference = 'SilentlyContinue'\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], \"codecov.exe\") -join \" \") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo \"SHASUM verified\" } Else {exit 1}\n```\n```shell Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell Alpine Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n\nFor those running `gpg` \\< `2.4.3`: \n\n```shell Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n```\n```shell Alpine Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n```\n```shell macOS\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nsudo chmod +x codecov\n./codecov --help\n./codecov -t ${CODECOV_TOKEN}\n```\n```powershell Windows\n$ProgressPreference = 'SilentlyContinue'\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], \"codecov.exe\") -join \" \") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo \"SHASUM verified\" } Else {exit 1}\n```\n```shell Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n```\n```shell Alpine Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n```\n\nTo check your `gpg` version, run\n\n```shell\ngpg --version\n```\n\n## Fetching Version Specific Metadata\n\nMetadata can be fetched for a particular release of the Uploader (including `latest`) as follows:\n\n```curl\ncurl -H \"Accept: application/json\" https://cli.codecov.io/alpine/latest | jq\n```\n\nWhich will return a JSON response of the following form:\n\n```json\n{\n \"artifact\": {\n \"distro\": \"linux\",\n \"file\": \"codecovcli_linux\",\n \"full_version\": \"v0.4.4\",\n \"created_at\": \"2024-01-11 16:36:06\",\n \"version\": \"v0.4.4\",\n \"hash\": \"e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2\"\n },\n \"link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov\",\n \"file_hash_link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM\",\n \"file_sig_link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM.sig\",\n \"github_release_link\": \"https:\\/\\/github.com\\/codecov\\/codecov-cli\\/releases\\/tag\\/v0.4.4\",\n \"hash\": \"e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2\",\n \"version\": \"v0.4.4\",\n \"full_version\": \"v0.4.4\"\n}\n```\n\nThe response contains meta information about the particular version in the `artifact` object, include the distro and the commit SHA of the release. Links to distributions of the particular version are also provided. \n\nWhile this is generally useful, the most obvious use case is leveraging this metadata to setup a vendoring pipeline that fetches and verifies `latest` whenever it updates and stores this verified version of the CLI in an private CDN, filestore, or other storage apparatus.\n\n## Uploader Command Line Arguments\n\nThe Codecov CLI is an exciting way to interact with new Codecov features. In order to find more options on how to upload using the CLI, please review [CLI Options](https://docs.codecov.com/docs/cli-options)","dehydrated":{"toc":"<nav><ul class=\"toc-list\"><li><a class=\"tocHeader\" href=\"#\"><i class=\"icon icon-text-align-left\"></i>Table of Contents</a></li><li class=\"toc-children\"><ul>\n<li>\n<a href=\"#introduction\">Introduction</a>\n</li>\n<li>\n<a href=\"#using-the-cli\">Using the CLI</a>\n<ul>\n<li><a href=\"#using-the-cli-to-upload-reports-with-codecovio-cloud\">Using the CLI to upload reports with codecov.io (Cloud)</a></li>\n<li><a href=\"#self-hosted-use-of-the-cli\">Self-Hosted Use of the CLI</a></li>\n</ul>\n</li>\n<li>\n<a href=\"#integrity-checking-the-codecov-cli\">Integrity Checking the Codecov CLI</a>\n</li>\n<li>\n<a href=\"#fetching-version-specific-metadata\">Fetching Version Specific Metadata</a>\n</li>\n<li>\n<a href=\"#uploader-command-line-arguments\">Uploader Command Line Arguments</a>\n</li>\n</ul></li></ul></nav>","body":"<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"introduction\"></div><div class=\"heading-text\"><div id=\"section-introduction\" class=\"heading-anchor_backwardsCompatibility\"></div>Introduction</div><a aria-label=\"Skip link to Introduction\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#introduction\"></a></h2>\n<p>Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. </p>\n<blockquote class=\"callout callout_info\" theme=\"ℹ️\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">ℹ️</span><p>Update on the Bash and Node Uploader</p></h2><p>With the introduction of the CLI we&#x27;re upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we&#x27;re no longer adding more features to the Bash and Node uploaders moving forward. Any functional bugs on those would be fixed exclusively to the CLI moving forward.</p><p>We will still endeavour to patch critical security fixes to the Node Uploader, but we highly encourage people using the Bash and Node Uploader to plan on moving to use the Codecov CLI.</p></blockquote>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"using-the-cli\"></div><div class=\"heading-text\"><div id=\"section-using-the-cli\" class=\"heading-anchor_backwardsCompatibility\"></div>Using the CLI</div><a aria-label=\"Skip link to Using the CLI\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#using-the-cli\"></a></h2>\n<h3 class=\"heading heading-3 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"using-the-cli-to-upload-reports-with-codecovio-cloud\"></div><div class=\"heading-text\"><div id=\"section-using-the-cli-to-upload-reports-with-codecov-io-cloud\" class=\"heading-anchor_backwardsCompatibility\"></div>Using the CLI to upload reports with codecov.io (Cloud)</div><a aria-label=\"Skip link to Using the CLI to upload reports with codecov.io (Cloud)\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#using-the-cli-to-upload-reports-with-codecovio-cloud\"></a></h3>\n<p>The first step is to download the CLI. You can use our dedicated wrappers, or invoke things yourself in CI.</p>\n<blockquote class=\"callout callout_okay\" theme=\"👍\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">👍</span><p>Dedicated wrappers for the Codecov CLI</p></h2><p>Avoid setup time and use a build pipeline-specific wrapper to the uploader to automatically ingest and run the CLI:</p><p><a href=\"https://github.com/marketplace/actions/codecov\" target=\"\" title=\"\">Codecov&#x27;s Github Action</a><br/>\n<a href=\"https://circleci.com/developer/orbs/orb/codecov/codecov\" target=\"\" title=\"\">Codecov&#x27;s CircleCI Orb</a><br/>\n<a href=\"https://devcenter.bitrise.io/en/testing/measuring-your-code-coverage-with-codecov.html#integrating-codecov-with-bitrise\" target=\"\" title=\"\">Codecov&#x27;s Bitrise Step</a> </p><p>These wrappers all include integrity checking via SHASUM verification.</p></blockquote>\n<blockquote class=\"callout callout_warn\" theme=\"🚧\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">🚧</span><p>It is Highly Recommended to Integrity Check the CLI</p></h2><p>While the snippets below can be used to download and use the CLI directly, it is highly recommended to perform signature and SHASUM verification to ensure integrity of the CLI before use. See <strong><a href=\"https://docs.codecov.com/docs/codecov-uploader#integrity-checking-the-codecov-cli\" target=\"\" title=\"\">Integrity Checking the Uploader</a></strong> below for more information.</p></blockquote>\n<h4 class=\"heading heading-4 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"download-using-pip\"></div><div class=\"heading-text\"><div id=\"section-download-using-pip\" class=\"heading-anchor_backwardsCompatibility\"></div>Download Using Pip</div><a aria-label=\"Skip link to Download Using Pip\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#download-using-pip\"></a></h4>\n<p>To use <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">codecov-cli</code> in your local machine, or your CI workflows, you need to install it:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">python</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-coffeescript theme-light\" data-lang=\"coffeescript\" name=\"python\" tabindex=\"0\">pip install codecov-cli\n</code></pre></div></div>\n<p>The above command will download the latest version of <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">codecov-cli</code>. If you wish to use a specific version, releases can be viewed <a href=\"https://pypi.org/project/codecov-cli/#history\" target=\"\" title=\"\">here</a>. Note, the Codecov CLI expects to be run in the checked out repos, on a machine with <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">git</code> installed.</p>\n<p>Your default will need to be <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">Python3</code> in order to make this work.</p>\n<p>Note: If you&#x27;re installing in a <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">pytest</code> environment, you may need to call <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">pytest rehash</code> before the CLI will work.</p>\n<blockquote class=\"callout callout_info\" theme=\"📘\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">📘</span><p>The version installed with pip has a different name</p></h2><p>Please note that the name of the CLI executable is <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">codecovcli</code> when it has been installed with pip</p></blockquote>\n<h4 class=\"heading heading-4 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"download-as-a-binary\"></div><div class=\"heading-text\"><div id=\"section-download-as-a-binary\" class=\"heading-anchor_backwardsCompatibility\"></div>Download As a Binary</div><a aria-label=\"Skip link to Download As a Binary\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#download-as-a-binary\"></a></h4>\n<p>For Codecov Cloud users, the CLI can be invoked as follows: </p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">macOS</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Windows</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Linux ARM64</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux Arm64</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux/codecov\nsudo chmod +x codecov\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine/codecov\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"macOS\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/macos/codecov\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-powershell theme-light\" data-lang=\"powershell\" name=\"Windows\" tabindex=\"0\">#download Codecov CLI\n$ProgressPreference = &#x27;SilentlyContinue&#x27; \nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe \n-Outfile codecov.exe .\\codecov.exe\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux ARM64\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\nsudo chmod +x codecov\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux Arm64\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\nsudo chmod +x codecov\n</code></pre></div></div>\n<p>The above commands will download the latest version of the CLI. If you wish to use a specific version of the CLI, releases can be viewed per distribution here:<a href=\"https://cli.codecov.io/\" target=\"\" title=\"\"> https://cli.codecov.io/</a> . Note, the Codecov CLI expects to be run in the checked out repos, on a machine with git installed.</p>\n<p>Pinning to a particular version requires replacing &quot;latest&quot; in the curl command with the specific version numbers, as follows:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Linux</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux\" tabindex=\"0\">#download Codecov CLI\ncurl -Os https://cli.codecov.io/v0.4.4/linux/codecov\nsudo chmod +x codecov\n</code></pre></div></div>\n<h4 class=\"heading heading-4 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"uploading-coverage-reports-to-codecov\"></div><div class=\"heading-text\"><div id=\"section-uploading-coverage-reports-to-codecov\" class=\"heading-anchor_backwardsCompatibility\"></div>Uploading coverage reports to Codecov</div><a aria-label=\"Skip link to Uploading coverage reports to Codecov\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#uploading-coverage-reports-to-codecov\"></a></h4>\n<p>Add the following snippet after your tests have run and a <a href=\"https://docs.codecov.com/docs/supported-report-formats\" target=\"\" title=\"\">coverage report</a> has been generated.</p>\n<p>Here, we will upload the test report called <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">coverage-service.xml</code>, we are passing in the flag called &quot;service&quot; and a dynamic name to specify a specific test run (it will be useful to see in the Codecov UI). We are using some optional params like <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">--verbose</code> and <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">--fail-on-error</code> and <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">--disable-search</code>.</p>\n<p>Note: the most important param that you must pass in this case is an <a href=\"https://docs.codecov.com/docs/codecov-tokens\" target=\"\" title=\"\">upload token</a>. A token can be passed to the CLI via the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">$CODECOV_TOKEN</code> environment variable or the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">-t</code> command line argument as shown below.</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">shell</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-asp theme-light\" data-lang=\"asp\" name=\"shell\" tabindex=\"0\">./codecov --verbose upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n &#x27;service&#x27;-${{ github.run_id }} -F service -f coverage-service.xml\n</code></pre></div></div>\n<p>For information about uploading reports to Codecov without a token, see <a href=\"https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token\" target=\"\" title=\"\">the documentation for Codecov tokens</a>.</p>\n<h3 class=\"heading heading-3 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"self-hosted-use-of-the-cli\"></div><div class=\"heading-text\"><div id=\"section-self-hosted-use-of-the-cli\" class=\"heading-anchor_backwardsCompatibility\"></div>Self-Hosted Use of the CLI</div><a aria-label=\"Skip link to Self-Hosted Use of the CLI\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#self-hosted-use-of-the-cli\"></a></h3>\n<p>Note that for Codecov Self-Hosted the Self-Hosted URL will need to be included in the upload command via the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">--enterprise-url</code> parameter. An example:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Linux</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux\" tabindex=\"0\"># here we upload the test report called coverage-service.xml, we are passing \n# in the flag called &quot;service&quot; and a dyncamic name to specify a specifc test run\n# we are using some options params like --verbose and --fail-on-error\n# the most important that you must pass in this case is the actual upload token\n# NOTE: we are adding a parameter for the self-hosted URL\n\n./codecov --verbose --enterprise-url https://&lt;your-codecov-self-hosted-url&gt; upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n &#x27;service&#x27;-${{ github.run_id }} -F service -f coverage-service.xml \n</code></pre></div></div>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"integrity-checking-the-codecov-cli\"></div><div class=\"heading-text\"><div id=\"section-integrity-checking-the-codecov-cli\" class=\"heading-anchor_backwardsCompatibility\"></div>Integrity Checking the Codecov CLI</div><a aria-label=\"Skip link to Integrity Checking the Codecov CLI\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#integrity-checking-the-codecov-cli\"></a></h2>\n<p>The Codecov CLI can be integrity checked against a known GPG key signature, and can also have its contents checked via SHASUM. While performing these two checks is optional, it is highly recommended to do so. By checking the GPG signature and the SHASUM of the uploader, users can be much more confident in the overall integrity of the downloaded file. </p>\n<p>At a high level, to integrity check the new Uploader, one must:</p>\n<ol>\n<li>Import the Codecov PGP public key (one-time step). The Codecov PGP public key can be retrieved from Keybase or many other keyservers. Key ID: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">ED779869</code> Key Fingerprint: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">2703 4E7F DB85 0E0B BC2C 62FF 806B B28A ED77 9869</code></li>\n<li>Download the Uploader, SHA256SUM, and SHA256SUM.sig files for your particular distribution</li>\n<li>Verify the SHA256SUM file is signed using Codecov’s PGP key</li>\n<li>Verify the SHA256SUM in the file matches the CLI</li>\n</ol>\n<p>The following example performs these steps for each distribution of the Uploader&#x27;s latest version before using the Uploader to upload a coverage report:</p>\n<blockquote class=\"callout callout_warn\" theme=\"🚧\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">🚧</span><p>Alpine Linux may Require Additional Dependencies</p></h2><p>If the following commands fail when using Alpine Linux, you may need to run: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">apk add curl gnupg coreutils</code></p></blockquote>\n<blockquote class=\"callout callout_warn\" theme=\"🚧\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">🚧</span><p>Windows may Require Additional Dependencies</p></h2><p>If <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">gpg.exe</code> is not already installed on your system, you can download the Windows GPG client from: <a href=\"https://gnupg.org/download/\" target=\"\" title=\"\">https://gnupg.org/download/</a></p></blockquote>\n<p>For systems running <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">gpg</code>&gt;= <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">2.4.3</code>:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">macOS</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Windows</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Linux Arm64</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux Arm64</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux/codecov\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine/codecov\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"macOS\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-powershell theme-light\" data-lang=\"powershell\" name=\"Windows\" tabindex=\"0\">$ProgressPreference = &#x27;SilentlyContinue&#x27;\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], &quot;codecov.exe&quot;) -join &quot; &quot;) -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo &quot;SHASUM verified&quot; } Else {exit 1}\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux Arm64\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux Arm64\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n</code></pre></div></div>\n<p>For those running <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">gpg</code> &lt; <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">2.4.3</code>: </p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">macOS</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Windows</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Linux Arm64</button><button aria-selected=\"false\" class=\"\" role=\"tab\" type=\"button\">Alpine Linux Arm64</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"macOS\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nsudo chmod +x codecov\n./codecov --help\n./codecov -t ${CODECOV_TOKEN}\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-powershell theme-light\" data-lang=\"powershell\" name=\"Windows\" tabindex=\"0\">$ProgressPreference = &#x27;SilentlyContinue&#x27;\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], &quot;codecov.exe&quot;) -join &quot; &quot;) -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo &quot;SHASUM verified&quot; } Else {exit 1}\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Linux Arm64\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n</code></pre><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"Alpine Linux Arm64\" tabindex=\"0\">curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n</code></pre></div></div>\n<p>To check your <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">gpg</code> version, run</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Shell</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"\" tabindex=\"0\">gpg --version\n</code></pre></div></div>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"fetching-version-specific-metadata\"></div><div class=\"heading-text\"><div id=\"section-fetching-version-specific-metadata\" class=\"heading-anchor_backwardsCompatibility\"></div>Fetching Version Specific Metadata</div><a aria-label=\"Skip link to Fetching Version Specific Metadata\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#fetching-version-specific-metadata\"></a></h2>\n<p>Metadata can be fetched for a particular release of the Uploader (including <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">latest</code>) as follows:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">cURL</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-curl theme-light\" data-lang=\"curl\" name=\"\" tabindex=\"0\">curl -H &quot;Accept: application/json&quot; https://cli.codecov.io/alpine/latest | jq\n</code></pre></div></div>\n<p>Which will return a JSON response of the following form:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">JSON</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-json theme-light\" data-lang=\"json\" name=\"\" tabindex=\"0\">{\n &quot;artifact&quot;: {\n &quot;distro&quot;: &quot;linux&quot;,\n &quot;file&quot;: &quot;codecovcli_linux&quot;,\n &quot;full_version&quot;: &quot;v0.4.4&quot;,\n &quot;created_at&quot;: &quot;2024-01-11 16:36:06&quot;,\n &quot;version&quot;: &quot;v0.4.4&quot;,\n &quot;hash&quot;: &quot;e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2&quot;\n },\n &quot;link&quot;: &quot;https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov&quot;,\n &quot;file_hash_link&quot;: &quot;https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM&quot;,\n &quot;file_sig_link&quot;: &quot;https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM.sig&quot;,\n &quot;github_release_link&quot;: &quot;https:\\/\\/github.com\\/codecov\\/codecov-cli\\/releases\\/tag\\/v0.4.4&quot;,\n &quot;hash&quot;: &quot;e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2&quot;,\n &quot;version&quot;: &quot;v0.4.4&quot;,\n &quot;full_version&quot;: &quot;v0.4.4&quot;\n}\n</code></pre></div></div>\n<p>The response contains meta information about the particular version in the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">artifact</code> object, include the distro and the commit SHA of the release. Links to distributions of the particular version are also provided. </p>\n<p>While this is generally useful, the most obvious use case is leveraging this metadata to setup a vendoring pipeline that fetches and verifies <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">latest</code> whenever it updates and stores this verified version of the CLI in an private CDN, filestore, or other storage apparatus.</p>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"uploader-command-line-arguments\"></div><div class=\"heading-text\"><div id=\"section-uploader-command-line-arguments\" class=\"heading-anchor_backwardsCompatibility\"></div>Uploader Command Line Arguments</div><a aria-label=\"Skip link to Uploader Command Line Arguments\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#uploader-command-line-arguments\"></a></h2>\n<p>The Codecov CLI is an exciting way to interact with new Codecov features. In order to find more options on how to upload using the CLI, please review <a href=\"https://docs.codecov.com/docs/cli-options\" target=\"\" title=\"\">CLI Options</a></p>"},"mdx":false,"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"normalize":true,"lazyImages":true,"reusableContent":{"tags":{}},"safeMode":false,"settings":{"position":true},"theme":"light","customBlocks":{},"resourceID":"64c14ec8f2680d15b2982b67","resourceType":"page","baseUrl":"/","terms":[],"variables":{"user":{},"defaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}]}},"terms":[],"variables":{"user":{},"defaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}]}},"doc":{"metadata":{"image":[],"title":"","description":"","keywords":"","robots":"index"},"mdx":{"altBody":"","status":"rdmd"},"api":{"method":"get","url":"","auth":"required","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"params":[],"examples":{"codes":[]}},"next":{"description":"","pages":[]},"algolia":{"recordCount":10,"publishPending":false,"translationFailure":false,"updatedAt":"2024-10-23T15:14:36.748Z"},"title":"Uploading Reports to Codecov using the Codecov CLI","icon":"","updates":["60d6418ff64ab70077351f8c","60fa2d650aabd40022a368cd","61702672ee3ecf0029e89c5c","618a993df2e8ed02f7923f85","61fc73d22d6bde00431010cd","642b5599eb4db5002672ef2f","64e4acaec80869006c640891","669056fc108f55001278cd6d","66a442ba0ec9c50074cd7b21","66a443ec9d00c000493492e7"],"type":"basic","slug":"codecov-uploader","excerpt":"","body":"## Introduction\n\nCodecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. \n\n> ℹ️ Update on the Bash and Node Uploader\n> \n> With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we're no longer adding more features to the Bash and Node uploaders moving forward. Any functional bugs on those would be fixed exclusively to the CLI moving forward.\n> \n> We will still endeavour to patch critical security fixes to the Node Uploader, but we highly encourage people using the Bash and Node Uploader to plan on moving to use the Codecov CLI.\n\n## Using the CLI\n\n### Using the CLI to upload reports with codecov.io (Cloud)\n\nThe first step is to download the CLI. You can use our dedicated wrappers, or invoke things yourself in CI.\n\n> 👍 Dedicated wrappers for the Codecov CLI\n> \n> Avoid setup time and use a build pipeline-specific wrapper to the uploader to automatically ingest and run the CLI:\n> \n> [Codecov's Github Action](https://github.com/marketplace/actions/codecov) \n> [Codecov's CircleCI Orb](https://circleci.com/developer/orbs/orb/codecov/codecov) \n> [Codecov's Bitrise Step](https://devcenter.bitrise.io/en/testing/measuring-your-code-coverage-with-codecov.html#integrating-codecov-with-bitrise) \n> \n> These wrappers all include integrity checking via SHASUM verification.\n\n> 🚧 It is Highly Recommended to Integrity Check the CLI\n> \n> While the snippets below can be used to download and use the CLI directly, it is highly recommended to perform signature and SHASUM verification to ensure integrity of the CLI before use. See **[Integrity Checking the Uploader](https://docs.codecov.com/docs/codecov-uploader#integrity-checking-the-codecov-cli)** below for more information.\n\n#### Download Using Pip\n\nTo use `codecov-cli` in your local machine, or your CI workflows, you need to install it:\n\n```coffeescript python\npip install codecov-cli\n```\n\nThe above command will download the latest version of `codecov-cli`. If you wish to use a specific version, releases can be viewed [here](https://pypi.org/project/codecov-cli/#history). Note, the Codecov CLI expects to be run in the checked out repos, on a machine with `git` installed.\n\nYour default will need to be `Python3` in order to make this work.\n\nNote: If you're installing in a `pytest` environment, you may need to call `pytest rehash` before the CLI will work.\n\n> 📘 The version installed with pip has a different name\n> \n> Please note that the name of the CLI executable is `codecovcli` when it has been installed with pip\n\n#### Download As a Binary\n\nFor Codecov Cloud users, the CLI can be invoked as follows: \n\n```shell Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux/codecov\nsudo chmod +x codecov\n```\n```shell Alpine Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine/codecov\nsudo chmod +x codecov\n./codecov --help\n```\n```shell macOS\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/macos/codecov\nsudo chmod +x codecov\n./codecov --help\n```\n```powershell Windows\n#download Codecov CLI\n$ProgressPreference = 'SilentlyContinue' \nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe \n-Outfile codecov.exe .\\codecov.exe\n```\n```shell Linux ARM64\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\nsudo chmod +x codecov\n```\n```shell Alpine Linux Arm64\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\nsudo chmod +x codecov\n```\n\nThe above commands will download the latest version of the CLI. If you wish to use a specific version of the CLI, releases can be viewed per distribution here:[ https://cli.codecov.io/](https://cli.codecov.io/) . Note, the Codecov CLI expects to be run in the checked out repos, on a machine with git installed.\n\nPinning to a particular version requires replacing \"latest\" in the curl command with the specific version numbers, as follows:\n\n```shell Linux\n#download Codecov CLI\ncurl -Os https://cli.codecov.io/v0.4.4/linux/codecov\nsudo chmod +x codecov\n```\n\n#### Uploading coverage reports to Codecov\n\nAdd the following snippet after your tests have run and a [coverage report](https://docs.codecov.com/docs/supported-report-formats) has been generated.\n\nHere, we will upload the test report called `coverage-service.xml`, we are passing in the flag called \"service\" and a dynamic name to specify a specific test run (it will be useful to see in the Codecov UI). We are using some optional params like `--verbose` and `--fail-on-error` and `--disable-search`.\n\nNote: the most important param that you must pass in this case is an [upload token](https://docs.codecov.com/docs/codecov-tokens). A token can be passed to the CLI via the `$CODECOV_TOKEN` environment variable or the `-t` command line argument as shown below.\n\n```asp shell\n./codecov --verbose upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml\n```\n\nFor information about uploading reports to Codecov without a token, see [the documentation for Codecov tokens](https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token).\n\n### Self-Hosted Use of the CLI\n\nNote that for Codecov Self-Hosted the Self-Hosted URL will need to be included in the upload command via the `--enterprise-url` parameter. An example:\n\n```shell Linux\n# here we upload the test report called coverage-service.xml, we are passing \n# in the flag called \"service\" and a dyncamic name to specify a specifc test run\n# we are using some options params like --verbose and --fail-on-error\n# the most important that you must pass in this case is the actual upload token\n# NOTE: we are adding a parameter for the self-hosted URL\n\n./codecov --verbose --enterprise-url https://<your-codecov-self-hosted-url> upload-process --disable-search --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} -n 'service'-${{ github.run_id }} -F service -f coverage-service.xml \n```\n\n## Integrity Checking the Codecov CLI\n\nThe Codecov CLI can be integrity checked against a known GPG key signature, and can also have its contents checked via SHASUM. While performing these two checks is optional, it is highly recommended to do so. By checking the GPG signature and the SHASUM of the uploader, users can be much more confident in the overall integrity of the downloaded file. \n\nAt a high level, to integrity check the new Uploader, one must:\n\n1. Import the Codecov PGP public key (one-time step). The Codecov PGP public key can be retrieved from Keybase or many other keyservers. Key ID: `ED779869` Key Fingerprint: `2703 4E7F DB85 0E0B BC2C 62FF 806B B28A ED77 9869`\n2. Download the Uploader, SHA256SUM, and SHA256SUM.sig files for your particular distribution\n3. Verify the SHA256SUM file is signed using Codecov’s PGP key\n4. Verify the SHA256SUM in the file matches the CLI\n\nThe following example performs these steps for each distribution of the Uploader's latest version before using the Uploader to upload a coverage report:\n\n> 🚧 Alpine Linux may Require Additional Dependencies\n> \n> If the following commands fail when using Alpine Linux, you may need to run: `apk add curl gnupg coreutils`\n\n> 🚧 Windows may Require Additional Dependencies\n> \n> If `gpg.exe` is not already installed on your system, you can download the Windows GPG client from: <https://gnupg.org/download/>\n\nFor systems running `gpg`>= `2.4.3`:\n\n```shell Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux/codecov\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell Alpine Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine/codecov\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell macOS\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```powershell Windows\n$ProgressPreference = 'SilentlyContinue'\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], \"codecov.exe\") -join \" \") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo \"SHASUM verified\" } Else {exit 1}\n```\n```shell Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n```shell Alpine Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step \ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\ngpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\nsudo chmod +x codecov\n./codecov --help\n```\n\nFor those running `gpg` \\< `2.4.3`: \n\n```shell Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n```\n```shell Alpine Linux\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n```\n```shell macOS\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\ncurl -Os https://cli.codecov.io/latest/macos/codecov\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM\ncurl -Os https://cli.codecov.io/latest/macos/codecov.SHA256SUM.sig\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nsudo chmod +x codecov\n./codecov --help\n./codecov -t ${CODECOV_TOKEN}\n```\n```powershell Windows\n$ProgressPreference = 'SilentlyContinue'\nInvoke-WebRequest -Uri https://keybase.io/codecovsecurity/pgp_keys.asc -OutFile codecov.asc \ngpg.exe --import codecov.asc\n\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM -Outfile codecov.exe.SHA256SUM\nInvoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe.SHA256SUM.sig -Outfile codecov.exe.SHA256SUM.sig\n\ngpg.exe --verify codecov.exe.SHA256SUM.sig codecov.exe.SHA256SUM\nIf ($(Compare-Object -ReferenceObject $(($(certUtil -hashfile codecov.exe SHA256)[1], \"codecov.exe\") -join \" \") -DifferenceObject $(Get-Content codecov.exe.SHA256SUM)).length -eq 0) { echo \"SHASUM verified\" } Else {exit 1}\n```\n```shell Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/linux-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n```\n```shell Alpine Linux Arm64\ncurl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import # One-time step\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM\n\ncurl -Os https://uploader.codecov.io/latest/alpine-arm64/codecov.SHA256SUM.sig\n\ngpgv codecov.SHA256SUM.sig codecov.SHA256SUM\n\nshasum -a 256 -c codecov.SHA256SUM\n\nchmod +x codecov\n./codecov -t ${CODECOV_TOKEN}\n```\n\nTo check your `gpg` version, run\n\n```shell\ngpg --version\n```\n\n## Fetching Version Specific Metadata\n\nMetadata can be fetched for a particular release of the Uploader (including `latest`) as follows:\n\n```curl\ncurl -H \"Accept: application/json\" https://cli.codecov.io/alpine/latest | jq\n```\n\nWhich will return a JSON response of the following form:\n\n```json\n{\n \"artifact\": {\n \"distro\": \"linux\",\n \"file\": \"codecovcli_linux\",\n \"full_version\": \"v0.4.4\",\n \"created_at\": \"2024-01-11 16:36:06\",\n \"version\": \"v0.4.4\",\n \"hash\": \"e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2\"\n },\n \"link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov\",\n \"file_hash_link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM\",\n \"file_sig_link\": \"https:\\/\\/cli.codecov.io\\/v0.4.4\\/linux\\/codecov.SHA256SUM.sig\",\n \"github_release_link\": \"https:\\/\\/github.com\\/codecov\\/codecov-cli\\/releases\\/tag\\/v0.4.4\",\n \"hash\": \"e5e5916c6597a0bf37e77871c66ba5c25c73d794bf7c167a383fbf4a5b223ac2\",\n \"version\": \"v0.4.4\",\n \"full_version\": \"v0.4.4\"\n}\n```\n\nThe response contains meta information about the particular version in the `artifact` object, include the distro and the commit SHA of the release. Links to distributions of the particular version are also provided. \n\nWhile this is generally useful, the most obvious use case is leveraging this metadata to setup a vendoring pipeline that fetches and verifies `latest` whenever it updates and stores this verified version of the CLI in an private CDN, filestore, or other storage apparatus.\n\n## Uploader Command Line Arguments\n\nThe Codecov CLI is an exciting way to interact with new Codecov features. In order to find more options on how to upload using the CLI, please review [CLI Options](https://docs.codecov.com/docs/cli-options)","order":12,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"reusableContent":[],"previousSlug":"","slugUpdatedAt":"2021-06-24T17:24:04.371Z","revision":81,"_id":"64c14ec8f2680d15b2982b67","pendingAlgoliaPublish":false,"createdAt":"2021-06-25T16:33:38.777Z","updatedAt":"2024-10-23T15:14:36.754Z","user":"5a5f7365678e1d0012d7cbd8","category":{"title":"Getting Started","slug":"getting-started-1","order":0,"reference":false,"_id":"64c14ec8f2680d15b2982b24","project":"57b33b5ec9a4551700b969a5","version":"64c14ec8f2680d15b2982bc4","isAPI":false,"createdAt":"2019-01-28T03:07:50.737Z","__v":0,"type":"guide","id":"64c14ec8f2680d15b2982b24"},"project":"57b33b5ec9a4551700b969a5","version":{"version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"pdfStatus":"","source":"readme","_id":"64c14ec8f2680d15b2982bc4","__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z","apiRegistries":[]},"__v":11,"parentDoc":null,"lastUpdatedHash":"45e7c1a7316945ac4332fe8d4a0259a96ff88486","mdxAltBody":"","isApi":false,"tutorials":[],"id":"64c14ec8f2680d15b2982b67"},"hideTOC":false,"meta":{"_id":"64c14ec8f2680d15b2982b67","description":"Introduction Codecov uses the Codecov CLI to make it easy to upload coverage reports to Codecov for processing. ℹ️ Update on the Bash and Node Uploader: With the introduction of the CLI we're upgrading our GitHub Action, Circle CI Orb and Bitrise Step to use the CLI to upload reports. Therefore, we'...","hidden":false,"image":[],"keywords":"","metaTitle":"Uploading Reports to Codecov using the Codecov CLI","parent":null,"robots":"index","slug":"codecov-uploader","title":"Uploading Reports to Codecov using the Codecov CLI","type":"docs"},"slugUrl":"/docs/codecov-uploader","config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-26","fullstory":{"enabled":true,"orgId":"FSV9A"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.314.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true,"tracesSampleRate":0},"shMigration":{"promoVideo":"","forceWaitlist":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{},"terms":[],"variables":{"user":{},"defaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}]},"project":{"_id":"57b33b5ec9a4551700b969a5","appearance":{"notheme":false,"logo":["https://files.readme.io/5affb88-codecov.svg","codecov.svg",60,60,"#ff0077"],"html_footer":"","javascript":"","landing":true,"promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":""},"title":"Code coverage done right.®","text":"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!","_id":"57b33b5ec9a4551700b969a6"}],"stylesheet":"","body":{"style":"none"},"html_hidelinks":false,"favicon":["https://files.readme.io/f743cbc-small-Codecov_Mark_Circle_Pink.png","Codecov Mark Circle Pink.png",32,32,"#f35197","https://files.readme.io/9452196-Codecov_Mark_Circle_Pink.png"],"html_body":"","html_head":"","typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"hide_logo":false,"header":{"img":[],"img_pos":"tl","img_size":"tile-x","style":"solid"},"javascript_hub2":"","link_logo_to_url":false,"main_body":{"type":"links"},"sticky":false,"colors":{"body_highlight":"#5bb3f2","header_text":"","highlight":"","main":"#F01F7A","main_alt":"#38591e","custom_login_link_color":""},"html_footer_meta":"","stylesheet_hub2":".theme-solid header#hub-header #header-top {\n background-color:#0f1b29 !important;\n}\n\n.suggestEdits::before {\n content: \"🤓\";\n}\n\n.suggestEdits::after {\n content: \"🤓\";\n}\n\n.suggestEdits{\n display: flex;\n flex-direction: row;\n justify-content: center;\n font-size: 16px !important;\n}\n\ncode {\n background: #eeeeee;\n padding: 2px 5px;\n}\n\npre > code {\n background: inherit;\n\tpadding: 0px;\n}\n\n/*Enlarging the helpful/not helpful box at the bottom*/\ndiv.PageThumbs-helpful { font-size: 20px; }\n\n.markdown-body.markdown-body.markdown-body strong {\n font-weight:700 !important;\n}","theme":"line","html_promo":"","logo_white":[],"logo_white_use":false,"overlay":"circuits","showVersion":true,"referenceLayout":"row","categoriesAsDropdown":false,"childrenAsPills":false,"global_landing_page":{"html":"","redirect":""},"hideTableOfContents":false,"nextStepsLabel":"","splitReferenceDocs":false,"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"subheaderStyle":"dropdown","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":false},"custom_domain":"docs.codecov.com","childrenProjects":[],"derivedPlan":"business","description":"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.","error404":"","experiments":[],"first_page":"docs","flags":{"oauth":false,"speedyRender":false,"jwt":false,"migrationRun":false,"migrationSwaggerRun":true,"correctnewlines":false,"hub2":true,"swagger":false,"allowXFrame":false,"allow_hub2":false,"autoSslGeneration":true,"newApiExplorer":true,"apilogs":false,"cookieAuthentication":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":false,"hideGoogleAnalytics":false,"translation":false,"newEditor":true,"alwaysShowDocPublishStatus":false,"newMarkdown":false,"newMarkdownBetaProgram":true,"newMarkdownLooseMode":false,"oldMarkdown":false,"newSearch":true,"rdmdCompatibilityMode":false,"staging":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":false,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":true,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false},"fullBaseUrl":"https://docs.codecov.com/","git":{"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[]}},"glossaryTerms":[],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[],"mdxMigrationStatus":"rdmd","metrics":{"enabled":false,"thumbsEnabled":true,"monthlyLimit":0,"planLimit":5000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":true,"discuss":false,"docs":true,"examples":true,"landing":false,"reference":true,"logs":false,"changelog":true,"custompages":false,"tutorials":false,"graphql":false},"name":"Codecov","nav_names":{"discuss":"Discussion","docs":"","reference":"API Endpoints","changelog":"Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":false,"domain":true,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"business","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"active","planTrial":"business","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":false,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":50,"totalScore":164},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false},"seo":{"overwrite_title_tag":false},"stable":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"},"subdomain":"codecov","subpath":"","superHubWaitlist":false,"topnav":{"edited":true,"left":[{"type":"docs","text":"Guides"},{"type":"url","text":"API","url":"https://docs.codecov.com/reference"},{"type":"changelog","text":"Changelog"},{"type":"url","text":"Support","url":"https://codecovpro.zendesk.com/"},{"text":"Status","url":"https://status.codecov.com","type":"url"},{"type":"url","url":"https://about.codecov.io","text":"Codecov Home"},{"type":"url","text":"Try Codecov for Free","url":"https://about.codecov.io/codecov-free-trial/"}],"right":[],"bottom":[]},"trial":{"trialEndsAt":"2016-08-30T16:12:14.795Z","trialDeadlineEnabled":true},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"https://codecov.io","versions":[{"_id":"57b33b5ec9a4551700b969a8","categories":["57b33b5ec9a4551700b969a9","57b44723da7a913200179dfb","57b448586e6ff6360047426b","57b448846e6ff6360047426c","57b448f16e6ff6360047426d","57b44957fdc0f42000dc99e6","57b462550d2b640e00e9d3cd","57b4625c6e6ff6360047427c","57b462670d2b640e00e9d3ce","57b469eb6e6ff6360047428f","57b46e0b0d2b640e00e9d3d6","57b4a39f0d2b640e00e9d422","57b4a3a46e6ff636004742fd","57b4a3aa0d2b640e00e9d423","57b4a3ad6e6ff636004742fe","57b4a3c06e6ff636004742ff","57b60ffe25f6e20e00d5cb58","57b8b313f442340e00b01747","57dbfa0ff4da530e00b3b5e2","57ed1a1e4dea95190086c531","6376b408081e400003bab887"],"codename":"","createdAt":"2016-08-16T16:12:14.823Z","is_beta":false,"is_deprecated":true,"is_hidden":true,"__v":20,"version":"1.0","releaseDate":"2016-08-16T16:12:14.823Z","version_clean":"1.0.0","is_stable":false,"project":"57b33b5ec9a4551700b969a5"},{"_id":"584d8c8ecda2b40f000583ae","version_clean":"4.3.0","__v":4,"codename":"","createdAt":"2016-12-11T17:27:42.671Z","is_beta":false,"is_deprecated":true,"is_hidden":true,"categories":["584d8c8ecda2b40f000583af","584d8c8ecda2b40f000583b0","584d8c8ecda2b40f000583b1","584d8c8ecda2b40f000583b2","584d8c8ecda2b40f000583b3","584d8c8ecda2b40f000583b4","584d8c8ecda2b40f000583b5","584d8c8ecda2b40f000583b6","584d8c8ecda2b40f000583b7","584d8c8ecda2b40f000583b8","587bf19178eb7a23002d2d08","587d4bd0cd6f210f00949bd8","58a898f47e69742300452fd5","6376b408081e400003bab88b"],"is_stable":false,"project":"57b33b5ec9a4551700b969a5","releaseDate":"2016-12-11T17:27:42.671Z","version":"4.3.0"},{"_id":"58e7d832bc0deb0f0027f1f5","is_deprecated":true,"codename":"","version_clean":"4.3.6","releaseDate":"2016-12-11T17:27:42.671Z","is_beta":false,"is_stable":false,"createdAt":"2016-12-11T17:27:42.671Z","is_hidden":true,"categories":["58e7d832bc0deb0f0027f1a2","58e7d832bc0deb0f0027f1a3","584d8c8ecda2b40f000583b1","58e7d832bc0deb0f0027f1a4","58e7d832bc0deb0f0027f1a5","58e7d832bc0deb0f0027f1a6","58e7d832bc0deb0f0027f1a7","58e7d832bc0deb0f0027f1a8","58e7d832bc0deb0f0027f1a9","58e7d832bc0deb0f0027f1aa","58e7d832bc0deb0f0027f1ab","58e7d832bc0deb0f0027f1ac","58a898f47e69742300452fd5","6376b408081e400003bab886"],"version":"4.3.6","project":"57b33b5ec9a4551700b969a5","forked_from":"584d8c8ecda2b40f000583ae","__v":0},{"_id":"5c3e5a3c387b7b004b8a03d3","__v":2,"project":"57b33b5ec9a4551700b969a5","forked_from":"584d8c8ecda2b40f000583ae","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z","categories":["5c3e5a3c387b7b004b8a0380","5c3e5a3c387b7b004b8a0381","584d8c8ecda2b40f000583b1","5c3e5a3c387b7b004b8a0382","5c3e5a3c387b7b004b8a0383","5c3e5a3c387b7b004b8a0384","5c3e5a3c387b7b004b8a0385","5c3e5a3c387b7b004b8a0386","5c3e5a3c387b7b004b8a0387","5c3e5a3c387b7b004b8a0388","5c3e5a3c387b7b004b8a0389","5c3e5a3c387b7b004b8a038a","58a898f47e69742300452fd5","5c4e71ef0cddf0002ca47768","5c4e7206021404002bd6e988","6376b408081e400003bab88a"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"4.4.0","version":"4.4.0"},{"_id":"5eb0413161ae28003917002e","version":"4.5","version_clean":"4.5.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["5eb0413161ae28003916ffd5","5eb0413161ae28003916ffd6","584d8c8ecda2b40f000583b1","5eb0413161ae28003916ffd7","5eb0413161ae28003916ffd8","5eb0413161ae28003916ffd9","5eb0413161ae28003916ffda","5eb0413161ae28003916ffdb","5eb0413161ae28003916ffdc","5eb0413161ae28003916ffdd","5eb0413161ae28003916ffde","5eb0413161ae28003916ffdf","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","5eb0413161ae28003916ffe1","6376b408081e400003bab889"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"5c3e5a3c387b7b004b8a03d3","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z"},{"_id":"604a3fa3d6d5f0008027258e","version":"4.6","version_clean":"4.6.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":true,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","604a3fa3d6d5f00080272535","604a3fa3d6d5f00080272536","604a3fa3d6d5f00080272537","604a3fa3d6d5f00080272538","604a3fa3d6d5f00080272539","604a3fa3d6d5f0008027253a","604a3fa3d6d5f0008027253b","604a3fa3d6d5f0008027253c","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","604a3fa3d6d5f0008027253d","604babcfe3d113006c0ac382","605e107fa1b4710022622bb9","605e1084bc81560031aae596","605e135b517d83006763f4ed","632ca88c894a15001f6469f2","632ca9aa9a6f7412bcdbe6ab","632ca9e16afbb9004453de55","6376b408081e400003bab888"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"5eb0413161ae28003917002e","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z"},{"_id":"6308fc7b69f8e6001a5b790f","version":"5.0","version_clean":"5.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":true,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","6308fc7b69f8e6001a5b788f","6308fc7b69f8e6001a5b7890","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","6308fc7b69f8e6001a5b7896","604babcfe3d113006c0ac382","6308fc7b69f8e6001a5b7897","6308fc7b69f8e6001a5b7898","6308fc7b69f8e6001a5b7899","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","640be28e13ddfc001f6bd666","642f494a52fd2a006b905575"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"604a3fa3d6d5f0008027258e","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2023-10-03T17:06:29.585Z"},{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}],"variableDefaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}],"webhookEnabled":false,"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"2023"},"description":"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.","glossary":[],"homepage_url":"https://codecov.io","id":"57b33b5ec9a4551700b969a5","name":"Codecov","parent":null,"redirects":[],"sitemap":"disabled","subdomain":"codecov","suggested_edits":"enabled","uri":"/projects/me","variable_defaults":[{"name":"basicAuth","scheme":"basic","source":"security","type":"http","id":"632ca88d894a15001f6469ff"},{"name":"sessionid","source":"security","type":"apiKey","id":"632ca88d894a15001f6469fe"},{"name":"tokenAuth","scheme":"bearer","source":"security","type":"http","id":"632ca88d894a15001f6469fd"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"login_url":null,"logout_url":null},"features":{"custom_components":"disabled","mdx":"disabled"},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":true,"logs":false,"metricsSDK":false},"pages":{"not_found":null},"privacy":{"view":"public","password":null},"refactored":{"status":"disabled","migrated":"unknown"},"reference":{"api_sdk_snippets":"enabled","defaults":"always_use","json_editor":"disabled","oauth_flows":"disabled","request_history":"enabled","response_examples":"collapsed","response_schemas":"collapsed"},"seo":{"overwrite_title_tag":"disabled"},"plan":{"type":"business","grace_period":{"enabled":false,"end_date":null},"trial":{"expired":false,"end_date":"2016-08-30T16:12:14.795Z"}},"health_check":{"provider":"none","settings":{"manual":{"status":"down","url":null},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"recaptcha":{"site_key":null,"secret_key":null},"segment":{"key":null,"domain":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null,"email_only":false}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"enabled"}}},"appearance":{"brand":{"primary_color":"#F01F7A","link_color":"#5bb3f2","theme":"system"},"changelog":{"layout":"collapsed","show_author":true,"show_exact_date":false},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"footer":{"readme_logo":"show"},"logo":{"size":"default","dark_mode":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}},"main":{"uri":null,"url":"https://files.readme.io/5affb88-codecov.svg","name":"codecov.svg","width":60,"height":60,"color":"#ff0077","links":{"original_url":null}},"favicon":{"uri":null,"url":"https://files.readme.io/f743cbc-small-Codecov_Mark_Circle_Pink.png","name":"Codecov Mark Circle Pink.png","width":32,"height":32,"color":"#f35197","links":{"original_url":"https://files.readme.io/9452196-Codecov_Mark_Circle_Pink.png"}}},"custom_code":{"css":".theme-solid header#hub-header #header-top {\n background-color:#0f1b29 !important;\n}\n\n.suggestEdits::before {\n content: \"🤓\";\n}\n\n.suggestEdits::after {\n content: \"🤓\";\n}\n\n.suggestEdits{\n display: flex;\n flex-direction: row;\n justify-content: center;\n font-size: 16px !important;\n}\n\ncode {\n background: #eeeeee;\n padding: 2px 5px;\n}\n\npre > code {\n background: inherit;\n\tpadding: 0px;\n}\n\n/*Enlarging the helpful/not helpful box at the bottom*/\ndiv.PageThumbs-helpful { font-size: 20px; }\n\n.markdown-body.markdown-body.markdown-body strong {\n font-weight:700 !important;\n}","js":null,"html":{"header":null,"home_footer":null,"page_footer":null}},"header":{"type":"line","gradient_color":"#38591e","overlay":{"fill":"tile-x","type":"circuits","position":"top-left","image":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}}},"navigation":{"first_page":"documentation","left":[{"type":"guides","title":null,"url":null,"custom_page":null},{"type":"link_url","title":"API","url":"https://docs.codecov.com/reference","custom_page":null},{"type":"changelog","title":null,"url":null,"custom_page":null},{"type":"link_url","title":"Support","url":"https://codecovpro.zendesk.com/","custom_page":null},{"type":"link_url","title":"Status","url":"https://status.codecov.com","custom_page":null},{"type":"link_url","title":"Codecov Home","url":"https://about.codecov.io","custom_page":null},{"type":"link_url","title":"Try Codecov for Free","url":"https://about.codecov.io/codecov-free-trial/","custom_page":null}],"logo_link":"landing_page","right":[],"sub_nav":[],"subheader_layout":"dropdown","version":"enabled","links":{"home":{"label":"Home","visibility":"disabled"},"graphql":{"label":"GraphQL","visibility":"disabled"},"guides":{"label":"Guides","alias":null,"visibility":"enabled"},"reference":{"label":"API Reference","alias":"API Endpoints","visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"disabled"},"changelog":{"label":"Changelog","alias":"Changelog","visibility":"enabled"},"discussions":{"label":"Discussions","alias":"Discussion","visibility":"disabled"}}}},"git":{"connection":{"status":"inactive"}}}},"version":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}},"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/docs/codecov-uploader","version":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}}"></script></div><div id="hub-container"><div class="hub-container"><div state-container ng-attr-id="{{state.current().root !== 'docs' && 'react-app-content-container'}}"><div id="replace-view" ng-non-bindable></div></div></div></div><script>!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+ "cdn.segment.com" +"/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.0.1"; analytics.load("JQHfXvDgzj7wRVnxUXKyMsB75tCdtk8U"); }}(); </script><script>var is_hub = true; var is_hub2 = true; var is_hub_edit = true; </script><div id="ssr-end"><script id="__LOADABLE_REQUIRED_CHUNKS__" type="application/json">[6601,1802,6563,9772,4904,7449,7372,2249,5382,734,954,6903,2395,8161,1008,7188,5753,2852,3901,7783,1456,1666,5798,3221,7327,5408,2637,4674,1731,3859,4935,7717,4287,5359,5948,4201,8230,3307,7356,9575,1936,1313,1343,6060,6591,3787,1080,9852,8684,3457,2859,2402,1202,678,4793,2616,3412,2144,9141,8063,4467,7031,2578,8899,3556,3842,3626,7289,1813,2790,7779]</script><script id="__LOADABLE_REQUIRED_CHUNKS___ext" type="application/json">{"namedChunks":["routes-SuperHub","Header","routes-PageNotFound","Footer","core-icons-search-svg","core-icons-custom-pages-svg","routes-Discuss","List","core-icons-chevron-down-svg","core-icons-chevron-up-down-svg","routes-SuperHub-Routes","RMDX","core-icons-arrow-right-svg","routes-Doc","routes-Reference","core-icons-more-vertical-svg","core-icons-lock-svg","routes-Landing","Editor","core-icons-x-circle-svg","core-icons-suggested-edits-svg","CustomPage","Page","routes-CustomPage","core-icons-alert-circle-svg","core-icons-webhook-svg","core-icons-star-svg","core-icons-trending-up-svg","core-icons-callout-info-svg","routes-Changelog","Post","core-icons-arrow-up-right-svg","routes-Tutorials","core-icons-message-circle-svg","core-icons-eye-off-svg","New","core-icons-key-svg","core-icons-save-svg","core-icons-book-svg","core-graphics-json-svg","core-icons-inbox-svg","core-icons-unlock-svg","core-icons-alert-triangle-svg","core-icons-gauge-circle-svg"]}</script> <script async data-chunk="main" src="https://cdn.readme.io/public/hub/web/main.8401cd74fcdd93642c6b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6601.cef2fa12a9b5e2b9df03.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/1802.00a1e88cc0d9da2aae1b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6563.fbd3d15eee3b5e94f665.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/9772.2b0a744b76cb77e0dced.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/4904.1067704c85da57778e22.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7449.dae0332305a8704415a6.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7372.fbd27ab77e6e47de9931.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/2249.cb1f4fb7d2cce2c5e425.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/5382.f3d48dea01a7ee0548c9.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/734.2949e3d7010fa5c21ffd.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/954.53ce7f86793664155f78.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6903.75b9333e2c99d6924d0e.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/2395.0e49c51ab8d22525f6ff.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/8161.a15ebcbf0b5b4748c0fd.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/1008.828e1c3ad92702b30f8b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7188.006f6f7e3184fb873f71.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/5753.19245c7129f056485c33.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/routes-SuperHub.80f0348ff5861a413a46.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/3901.9a23139e8c32bd6a1186.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/7783.4d5a6e419a35233ebd3c.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/Header.e076d4e6ea766318a213.js"></script> <script async data-chunk="routes-PageNotFound" src="https://cdn.readme.io/public/hub/web/routes-PageNotFound.7f382f4941474998a761.js"></script> <script async data-chunk="Footer" src="https://cdn.readme.io/public/hub/web/Footer.f3a023593089686064a9.js"></script> <script async data-chunk="core-icons-search-svg" src="https://cdn.readme.io/public/hub/web/core-icons-search-svg.ad9cac962958d30983a7.js"></script> <script async data-chunk="core-icons-custom-pages-svg" src="https://cdn.readme.io/public/hub/web/core-icons-custom-pages-svg.444e514638d9afbec182.js"></script> <script async data-chunk="routes-Discuss" src="https://cdn.readme.io/public/hub/web/routes-Discuss.9ac9478f3014cd9a6ef2.js"></script> <script async data-chunk="List" src="https://cdn.readme.io/public/hub/web/2637.910d32e664cf986b636e.js"></script> <script async data-chunk="List" src="https://cdn.readme.io/public/hub/web/4674.b77d8e6ddbdaef99bf47.js"></script> <script async data-chunk="List" src="https://cdn.readme.io/public/hub/web/List.ff2cf58cdb1ec8d5703f.js"></script> <script async data-chunk="core-icons-chevron-down-svg" src="https://cdn.readme.io/public/hub/web/core-icons-chevron-down-svg.e20b84e9871bd73d1b8c.js"></script> <script async data-chunk="core-icons-chevron-up-down-svg" src="https://cdn.readme.io/public/hub/web/core-icons-chevron-up-down-svg.6aae957df71e6f4c5e24.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/7717.c3f46aef4dac129abcfb.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/4287.916cdd386055d2c5d238.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/5359.fb0c48929b1827a8a2b2.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/5948.a51402657e2eb40ab43b.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/4201.ae4918ddf0595a4bfca6.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/8230.69318b242a05e8e74cd8.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.f7a42c9e7ca76978c49b.js"></script> <script async data-chunk="RMDX" src="https://cdn.readme.io/public/hub/web/RMDX.6966846032c03969e44f.js"></script> <script async data-chunk="core-icons-arrow-right-svg" src="https://cdn.readme.io/public/hub/web/core-icons-arrow-right-svg.eadb74658f93b4e7d75f.js"></script> <script async data-chunk="routes-Doc" src="https://cdn.readme.io/public/hub/web/routes-Doc.a69d1038565eec3baddc.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/routes-Reference.52b5b8c183631200e8bc.js"></script> <script async data-chunk="core-icons-more-vertical-svg" src="https://cdn.readme.io/public/hub/web/core-icons-more-vertical-svg.4822b3f831e11095980d.js"></script> <script async data-chunk="core-icons-lock-svg" src="https://cdn.readme.io/public/hub/web/core-icons-lock-svg.70942d3ee6bad6267696.js"></script> <script async data-chunk="routes-Landing" src="https://cdn.readme.io/public/hub/web/6591.ebe74884cadb175806e0.js"></script> <script async data-chunk="routes-Landing" src="https://cdn.readme.io/public/hub/web/routes-Landing.55eccb79070682a90c02.js"></script> <script async data-chunk="Editor" src="https://cdn.readme.io/public/hub/web/Editor.778b5192afd13371d8ec.js"></script> <script async data-chunk="core-icons-x-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-x-circle-svg.abc0e0ea5b7f9dff667c.js"></script> <script async data-chunk="core-icons-suggested-edits-svg" src="https://cdn.readme.io/public/hub/web/core-icons-suggested-edits-svg.8d2d8ac2fd22ded9238d.js"></script> <script async data-chunk="CustomPage" src="https://cdn.readme.io/public/hub/web/3457.54b5f96a07aafc769550.js"></script> <script async data-chunk="CustomPage" src="https://cdn.readme.io/public/hub/web/2859.dc9d7bf83dcb38e2167f.js"></script> <script async data-chunk="Page" src="https://cdn.readme.io/public/hub/web/Page.2c323cd107e7e82fe5ce.js"></script> <script async data-chunk="core-icons-alert-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-alert-circle-svg.4cee8264c97045599b56.js"></script> <script async data-chunk="core-icons-webhook-svg" src="https://cdn.readme.io/public/hub/web/core-icons-webhook-svg.fe540ea1c09e1c0e0247.js"></script> <script async data-chunk="core-icons-star-svg" src="https://cdn.readme.io/public/hub/web/core-icons-star-svg.b834e1612cb2af1e174e.js"></script> <script async data-chunk="core-icons-trending-up-svg" src="https://cdn.readme.io/public/hub/web/core-icons-trending-up-svg.0dd920b0698e57f75afa.js"></script> <script async data-chunk="core-icons-callout-info-svg" src="https://cdn.readme.io/public/hub/web/core-icons-callout-info-svg.79b14e8568c9cecbc827.js"></script> <script async data-chunk="routes-Changelog" src="https://cdn.readme.io/public/hub/web/routes-Changelog.c2ef3ef5eb8f547c5186.js"></script> <script async data-chunk="Post" src="https://cdn.readme.io/public/hub/web/Post.71d2a77f709abc802115.js"></script> <script async data-chunk="core-icons-arrow-up-right-svg" src="https://cdn.readme.io/public/hub/web/core-icons-arrow-up-right-svg.8ec73f7e322d79a2695b.js"></script> <script async data-chunk="routes-Tutorials" src="https://cdn.readme.io/public/hub/web/routes-Tutorials.6686c9c18f1ee096cdc9.js"></script> <script async data-chunk="core-icons-message-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-message-circle-svg.1e24c2d2eb4f9a6ede5d.js"></script> <script async data-chunk="core-icons-eye-off-svg" src="https://cdn.readme.io/public/hub/web/core-icons-eye-off-svg.b2b8b241b4b324dfd9c1.js"></script> <script async data-chunk="New" src="https://cdn.readme.io/public/hub/web/New.6ccd6d98f9612d613bd0.js"></script> <script async data-chunk="core-icons-key-svg" src="https://cdn.readme.io/public/hub/web/core-icons-key-svg.71e09670b926900508b8.js"></script> <script async data-chunk="core-icons-save-svg" src="https://cdn.readme.io/public/hub/web/core-icons-save-svg.2d085f1d8792d8787453.js"></script> <script async data-chunk="core-icons-book-svg" src="https://cdn.readme.io/public/hub/web/core-icons-book-svg.556c5a2abddd44b2284c.js"></script> <script async data-chunk="core-icons-inbox-svg" src="https://cdn.readme.io/public/hub/web/core-icons-inbox-svg.01c2ecb759e417a98bb8.js"></script> <script async data-chunk="core-icons-unlock-svg" src="https://cdn.readme.io/public/hub/web/core-icons-unlock-svg.d27591cc9e0be731e26d.js"></script> <script async data-chunk="core-icons-alert-triangle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-alert-triangle-svg.aa5960e73a548f38e8bd.js"></script> <script async data-chunk="core-icons-gauge-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-gauge-circle-svg.fff25782546fef314a09.js"></script></div><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); </script><script>ga('create', 'UA-63027104-1', 'auto', {'name': 'custom'}); $(window).on('pageLoad', function(e, state){ ga('custom.send', 'pageview', window.location.pathname); }); </script><script>$(window).on('pageLoad', function(e, state){ analytics.page(window.location.pathname, state.meta.title, { "context": { "plugin": { "name": "readme_io", "version": "1.0.0" } } }) }); </script><script id="hub-me" type="application/json" data-json="{"loggedIn":false,"search":{"app":"T28YKFATPY","token":"MTg5M2Y2NzAwNzgzOTJlZjIyY2VmNmI4MjNiNmIyMTA5ODIzYWNjOTRmMTI2NTMwZDc5NTEyZGZiMTA2OGEwMnRhZ0ZpbHRlcnM9KHByb2plY3Q6NTdiMzNiNWVjOWE0NTUxNzAwYjk2OWE1KSwodmVyc2lvbjpub25lLHZlcnNpb246NjRjMTRlYzhmMjY4MGQxNWIyOTgyYmM0KSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpQYWdlLGluZGV4OkJsb2cp","filters":"tagFilters=(project:57b33b5ec9a4551700b969a5),(version:none,version:64c14ec8f2680d15b2982bc4),(hidden:none,hidden:false),(index:CustomPage,index:Page,index:Blog)","metaData":[{"modules":{"suggested_edits":true,"discuss":false,"docs":true,"examples":true,"landing":false,"reference":true,"logs":false,"changelog":true,"custompages":false,"tutorials":false,"graphql":false},"id":"57b33b5ec9a4551700b969a5","name":"Codecov","subdomain":"codecov","subpath":"","nav_names":{"discuss":"Discussion","docs":"","reference":"API Endpoints","changelog":"Changelog","tutorials":"","recipes":""}}]}}"></script><script id="readme-data-baseUrl" type="application/json" data-json=""/""></script></body></html>