Skip to content

feat(release): publish each tag as an immutable GitHub release - #12

Open
absorbb wants to merge 1 commit into
mainfrom
feat/immutable-releases
Open

feat(release): publish each tag as an immutable GitHub release#12
absorbb wants to merge 1 commit into
mainfrom
feat/immutable-releases

Conversation

@absorbb

@absorbb absorbb commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #11 (merged before this commit could ride along).

  • The repo now has GitHub immutable releases enabled (PUT /repos/jitsucom/github-workflows/immutable-releasesenabled: true). A tag attached to a published release can't be moved or deleted while the release exists, and the name can never be reused — so uses: …@1.32.20260826 in consumers is as strong as a SHA pin.
  • Only tags attached to a release are protected, so release.yml now creates the tag via gh release create --target "$GITHUB_SHA" instead of pushing a bare tag first: tag + release are created atomically, there is never a window with an unprotected tag on origin, and a failed run leaves nothing behind (rerun = clean retry).
  • README documents the guarantee.
  • Releases were created by hand for the tags consumers reference or that exist since the setting went on, all immutable: true: 1.30.20260821, 1.32.20260826, 1.34.20260826. Older tags stay ordinary tags.

Test plan

  • YAML parses; ai-review.yml untouched
  • The three existing releases report immutable: true
  • After merge: the release run publishes 1.36.<date> (or similar) as a release, gh api repos/jitsucom/github-workflows/releases/tags/<tag> shows immutable: true, and the tag can't be force-moved

🤖 Generated with Claude Code

The repo now has immutable releases enabled; a bare tag is not protected,
only tags attached to a published release. release.yml publishes one per
tag so consumers pinning @<tag> get SHA-pin guarantees.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@jitsu-code-review jitsu-code-review 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.

Reviewed the release workflow and the corresponding versioning documentation. The workflow creates the release tag at the triggering commit with the required contents permission, and existing repository releases confirm immutability is active. No actionable findings.

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