feat(release): credit contributors automatically in the release notes - #432
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
🤖 ThrillhouseBot PR SummaryWhat this PR doesThe PR modifies the release workflow to use the GitHub Releases API to generate additional release notes (including new contributor credit) and appends them to the curated changelog notes, while keeping the release process robust. It also adds a release.yml configuration to shape the generated section and includes a manual contributor entry in CHANGELOG.md. Control-Flow Diagram🔀 Show diagramflowchart TD
A["Copy release_notes.md to release_body.md"] --> B["Call generate-notes API"]
B --> C{"generation succeeded\nand generated != empty?"}
C -- yes --> D["Append generated notes to release_body.md"]
C -- no --> E["Emit warning (notes only)"]
D --> F{"Release TAG exists?"}
E --> F
F -- yes --> G["gh release upload artifacts\nand gh release edit with --notes-file release_body.md"]
F -- no --> H["gh release create with --notes-file release_body.md"]
Changes Overview
Changed Files
Risk Assessment
No new issues found in this PR, but the review cannot be approved until CI is confirmed green.
|
| Check | Type | Status | Detail |
|---|---|---|---|
| frontend | check-run | ⏳ Pending | - |
| changes | check-run | ⏳ Pending | - |
| trivy | check-run | ⏳ Pending | - |
| format | check-run | ⏳ Pending | - |
| actionlint | check-run | ⏳ Pending | - |
| test | check-run | ⏳ Pending | - |
| dependency-review | check-run | ⏳ Pending | - |
Automated review by ThrillhouseBot. Reply with /review to re-run.
Release notes were built from CHANGELOG.md alone, so GitHub's generated "New Contributors" section never ran — no release from v0.3.0 onward has one. v0.5.0 would have shipped the same way, without crediting @matheusandre1 for the wider ignored-files defaults (#429). The workflow now asks the Release Notes API for the generated section and appends it after the curated notes. Generated explicitly rather than via `gh release create --generate-notes` because `gh release edit` has no equivalent flag — the existing re-run path would have overwritten the body and dropped the credit. Best-effort: a failed generation warns and publishes the CHANGELOG notes alone rather than failing the release. .github/release.yml shapes that section and excludes Dependabot and github-actions, since seven bot PRs in one release would bury the humans in both the PR list and the contributor credit; the bumps are already summarised under Dependencies. No changelog maintenance: crediting stays automatic on every future release. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
b65b2c4 to
d2cb2e4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|



What type of PR is this?
Description
Release notes were assembled from
CHANGELOG.mdalone, so GitHub's generated New Contributorssection never ran and outside contributors went uncredited.
v0.5.0 has one: @matheusandre1 wrote the wider default ignored-files patterns (#429).
Workflow
gh release creategains the generated section — but not via--generate-notes. The existingworkflow has two paths, and
gh release edit(the re-run path) has no--generate-notesflag,so adding it only to
createwould mean any re-run silently overwrites the body and drops thecredit. Instead the notes are generated once through the Release Notes API and both paths publish
the same
release_body.md:Best-effort by design: if generation fails the release still publishes with the curated notes and a
warning, rather than failing at the last step of a release.
contents: writeandGH_TOKENare already present on that step, so no permission change..github/release.yml(new)Shapes the generated section. Excludes
dependabotandgithub-actions: seven Dependabot PRslanded in v0.5.0 and would bury the humans in both the PR list and the contributor credit, and the
bumps are already summarised under Dependencies in the changelog.
Related Issues
N/A — release process.
How Has This Been Tested?
Manual testing
.github/release.ymlparses and carries thechangelogroot key GitHub expectsConfirmed
gh release editlacks--generate-notes(gh release edit --help), which is whatdrove the generate-once approach rather than the one-flag version
Confirmed the step already exports
GH_TOKENand the job holdscontents: write, both requiredby the
generate-notesendpointContributors verified from the branch itself:
git shortlog -sne origin/main..origin/release/v0.5.0→ Thiago Gonzaga (28), dependabot (7), Matheus André (1, feat(review): enhance ignored files configuration and add tests for default patterns #429)
The generated section itself can only be verified when a release is cut — the failure mode if
anything is wrong is a warning plus notes-as-before, not a broken release.
Checklist