secrets/test
Brian Majewski 1ee096cc33 refactor: dedup external extractor + read guards, warn on legacy-pull nested blobs (EGB-701)
EGB-677 stage-1 structural cleanups, no behavior change for the v2 happy path:

1. cmd_which reuses _json_external_entries (the push/pull extractor) instead of
   its own duplicated jq @tsv projection, so `which` applies the same
   properties->gradle-properties normalization + skip-with-warning rules the
   sync path does and can't drift from it.
2. The two external-manifest read guards are factored into _json_readable
   (plain regular file, silent) / _legacy_readable (warn+skip a symlinked
   .secrets-files), shared by _external_entries_for_push/_pull.
3. The legacy (manifest-less) pull path now warns when nested <project>/<relpath>.age
   blobs exist that its non-recursive globs can't see (external/ excluded —
   pull_external_files handles those), so it never silently under-restores.

Tests: +4 in test/manifest.bats (normalized which display, malformed external
skipped by which, nested-blob warning fires, external-only no false warning).
Full suite green (286/286).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 10:08:13 -07:00
..
install.bats feat: thin install.sh onboarding bootstrap (EGB-671) 2026-06-08 16:23:50 -07:00
join.bats feat: secrets join + init --remote + verified onboarding (EGB-671) 2026-06-08 16:23:50 -07:00
manifest.bats refactor: dedup external extractor + read guards, warn on legacy-pull nested blobs (EGB-701) 2026-06-18 10:08:13 -07:00
migrate.bats feat: secrets migrate --status surfaces v2-only externals (coverage, EGB-712) 2026-06-08 10:44:34 -07:00
run-security.sh chore: security review policy + operator runner, doc updates (EGB-677 stage 1) 2026-06-07 13:12:39 -07:00
secrets.bats feat: secrets join + init --remote + verified onboarding (EGB-671) 2026-06-08 16:23:50 -07:00
test_helper.bash v0.1.0.0 feat: multi-store support (EGB-281) (#1) 2026-05-09 14:30:28 -07:00
version.bats feat: version-skew nudge — stamp store writer-version, warn when behind (EGB-713) 2026-06-08 12:07:50 -07:00