Skip to content

wizcli tag: scaffolding for code-to-cloud correlation (WIP) - #750

Open
bschwedler wants to merge 3 commits into
mainfrom
feat/wizcli-tag
Open

wizcli tag: scaffolding for code-to-cloud correlation (WIP)#750
bschwedler wants to merge 3 commits into
mainfrom
feat/wizcli-tag

Conversation

@bschwedler

Copy link
Copy Markdown
Contributor

Adds bakery wizcli tag, split out from feat/wizcli-security-scan
(#715) since it's a distinct concern from
wizcli scan: linking a scan result to a published registry
reference by digest, rather than scanning the image itself.

Not yet functional. wizcli tag requires the referenced image to
exist in the local Docker daemon with matching RepoDigests, but the
merge job publishes via ORAS registry-to-registry manifest copies and
never loads anything into a local daemon.

Stacked on feat/wizcli-security-scan — do not merge until that PR
merges first.

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

Test Results

2 211 tests  ±0   2 210 ✅  - 1   6m 52s ⏱️ - 1m 16s
    1 suites ±0       0 💤 ±0 
    1 files   ±0       1 ❌ +1 

For more details on these failures, see this check.

Results for commit b1d9ea1. ± Comparison against base commit dd9d958.

♻️ This comment has been updated with latest results.

@bschwedler
bschwedler force-pushed the feat/wizcli-security-scan branch 3 times, most recently from da0cb96 to e2f354b Compare August 14, 2026 16:22
Base automatically changed from feat/wizcli-security-scan to main August 14, 2026 16:39
@bschwedler
bschwedler marked this pull request as ready for review August 18, 2026 13:48
Adds a 'bakery wizcli tag' CLI subcommand and a Tag step in the merge
job of bakery-build-native.yml.

For each matched image target, calls 'wizcli tag' with the pinned
{Version}-{OS}-{Variant} registry tag (e.g.
ghcr.io/posit-dev/package-manager:2026.07.0-ubuntu-24.04-std), linking
build-time scan results to the published image in Wiz's inventory.

Only runs on real production pushes (inputs.push && dev-versions !=
only && wiz-auth). Dev builds are excluded since their scans are against
temp ECR digests that don't map to stable published tags.
continue-on-error: true so a tagging failure never blocks a release.
Per Wiz documentation, multi-platform images must be tagged by each
platform's child digest (repo@sha256:PLATFORM_DIGEST), not the
manifest list digest. The per-platform digest is content-addressed
and identical in both the temp ECR registry (where it was scanned)
and the final published registry (GHCR/Docker Hub), so Wiz correctly
correlates build scan findings to the published image.

bakery wizcli tag now:
- Accepts metadata JSON files as positional arguments
- Reads containerimage.digest from each file
- Maps the image name to its final published registry repos via config
- Calls wizcli tag {final-repo}@{digest} for each registry x platform

The workflow Tag step passes ./*-metadata.json (all platform metadata
files downloaded in the merge job) as arguments.
'bakery wizcli tag' called BakeryConfig.from_path(), which doesn't
exist anywhere on BakeryConfig -- every other command (including
'wizcli scan') uses BakeryConfig.from_context(). The tag command
raised AttributeError on every invocation; continue-on-error: true
in the Tag workflow step masked this as a silent no-op instead of a
visible failure.

No test previously covered the tag command at all.
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