From f6bc55bc7f8a27596341833d474674b93f775ddb Mon Sep 17 00:00:00 2001 From: Djeex Date: Sat, 22 Aug 2026 15:53:47 +0200 Subject: [PATCH] Format release notes as a categorized changelog based on PR labels --- .gitea/workflows/ci.yml | 47 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index b0bba3b..17303d8 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -121,11 +121,52 @@ jobs: docker push "$IMAGE:$MINOR_TAG" docker push "$IMAGE:$VERSION" - CHANGED_LIST=$(echo "$CHANGED" | tr '\n' ',' | sed 's/,$//' | sed 's/,/, /g') - BODY="Automated release. Image: ${IMAGE}:${VERSION}. Changed files: ${CHANGED_LIST}" + TRIGGER_MSG=$(git log -1 --format=%s "${{ github.sha }}") + PR_NUM=$(echo "$TRIGGER_MSG" | grep -oE '#[0-9]+' | head -1 | tr -d '#') + + CATEGORY="🔧 Maintenance" + CHANGE_TITLE="$TRIGGER_MSG" + + if [ -n "$PR_NUM" ]; then + PR_JSON=$(curl -s -H "Authorization: token ${{ secrets.CI_PUSH_TOKEN }}" \ + "https://git.djeex.fr/api/v1/repos/Djeex/adguard-cidre/pulls/$PR_NUM") + PR_TITLE=$(echo "$PR_JSON" | jq -r '.title // empty') + LABELS=$(echo "$PR_JSON" | jq -r '.labels[].name' 2>/dev/null) + + [ -n "$PR_TITLE" ] && CHANGE_TITLE="$PR_TITLE" + + if echo "$LABELS" | grep -qx 'bug'; then + CATEGORY="⚠️ Hotfix" + elif echo "$LABELS" | grep -qx 'major'; then + CATEGORY="💥 Breaking change" + elif echo "$LABELS" | grep -qx 'minor'; then + CATEGORY="✨ Update" + fi + fi + + CHANGED_LIST=$(echo "$CHANGED" | sed 's/^/- /') + + BODY=$(cat <