release: prepare v0.3.0-beta.5 public Hub distribution - #174
Conversation
GSTACK-Checkpoint: 2026-07-15/e9-hub-package-visibility#1 Signed-off-by: Gnani Rahul <gnani.nutakki@gmail.com>
…kage-visibility fix(e9): verify public hub image distribution
📝 WalkthroughWalkthroughThe release workflow now labels the Hub image with its source repository and verifies anonymous digest access after attestations. Policy tests enforce the workflow structure and ordering, while README and release documentation describe the public package prerequisite and digest-based release contract. ChangesHub image publication and verification
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant ReleaseWorkflow
participant GHCR
participant ReleaseAttachment
ReleaseWorkflow->>GHCR: Publish and attest Hub image digest
ReleaseWorkflow->>GHCR: Logout and inspect digest anonymously
GHCR-->>ReleaseWorkflow: Return public manifest result
ReleaseWorkflow->>ReleaseAttachment: Attach release artifacts after verification
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/release.yml:
- Around line 202-210: Make the “Verify public hub image distribution” step fail
closed by making docker logout failure fatal and running docker manifest inspect
with an empty isolated DOCKER_CONFIG. Update the assertions in
tests/scripts/release_hub_image_policy_test.sh (lines 105-109) and
tools/internal/releasepack/policy_test.go (lines 80-95) to require both
non-ignored logout failure and credential isolation; the workflow site in
.github/workflows/release.yml (lines 202-210) requires the implementation
change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2910f29e-5963-4e21-b3aa-97d2d36ce3cf
📒 Files selected for processing (6)
.github/workflows/release.ymlREADME.mddocs/RELEASE.mdsessions/2026-07-15-e9-hub-package-visibility.mdtests/scripts/release_hub_image_policy_test.shtools/internal/releasepack/policy_test.go
| - name: Verify public hub image distribution | ||
| env: | ||
| HUB_DIGEST: ${{ steps.hub_image.outputs.digest }} | ||
| run: | | ||
| set -euo pipefail | ||
| test -n "$HUB_DIGEST" | ||
| docker logout ghcr.io >/dev/null 2>&1 || true | ||
| docker manifest inspect "${HUB_IMAGE}@${HUB_DIGEST}" >/dev/null | ||
|
|
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Make the anonymous GHCR gate genuinely fail closed.
The workflow ignores logout failure, so a private image can pass manifest inspection using the prior login credentials; both policy suites currently accept that implementation.
.github/workflows/release.yml#L202-L210: make logout fatal and inspect through an empty, isolatedDOCKER_CONFIG.tests/scripts/release_hub_image_policy_test.sh#L105-L109: assert that logout failure is not ignored and credential isolation is present.tools/internal/releasepack/policy_test.go#L80-L95: enforce the same fail-closed and credential-isolation requirements.
📍 Affects 3 files
.github/workflows/release.yml#L202-L210(this comment)tests/scripts/release_hub_image_policy_test.sh#L105-L109tools/internal/releasepack/policy_test.go#L80-L95
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/release.yml around lines 202 - 210, Make the “Verify
public hub image distribution” step fail closed by making docker logout failure
fatal and running docker manifest inspect with an empty isolated DOCKER_CONFIG.
Update the assertions in tests/scripts/release_hub_image_policy_test.sh (lines
105-109) and tools/internal/releasepack/policy_test.go (lines 80-95) to require
both non-ignored logout failure and credential isolation; the workflow site in
.github/workflows/release.yml (lines 202-210) requires the implementation
change.
Release readiness
Promotes
devcommit0e4be12tomain. This release-readiness patch adds a fail-closed gate that signs and attests the immutable Hub image, logs out of GHCR, then requires an anonymous read of that exact digest before publishing release assets.No tag is created by this PR. #172 remains open until an ArdurAI organization package admin performs the one-time, irreversible GitHub Package Settings action to make
sith-hubpublic. Only after that bootstrap and this PR's exact-main CI are green will a fresh immutable beta tag be cut.Verification already complete
devCI: greenRefs #172.
Summary by CodeRabbit
New Features
Documentation
Tests