Repository navigation
feat: sign all release package tags with Lerna - #50
Merged
Merged
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The tagging workflow currently creates only the supplied tag and leaves package tags unsigned. Replace that single-tag operation with a signed batch covering every public package discovered by Lerna, plus an optional global beta tag, at an explicitly approved commit on
next.Use
lerna listandlerna execwith native Git/GPG signing so tagging preserves the approved commit and existing package versions. Verify all new signatures and push the complete batch atomically. Preserve existing tags for unchanged independent packages; reject conflicting global tags or changed packages that reuse an existing version. Retries create only missing tags, and historical unsigned tags are not rewritten.Keep the existing
releaseenvironment approval and serialized release concurrency. Import the dedicated signing key only for a nonempty batch, validate its fingerprint/email, and clean the runner keyring even after failure. The release environment's key, identity variables, and recovery certificate are configured; the public key is registered to Omer's GitHub account with a verified no-reply email and expires on 2027-10-31. Update the release documentation with setup and usage.Validation:
pnpm build,pnpm lint,pnpm test(14 passed), andpnpm test:e2e(361 passed, 1 skipped). Temporary repositories and a disposable key exercised Lerna package discovery, private-package exclusion, signed package/global tags, signature verification, retries, preservation of old tags, conflicting package/global targets, version reuse, missing keys, mismatched email, cleanup, and atomic rejection of a concurrent remote tag conflict. Workflow YAML, shell syntax, and actionlint 1.7.12 passed.No real release tags were created or pushed, and the workflow has not been dispatched. Publishing remains separately approved; its existing requirement that package tags match the approved publishing commit is unchanged.