Skip to content

P0 E9: publish beta draft release by database ID #159

Description

@gnanirahulnutakki

Parent: #27. Follow-up to #154 and failed beta tag workflow 29367518390.

Incident

Signed tag v0.3.0-beta.1 passed GitHub tag verification, and the release job built archives, SBOMs, Sigstore bundles, and attestations into a draft. The final beta publication step failed safely because GET /releases/tags/{tag} returned 404 for the draft release, leaving it unpublished. Latest stable v0.2.1 was not changed.

Scope

  • Resolve the draft release through gh release view <tag> --json databaseId, which can read the workflow-created draft, then patch that ID with draft=false, prerelease=true, and API string make_latest=false.
  • Tighten the policy test to require the draft-safe lookup.
  • Preserve all tag classification, signed/annotated/main ancestry gates, stable release behavior, and immutable recovery.
  • Publish a new signed immutable v0.3.0-beta.2 only after the correction is proven through dev -> main; do not rewrite, delete, or force-push v0.3.0-beta.1.

Acceptance

  • A beta draft can reach the final publication call without tag-lookup 404.
  • The released beta is a GitHub prerelease and does not replace the latest stable release.
  • Failed beta.1 remains unpublished and untouched.

Refs: #154, #156, #157.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions