ci: append a "## Changes" commit list to each release - #32
Merged
Conversation
Each GitHub Release currently shows only dist's install + download table. Add a workflow that, after the Release workflow completes for a tag, appends a "## Changes" section listing every commit in the release (since the previous version tag) as `- <sha> <subject>` — GitHub auto-links the sha and PR number. - Triggers on `workflow_run` (Release completion), not `on: release`: dist creates the release with GITHUB_TOKEN and GitHub suppresses workflow runs from GITHUB_TOKEN-caused events, so `on: release` would never fire. - Reads everything through the GitHub API (tags + compare) instead of checking out the repo, so the privileged workflow_run job never checks out untrusted code (resolves CodeQL actions/untrusted-checkout). - Idempotent (skips if a Changes section exists), handles the first release, and only runs for successful tag-push Release runs. - Standalone file, so `dist generate` never touches it.
snowmead
force-pushed
the
ci/release-notes
branch
from
June 17, 2026 12:40
661075f to
e674396
Compare
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.
Each GitHub Release currently shows only dist's install + download table — nothing about what changed. This adds
.github/workflows/release-notes.yml, which appends a## Changessection listing every commit since the previous version tag.Format:
- <short-sha> <subject>(e.g.- fcb5ec2 feat(mcp): … (#30)). GitHub auto-links the SHA and the trailing(#NN).Why
workflow_run, noton: release: dist'shostjob creates the release with the defaultGITHUB_TOKEN, and GitHub suppresses workflow runs triggered byGITHUB_TOKEN-caused events — so anon: releasetrigger would silently never fire. Triggering on the Release workflow's completion is not suppressed and guarantees the release already exists. It's a standalone file, so regeneratingrelease.ymlwithdist generatenever touches it.Safety / robustness:
## Changessection (re-run safe).event == 'push'), so PR runs ofrelease.ymlare skipped.git log(data),ref:is a hexhead_sha, andcheckoutis SHA-pinned.Verified the underlying logic locally against the existing tags:
Takes effect on the next release tag (v0.5.0+). v0.4.0 can be backfilled separately if desired.
🤖 Generated with Claude Code