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
feat: automate CHANGELOG.md updates from GitHub Release notes (#224)
`CHANGELOG.md` had no automated update mechanism — entries had to be
added manually or not at all. This wires the existing `gh release create
--generate-notes` output directly into `CHANGELOG.md` on every stable
release.
## What changed
### `.github/release.yml` (new)
Configures GitHub's auto-generated release note categories via PR
labels: `breaking`, `feat`/`enhancement`, `fix`/`bug`,
`docs`/`documentation`. Unlabelled PRs fall into "Other Changes";
`ignore-for-release` suppresses an entry entirely.
### `CHANGELOG.md`
Replaced the placeholder with a Keep a Changelog header and an HTML
comment marker that the workflow targets for insertion:
```
<!-- New entries are prepended automatically by the release workflow. -->
```
### `.github/workflows/release.yml` — `update-changelog` job
New job, runs after `release`, stable branches only (`is-release ==
'true'`):
1. Fetches the release body: `gh release view <version> --json body --jq
'.body'`
2. Inserts `## <version> — YYYY-MM-DD` + release notes immediately after
the comment marker using `awk`, leaving the rest of the file intact
3. Commits and pushes back to `release/X.Y` (same pattern as the
existing `promote-api-files` job)
`merge-to-main` gains `update-changelog` in its `needs`, so the PR to
`main` always includes the updated file.
### `.github/PULL_REQUEST_TEMPLATE.md`
Added checklist item: apply one of the release-note label categories
(`breaking` / `feat` / `fix` / `docs`).
### `docs/workflows.md`
Added `update-changelog` row to the `release.yml` job table.
0 commit comments