Skip to content

Dev into Main after history#22

Merged
lucatescari merged 21 commits into
mainfrom
dev
Apr 15, 2026
Merged

Dev into Main after history#22
lucatescari merged 21 commits into
mainfrom
dev

Conversation

@lucatescari

Copy link
Copy Markdown
Owner

No description provided.

lucatescari and others added 21 commits April 15, 2026 10:44
- Re-canonicalize path on load for defense-in-depth
- Add trailing newline to config file
- Use RAII guard for env var mutation in unit tests (safety)
- Unit tests: add Mutex to serialize env var mutations (fixes macOS CI race)
- GPG test: set GNUPGHOME to empty temp dir so GPG fails fast on all
  platforms instead of hanging (restores test on Windows)
- New tests/gpg_integration.rs: real GPG operations with temp keyrings
  - add-gpg-user: by email, fingerprint, --trusted, --no-commit, -k, --from
  - rm-gpg-user: remove, --no-commit, user not found error
  - ls-gpg-users: list, no users, named key
  - GPG unlock roundtrip: add user -> lock -> unlock via GPG
  - Multi-user: add 2, remove 1, verify count
- All tests auto-skip if GPG unavailable (skip_without_gpg! macro)
- CI: install GPG on Linux/macOS, run gpg_integration test step
- CLAUDE.md: add mandatory testing policy for all commands/features
- Total: 91 tests (31 unit + 40 integration + 14 GPG + 6 cross-compat)
gpg_available() now tests that GPG can operate with a custom GNUPGHOME,
not just that the binary exists. On Windows CI, Git's bundled GPG
reports a version but fails with MSYS2 path translation errors.
Gpg4win handles native Windows paths correctly, unlike the GPG
bundled with Git for Windows (which fails with MSYS2 path issues).
This enables GPG integration tests to run on all 3 platforms.
feat: global GPG keyring with interactive picker
@lucatescari lucatescari merged commit 59fd53f into main Apr 15, 2026
6 checks passed
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.

1 participant