diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8d97c5f..5d5844d 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -84,22 +84,20 @@ jobs: REPO_NAME="${{ github.event.repository.name }}" GITEA_URL="${{ github.server_url }}" - # Prepare release body - RELEASE_BODY="SRFPlay Jellyfin Plugin ${{ steps.get_version.outputs.version }}\n\nSee attached files for plugin installation." - RELEASE_BODY_JSON=$(echo -n "${RELEASE_BODY}" | jq -Rs .) + # Build JSON payload with jq to handle escaping properly + VERSION="${{ steps.get_version.outputs.version }}" + PAYLOAD=$(jq -n \ + --arg tag "${VERSION}" \ + --arg name "Release ${VERSION}" \ + --arg body "SRFPlay Jellyfin Plugin ${VERSION}\n\nSee attached files for plugin installation." \ + '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') # Create release using Gitea API RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ "${GITEA_URL}/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases" \ - -d "{ - \"tag_name\": \"${{ steps.get_version.outputs.version }}\", - \"name\": \"Release ${{ steps.get_version.outputs.version }}\", - \"body\": ${RELEASE_BODY_JSON}, - \"draft\": false, - \"prerelease\": false - }") + -d "${PAYLOAD}") HTTP_CODE=$(echo "$RESPONSE" | tail -n1) BODY=$(echo "$RESPONSE" | sed '$d')