From c50869023dcfabe01aa65d28675317fad7bb37df Mon Sep 17 00:00:00 2001 From: rcourtman Date: Sun, 23 Nov 2025 09:24:04 +0000 Subject: [PATCH] Fix: use GitHub API directly for release creation gh release create doesn't work properly when the tag already exists - it creates an 'untagged' release instead of attaching to the existing tag. Using the API directly with POST to /releases fixes this. --- .github/workflows/create-release.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 0c3ca6e57..b50a6acf7 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -426,18 +426,17 @@ jobs: echo "Creating draft release for ${TAG}..." - # Tag now exists, so gh release create will attach to it - gh release create "${TAG}" \ - --draft \ - --title "Pulse ${TAG}" \ - --notes-file "$NOTES_FILE" + # Use GitHub API directly to create release with existing tag + # gh release create has issues when tag already exists + RELEASE_JSON=$(gh api "repos/${{ github.repository }}/releases" \ + -X POST \ + -F tag_name="${TAG}" \ + -F name="Pulse ${TAG}" \ + -F body="$(cat $NOTES_FILE)" \ + -F draft=true) rm -f "$NOTES_FILE" - # Get the release ID - echo "Fetching release details..." - RELEASE_JSON=$(gh api "repos/${{ github.repository }}/releases/tags/${TAG}") - RELEASE_ID=$(echo "$RELEASE_JSON" | jq -r '.id') RELEASE_URL=$(echo "$RELEASE_JSON" | jq -r '.html_url')