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

IJHack / QtPass / 35231775420
93%

Build:
DEFAULT BRANCH: main
Ran 17 Sep 2026 02:17PM UTC
Jobs 1
Files 107
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 Sep 2026 02:10PM UTC coverage: 75.981% (+0.2%) from 75.806%
35231775420

push

github

web-flow
ImitatePass: extract NativeGrep and GpgIdSigner, compose simpleTransaction (#1814)

* ImitatePass: extract NativeGrep and GpgIdSigner, compose simpleTransaction

Three pieces leave the 1500-line backend:

- NativeGrep owns the threaded decrypt-and-match search: the sequence
  counter, the worker threads and their shutdown, matchFile()/scanStore().
  ImitatePass::Grep() calls search() and relays finished() as finishedGrep;
  its destructor cancels the searches first so they wind down while the
  re-encryption worker is joined.
- GpgIdSigner is the .gpg-id signature logic: haveSecretKey()
  (KEY_CONSIDERED), sign() (first key only, --yes --detach-sign, WSL path
  translation) and verify() (VALIDSIG fingerprint or primary fingerprint
  against the configured keys; passes with no key configured, as pass does).
  Every gpg run goes through an Exec callback, so ImitatePass hands in its
  cancellable execBlocking() and the re-encryption worker keeps its
  interruptible verification, and ProfileInit uses the same sign() instead
  of its own copy of the gpg invocation.
- simpleTransaction is a member, not a private base.

tst_gpgidsigner drives the signer with a scripted gpg: arguments, first-key
rule, stderr reporting, both accepted fingerprints, rejection of a valid
signature by someone else, exit 0 without VALIDSIG, path cleaning, and the
default runner. Existing tests follow the renames.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* GpgIdSigner: the keys are fingerprints; reflow a comment

The class comment promised that key IDs verify; gpg reports full
fingerprints in KEY_CONSIDERED and VALIDSIG, so only a 40-hex fingerprint
satisfies haveSecretKey() and verify() (pass requires the same). The
renamed comment in tst_integration ran past column 80.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

... (continued)

156 of 179 new or added lines in 5 files covered. (87.15%)

1 existing line in 1 file now uncovered.

5947 of 7827 relevant lines covered (75.98%)

75.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
82.22
src/nativegrep.cpp
4
76.39
4.02% src/profileinit.cpp
2
96.43
src/gpgidsigner.cpp
1
75.76
0.48% src/imitatepass.cpp

Coverage Regressions

Lines Coverage ∆ File
1
76.39
4.02% src/profileinit.cpp
Jobs
ID Job ID Ran Files Coverage
1 35231775420.1 17 Sep 2026 02:17PM UTC 107
75.98
GitHub Action Run
Source Files on build 35231775420
  • Tree
  • List 107
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35231775420
  • f7b767d2 on github
  • Prev Build on main (#35228389606)
  • Next Build on main (#35232092867)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc