• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IJHack / QtPass / 24590073580
55%

Build:
DEFAULT BRANCH: main
Ran 17 Apr 2026 10:53PM UTC
Jobs 1
Files 63
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Apr 2026 10:49PM UTC coverage: 22.061% (+0.3%) from 21.778%
24590073580

push

github

web-flow
fix: show user-friendly error when GPG key is expired or invalid (#1035)

* fix: show user-friendly error when GPG key is expired or invalid (#247)

When ImitatePass::Insert fails because the recipient key is expired,
revoked, or missing, GPG exits non-zero and the raw stderr was shown
verbatim in the output panel — not helpful to users who don't read GPG
output daily.

Add --status-fd 2 to the GPG invocation so machine-readable [GNUPG:]
status tokens (KEY_EXPIRED, KEY_REVOKED, NO_PUBKEY, INV_RECP, FAILURE)
are included in stderr. These are locale-independent and checked first;
case-insensitive substring fallbacks handle GPG builds or configurations
that don't emit status tokens.

In Pass::finished, when PASS_INSERT fails and a known pattern is found,
a translated friendly message is prepended and the [GNUPG:] machine
lines are stripped before emitting processErrorExit, so the output pane
shows e.g. "Encryption failed: GPG key has expired. Please renew or
replace it." followed by the human-readable GPG lines only.

The transaction mechanism in ImitatePass::finished already cancels the
queued GIT_ADD and GIT_COMMIT commands when GPG fails, so the
misleading git pathspec error is not shown.

11 new unit tests cover all status-token paths, all fallback paths,
the empty-result case, and priority ordering (token beats fallback).

Closes #247

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: use correct GPG status-fd token names in gpgErrorMessage

Replace KEY_EXPIRED/KEY_REVOKED (which are not real --status-fd tokens)
with KEYEXPIRED and KEYREVOKED. Remove REVKEYSIG (signature verification
only). Add INV_RECP 5 (expired) and INV_RECP 4 (revoked) checks before
the generic INV_RECP fallback. Update tests accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: strip \r from GPG output lines before displaying to user

Split on '\n' leaves trailing '\r' on CRLF output (Windows/WSL).
Remove '\r' from each line before appe... (continued)

23 of 36 new or added lines in 2 files covered. (63.89%)

1199 of 5435 relevant lines covered (22.06%)

8.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
55.73
1.6% src/pass.cpp
1
6.06
0.0% src/imitatepass.cpp
Jobs
ID Job ID Ran Files Coverage
1 24590073580.1 17 Apr 2026 10:53PM UTC 63
22.06
GitHub Action Run
Source Files on build 24590073580
  • Tree
  • List 63
  • Changed 5
  • Source Changed 5
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24590073580
  • 0a6f5b8f on github
  • Prev Build on main (#24588315042)
  • Next Build on main (#24591428477)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc