Skip to content

Work around Codecov upstream key-import outage - #55

Open
applesnort wants to merge 2 commits into
mainfrom
fix/codecov-upload
Open

Work around Codecov upstream key-import outage#55
applesnort wants to merge 2 commits into
mainfrom
fix/codecov-upload

Conversation

@applesnort

@applesnort applesnort commented Jul 25, 2026

Copy link
Copy Markdown

Summary

  • CI's coverage job has intermittently failed on Upload coverage to Codecov with Could not verify signature ... Can't check signature: No public key.
  • The action's default CLI download path imports a GPG key from Keybase before verifying the CLI binary. Checked dist/codecov.sh at our pinned SHA (v7.0.0) directly: it fetches from https://keybase.io/codecovsecops/pgp_keys.asc, which resolves fine with a valid key when checked directly right now -- so this looks like a transient failure somewhere in that external retrieval path on the runs that failed, not a permanently dead link.
  • (Symptoms and the fix resemble codecov/codecov-action#1955, but that issue's demonstrated cause was a different, since-fixed dead URL on an older version -- same class of Keybase-dependency fragility, not the same bug.)
  • use_pypi: true sources the CLI from PyPI instead, skipping the whole key-import/verification path, so it doesn't matter whether that retrieval is having a moment. Note this does bypass Codecov's normal integrity check on the CLI -- an availability fix, not a security-neutral one.
  • Not specific to this repo -- a code search turns up ~180 repos in the org using codecov/codecov-action, so likely worth applying elsewhere too, though scope there hasn't been individually confirmed.

Test plan

The coverage job's Codecov upload has been failing intermittently
with "Could not verify signature. ... Can't check signature: No
public key" -- confirmed as codecov/codecov-action#1955: the action's
default CLI download path verifies a GPG signature against a key
fetched from https://keybase.io/codecovsecurity/pgp_keys.asc, which
has been returning 404 since ~2026-06-06. This is an outage on
Codecov's side, not specific to this repo, and reproduces on the
latest action version (v7.0.0) -- upgrading or retrying does not help.

`use_pypi: true` is the maintainer-confirmed workaround: it sources
the CLI from PyPI instead, skipping the broken key-import step
entirely. Verified the Keybase URL is still returning 404 as of this
commit.
@codecov-commenter

codecov-commenter commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.06%. Comparing base (8a4adbc) to head (ff95fcb).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #55   +/-   ##
=======================================
  Coverage   94.06%   94.06%           
=======================================
  Files           4        4           
  Lines         236      236           
=======================================
  Hits          222      222           
  Misses         14       14           

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8a4adbc...ff95fcb. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The previous commit's comment cited codecov/codecov-action#1955 and its
dead codecovsecurity Keybase URL as the direct cause. Checked
dist/codecov.sh at our pinned SHA (v7.0.0) directly: it actually fetches
from a different host, codecovsecops, which resolves fine with a valid
key when checked directly right now. So the failures observed here
(twice, before this fix) are better explained as a transient failure
somewhere in that external key-retrieval path, not the same dead URL
from #1955 -- similar class of problem, not the same bug. Trimmed the
in-file comment to the essentials; the full detail lives in the PR
description and commit history instead of duplicated inline.
@applesnort
applesnort force-pushed the fix/codecov-upload branch from 89d8e56 to ff95fcb Compare July 25, 2026 22:31

@davidlehn davidlehn left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should wait for them to fix the underlying issue. It's too much churn to fix all our repos like this. Since this isn't all that critical, it's easier to let it fail or rerun until it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants