Skip to content

release: prepare v0.3.0-beta.5 public Hub distribution - #174

Merged
gnanirahulnutakki merged 2 commits into
mainfrom
dev
Jul 15, 2026
Merged

release: prepare v0.3.0-beta.5 public Hub distribution#174
gnanirahulnutakki merged 2 commits into
mainfrom
dev

Conversation

@gnanirahulnutakki

@gnanirahulnutakki gnanirahulnutakki commented Jul 15, 2026

Copy link
Copy Markdown
Member

Release readiness

Promotes dev commit 0e4be12 to main. 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-hub public. Only after that bootstrap and this PR's exact-main CI are green will a fresh immutable beta tag be cut.

Verification already complete

Refs #172.

Summary by CodeRabbit

  • New Features

    • Published Hub container images now include a source-repository label for improved traceability.
    • Releases verify that the exact Hub image digest is publicly accessible before publication.
  • Documentation

    • Clarified the one-time requirement to make the Hub container package public.
    • Documented digest-pinned distribution, trust requirements, and anonymous verification steps.
  • Tests

    • Added release-policy checks for image traceability, attestations, credential logout, verification ordering, and failure-closed behavior.

Gnani Rahul and others added 2 commits July 14, 2026 23:45
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
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

Hub image publication and verification

Layer / File(s) Summary
Workflow publication and verification
.github/workflows/release.yml
The Hub image receives an OCI source label, and the release job logs out of GHCR before inspecting the published image digest anonymously.
Release policy validation
tests/scripts/release_hub_image_policy_test.sh, tools/internal/releasepack/policy_test.go
Shell and Go tests validate image metadata, attestations, failure-closed behavior, logout ordering, manifest inspection, and release attachment ordering.
Publication contract and release records
README.md, docs/RELEASE.md, sessions/...
Documentation and the session record describe public package configuration, digest-bound publication, anonymous verification, and release gating.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

Possibly related PRs

  • ArdurAI/sith#171 — Updates the same release workflow and Hub image policy validation for digest-pinned publication and attestations.

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
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the release-prep focus and the new public Hub distribution gate.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between ff735ca and 0e4be12.

📒 Files selected for processing (6)
  • .github/workflows/release.yml
  • README.md
  • docs/RELEASE.md
  • sessions/2026-07-15-e9-hub-package-visibility.md
  • tests/scripts/release_hub_image_policy_test.sh
  • tools/internal/releasepack/policy_test.go

Comment on lines +202 to +210
- 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 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, isolated DOCKER_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-L109
  • tools/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.

@gnanirahulnutakki
gnanirahulnutakki merged commit 368b3a5 into main Jul 15, 2026
12 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