Skip to content

Compile drops container digest pin: cli-proxy:0.27.11 missing from baked default pin table (v0.81.6) #47765

Description

@mrfelton

Summary

In gh-aw v0.81.6, gh aw compile resolves container digest pins only from (a) a table baked into the binary and (b) the containers cache in .github/aw/actions-lock.json — never from a live registry query. The baked table for the 0.27.11 firewall image set includes agent, api-proxy, and squid, but omits ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.11.

Impact

If a repo's actions-lock.json loses its containers cache entry for cli-proxy (e.g. the file is regenerated from scratch, or the cache is pruned), recompiling produces lock files that reference cli-proxy:0.27.11 unpinned (tag-only, no @sha256: digest), silently downgrading the digest-pinning guarantee for that one image while its 0.27.11 siblings stay pinned.

Reproduction

  1. In a repo using gh-aw v0.81.6 with firewall enabled, remove the containers entries from .github/aw/actions-lock.json.
  2. Run gh aw compile.
  3. Observe: agent/api-proxy/squid 0.27.11 images come out digest-pinned (from the baked table); cli-proxy:0.27.11 comes out tag-only.

Restoring the cache entry manually (digest verified against the registry) and recompiling is stable/idempotent, confirming the cache path works — the gap is only the baked table.

Suggested fix

Include the cli-proxy digest alongside its siblings in the baked default pin table (and perhaps warn when compile emits an unpinned container reference).

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions