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

IJHack / QtPass / 28647196804
63%

Build:
DEFAULT BRANCH: main
Ran 03 Jul 2026 08:09AM UTC
Jobs 1
Files 81
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

03 Jul 2026 08:04AM UTC coverage: 56.728% (+0.3%) from 56.397%
28647196804

push

github

web-flow
fix: correct ImitatePass git re-encryption recipients, CWD, and broken copy (#1604)

* fix: correct ImitatePass git re-encryption recipients, CWD, and broken copy

Three defects in the ImitatePass git/gpg re-encryption path:

- verifyGpgIdForDir() returned early on a .gpg-id cache hit without recomputing
  gpgId, so it kept the previously processed directory's recipient list. Files
  under a directory whose .gpg-id was already verified could then be
  re-encrypted to the WRONG recipients. Now the signature is verified once per
  .gpg-id but the recipient list is always refreshed for the current file.

- createBackupCommit() and reencryptSingleFile() ran git via
  Executor::executeBlocking(), which sets no working directory, so
  `git status`/`add`/`commit` executed in QtPass's launch directory instead of
  the store. Depending on where QtPass was started this aborted all
  re-encryption ("not a git repository") or committed an unrelated repository.
  They now pass `-C <store>`.

- ImitatePass::Copy() in git mode invoked `git cp`, which is not a git
  subcommand, so drag-and-drop copy silently produced nothing. Copy now uses a
  filesystem copy (synchronous, so the destination exists before
  re-encryption) and stages the new path with `git add`.

Adds tst_integration::imitatePass_gitCopyAndShow, which copies an entry in git
mode and verifies the destination exists and decrypts to the original content
(fails without the copy fix).

Deferred to follow-ups: Move does not re-encrypt for the destination folder's
.gpg-id (needs async ordering around `git mv`), and the actualKeys/gpgId
recipient-format comparison that defeats the "skip already-correct files"
optimization.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* fix: surface Copy failure and use QFile::remove for the destination

Address review feedback on ImitatePass::Copy: QFile::copy returns false witho... (continued)

10 of 16 new or added lines in 1 file covered. (62.5%)

3811 of 6718 relevant lines covered (56.73%)

30.78 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
57.7
4.37% src/imitatepass.cpp
Jobs
ID Job ID Ran Files Coverage
1 28647196804.1 03 Jul 2026 08:09AM UTC 81
56.73
GitHub Action Run
Source Files on build 28647196804
  • Tree
  • List 81
  • Changed 4
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28647196804
  • 1b73b85f on github
  • Prev Build on main (#28634577885)
  • Next Build on main (#28650029157)
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