From 19731a9ee35c4b26bd47201f16346b1d25908635 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Wed, 25 Mar 2026 19:42:13 +1100 Subject: [PATCH] Add merged branch release notes to Gitea release body MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generates release notes from merged branches since last tag and includes them in the release body via Gitea API. 💘 Generated with Crush Assisted-by: Claude Sonnet 4.6 via Crush --- .woodpecker/release.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 9ab5495..54a137f 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -15,16 +15,23 @@ steps: depends_on: [test] - name: release - image: alpine/curl + image: git.unkin.net/unkin/almalinux9-base:20260325 environment: DRONECI_PASSWORD: from_secret: DRONECI_PASSWORD commands: - | + PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") + if [ -n "$PREV_TAG" ]; then + NOTES=$(git log "${PREV_TAG}..${CI_COMMIT_TAG}" --merges --pretty=format:"- %s") + else + NOTES=$(git log --merges --pretty=format:"- %s") + fi + BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n') RELEASE_ID=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \ -u "droneci:$DRONECI_PASSWORD" \ -H "Content-Type: application/json" \ - -d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\"}" \ + -d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":\"${BODY}\"}" \ | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \ -u "droneci:$DRONECI_PASSWORD" \