From 83dc42dd865a46ef0c9fb1302c16c741f975f8c5 Mon Sep 17 00:00:00 2001 From: harald Date: Mon, 7 Sep 2026 16:54:46 +0200 Subject: [PATCH] fix(release): write UTF-8 without BOM for release payload --- scripts/publish-release.ps1 | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/scripts/publish-release.ps1 b/scripts/publish-release.ps1 index baff886..f1cbfe3 100644 --- a/scripts/publish-release.ps1 +++ b/scripts/publish-release.ps1 @@ -74,21 +74,37 @@ $ExistingReleases = try { $Release = $ExistingReleases | Where-Object { $_.tag_name -eq $TagName } if (-not $Release) { - $Changelog = Get-Content (Join-Path $ProjectRoot "CHANGELOG.md") -Raw - $Body = @{ + $Utf8NoBom = New-Object System.Text.UTF8Encoding($false) + $Changelog = [System.IO.File]::ReadAllText((Join-Path $ProjectRoot "CHANGELOG.md"), $Utf8NoBom) + $PayloadPath = Join-Path $DistDir "release_req.json" + $Payload = @{ tag_name = $TagName name = "Sanctum $TagName (Windows x86_64)" body = $Changelog draft = $false prerelease = $false - } | ConvertTo-Json + } | ConvertTo-Json -Depth 5 + [System.IO.File]::WriteAllText($PayloadPath, $Payload, $Utf8NoBom) - $Release = Invoke-RestMethod -Uri "$GiteaUrl/api/v1/repos/$Owner/$Repo/releases" -Headers $Headers -Method Post -Body $Body -ContentType "application/json; charset=utf-8" + + $CreateResp = & curl.exe -s -X POST "$GiteaUrl/api/v1/repos/$Owner/$Repo/releases" ` + -H "Authorization: token $Token" ` + -H "Content-Type: application/json; charset=utf-8" ` + --data-binary "@$PayloadPath" + + Remove-Item $PayloadPath -Force -ErrorAction SilentlyContinue + + $Release = $CreateResp | ConvertFrom-Json + if (-not $Release.id) { + Write-Error "Fehler beim Erstellen des Releases: $CreateResp" + exit 1 + } Write-Host "[OK] Release $TagName auf Gitea angelegt (ID: $($Release.id))." -ForegroundColor Green } else { Write-Host "[INFO] Release $TagName existiert bereits (ID: $($Release.id))." -ForegroundColor Yellow } + $UploadUrl = "$GiteaUrl/api/v1/repos/$Owner/$Repo/releases/$($Release.id)/assets" # ZIP Asset hochladen