From 73ab6405aae561222cfea2eca14a5beac8360ac3 Mon Sep 17 00:00:00 2001 From: abrown38 Date: Fri, 23 Oct 2026 12:47:17 +0100 Subject: [PATCH] Release script: encode + in the tag and asset names A build of a candidate (0.1.0-rc.1+git4-8fa62f9) put a raw + in the release lookup and the upload's ?name=, where it reads as a space. Housecarl's script has the same fix. Co-Authored-By: Claude Opus 5.5 --- scripts/gitea-release.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/gitea-release.sh b/scripts/gitea-release.sh index 0daf893..70e7880 100755 --- a/scripts/gitea-release.sh +++ b/scripts/gitea-release.sh @@ -114,7 +114,7 @@ done files="$files dist/SHA256SUMS" # The release (created, or found when publishing again). -release=$(call 404 "$api/releases/tags/$tag") +release=$(call 404 "$api/releases/tags/$(printf '%s' "$tag" | sed 's/+/%2B/g')") id=$(printf '%s\n' "$release" | jq -r '.id // empty') if [ -z "$id" ]; then body=$(jq -n --arg tag "$tag" --arg notes "$notes" --argjson pre "$prerelease" \ @@ -127,7 +127,8 @@ for f in $files; do name=${f#dist/} old=$(printf '%s\n' "$release" | jq -r --arg n "$name" '.assets[]? | select(.name == $n) | .id') [ -z "$old" ] || call "" -X DELETE "$api/releases/$id/assets/$old" >/dev/null - call "" -X POST -F "attachment=@$f" "$api/releases/$id/assets?name=$name" >/dev/null + # A + (build metadata, 0.1.0-rc.1+git4-8fa62f9) would be a space in a query. + call "" -X POST -F "attachment=@$f" "$api/releases/$id/assets?name=$(printf '%s' "$name" | sed 's/+/%2B/g')" >/dev/null echo "gitea-release: attached $name" done