From 1a232f36af1738560fced9176098a6025853723f Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 13 Mar 2026 13:02:25 +0000 Subject: [PATCH] Adding changelog generation --- script/release | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/script/release b/script/release index f6660a1..838a8d1 100755 --- a/script/release +++ b/script/release @@ -67,6 +67,29 @@ chmod +x "${DIST}"/* echo "==> Binaries:" ls -lh "${DIST}"/ +# ── Changelog ────────────────────────────────────────────────── +echo "==> Generating changelog..." +PREV_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") +if [ -n "$PREV_TAG" ]; then + CHANGELOG=$(git log "${PREV_TAG}..HEAD" --pretty=format:"- %s" --no-merges) + RANGE="${PREV_TAG}...${TAG}" +else + CHANGELOG=$(git log --pretty=format:"- %s" --no-merges) + RANGE="initial...${TAG}" +fi + +if [ -z "$CHANGELOG" ]; then + CHANGELOG="- No changes since last release" +fi + +RELEASE_BODY="## What's Changed + +${CHANGELOG} + +**Full diff:** ${GITEA_URL}/${REPO}/compare/${RANGE}" + +echo "$RELEASE_BODY" + # ── Tag & Push ───────────────────────────────────────────────── echo "==> Tagging ${TAG}..." git tag -a "$TAG" -m "Release ${TAG}" @@ -74,11 +97,20 @@ git push origin "$TAG" # ── Create Gitea Release ────────────────────────────────────── echo "==> Creating release on Gitea..." +RELEASE_JSON=$(python3 -c " +import json, sys +print(json.dumps({ + 'tag_name': sys.argv[1], + 'name': sys.argv[1], + 'body': sys.argv[2] +})) +" "$TAG" "$RELEASE_BODY") + RELEASE_RESPONSE=$(curl -sf -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ "${GITEA_URL}/api/v1/repos/${REPO}/releases" \ - -d "{\"tag_name\": \"${TAG}\", \"name\": \"${TAG}\", \"body\": \"Release ${TAG}\"}") + -d "$RELEASE_JSON") RELEASE_ID=$(echo "$RELEASE_RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")