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