You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GHCR packages may remain private after first publication
.github/鈥媤orkflows/鈥媟elease.yml:77
First publication of a personal-account-scoped GHCR package defaults to private. This workflow pushes the four packages but never arranges public visibility, while the README and runtime catalog expose them as pullable defaults; a first release can therefore succeed yet remain unavailable to users. Add the required one-time package-visibility setup to the release procedure (or an automated visibility step) before presenting these as public artifacts.
Validate full SemVer tag format before starting matrix jobs
.github/鈥媤orkflows/鈥媟elease.yml:43
The trigger also matches malformed tags such as v1garbage, but this check rejects only build metadata. The pinned metadata action skips invalid SemVer and emits no version tag, so such a tag cannot be published and starts all four matrix jobs only to fail. Validate the complete vMAJOR.MINOR.PATCH[-PRERELEASE] form here before checkout.
Reviewed the remaining malformed-tag advisory. No second SemVer parser is being added: the pinned docker/metadata-action rejects invalid SemVer and emits no version tag, and Buildx refuses a registry push without a tag. Those image jobs fail, so needs: images prevents release creation. Earlier rejection would improve the error path, but duplicating SemVer parsing is unnecessary for this minimal workflow.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
馃數 Needs a closer look
The concurrency configuration can cancel pending tagged releases instead of serializing all of them.
Review effort: Balanced Findings: None
Previously missed (1)
In code that hasn't changed since last review
Prevent pending tag releases from being canceled
.github/鈥媤orkflows/鈥媟elease.yml:13
cancel-in-progress: false protects only the running release. GitHub still keeps a single pending run by default, so if three tags are pushed while the first release is running, the third run cancels the second and that version is never published. Add the larger concurrency queue so tag releases are actually serialized rather than replaced.
Incomplete tag validation permits malformed release tags
.github/鈥媤orkflows/鈥媟elease.yml:43
The trigger accepts any tag beginning with v plus a digit, but this guard only rejects +. A valid Git ref such as v1.2.3/foo reaches the workflow; metadata-action normalizes / to - before SemVer validation and publishes v1.2.3-foo, while this script treats the raw tag as stable and later references the nonexistent :v1.2.3/foo. Validate the complete supported tag grammar before any images are published.
# Older stable releases may publish, but must not roll latest back.
if [[ -z "$latest" || "$(printf '%s\n' "$latest" "$TAG" | sort -V | tail -n 1)" == "$TAG" ]]; then
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
latestonly for stable versions, include SBOM/provenance, and create a GitHub Release with generated notes after all images publish.GITHUB_TOKEN; no new secrets are required.Validation
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12 .github/workflows/*.ymlgo test ./...make lintlinux/amd64andlinux/arm64, with SBOM/provenance enabled.No release tag has been pushed or images published as part of this change.