From 95d7681b031cf6a7f3866efc245a2bbaadcba9be Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Mon, 20 Jul 2026 16:07:40 -0400 Subject: [PATCH] ci: extract release notes from commitizen-style changelog headings The release-notes awk matched Keep-a-Changelog "## [X.Y.Z]" brackets, but commitizen writes "## vX.Y.Z (date)", so every release body fell back to the "Release vX.Y.Z" stub. Match the "## v" heading form instead so the release carries its actual changelog section. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01NGzHtDvJur9U7ysgRKRUTN --- .gitea/workflows/release.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 7325786..395c2e1 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -85,7 +85,9 @@ jobs: run: | v="${{ steps.bump.outputs.version }}" # Body = this version's section from CHANGELOG.md (fallback to a stub). - body=$(awk "/^## \\[$v\\]/{f=1;next} /^## \\[/{f=0} f" CHANGELOG.md) + # Commitizen writes headings as "## vX.Y.Z (date)", so match that form + # (not the Keep-a-Changelog "## [X.Y.Z]" brackets) and stop at the next. + body=$(awk "/^## v$v/{f=1;next} /^## v/{f=0} f" CHANGELOG.md) [ -z "$body" ] && body="Release v$v" jq -n --arg tag "v$v" --arg name "v$v" --arg body "$body" \ '{tag_name:$tag, name:$name, body:$body, draft:false, prerelease:false}' \