From 0a06c813bcaec9c8ed198b2d987d2b6cda8df6c0 Mon Sep 17 00:00:00 2001 From: junior Date: Mon, 27 Jul 2026 13:32:47 +0000 Subject: [PATCH] =?UTF-8?q?publish.sh:=20address=20review=20=E2=80=94=20fi?= =?UTF-8?q?x=20PR-failure=20format,=20capture=20HTTP=20status,=20append=20?= =?UTF-8?q?activity=20to=20push=20failure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/scripts/publish.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/scripts/publish.sh b/.gitea/workflows/scripts/publish.sh index de880d5..708a567 100755 --- a/.gitea/workflows/scripts/publish.sh +++ b/.gitea/workflows/scripts/publish.sh @@ -334,13 +334,12 @@ if [ -n "$(git status --porcelain)" ]; then git add -A git commit -m "@$NAME: issue #$NUM" fi -push_ok=0 if git push origin "HEAD:$BRANCH"; then - push_ok=1 + : else status=$? echo "git push failed for $BRANCH (exit $status)" - post "$(printf '⚠️ Push to branch `%s` failed (git exit %s). The PR will not open until the push succeeds. Please check the Actions log.' "$BRANCH" "$status")" + post "$(printf '⚠️ Push to branch `%s` failed (git exit %s). The PR will not open until the push succeeds. Please check the Actions log.%s' "$BRANCH" "$status" "$activity")" exit 0 fi git fetch -q origin 2>/dev/null || true @@ -368,17 +367,19 @@ url=$(printf '%s' "$resp" | jq -r '.html_url // empty' 2>/dev/null) prnum=$(printf '%s' "$resp" | jq -r '.number // empty' 2>/dev/null) if [ -z "$url" ]; then title="@$NAME: $TITLE" - resp=$(curl -sS -X POST "${hdr[@]}" "$API/pulls" \ + resp_body=/tmp/pr_create_resp.json + http_status=$(curl -sS -o "$resp_body" -w '%{http_code}' -X POST "${hdr[@]}" "$API/pulls" \ -d "$(jq -nc --arg t "$title" --arg h "$br" --arg b "$prbody" \ '{title:$t, head:$h, base:"main", body:$b}')") - echo "PR create ($br): $resp" + resp=$(cat "$resp_body" 2>/dev/null || true) + echo "PR create ($br): HTTP $http_status — $resp" url=$(printf '%s' "$resp" | jq -r '.html_url // empty' 2>/dev/null) prnum=$(printf '%s' "$resp" | jq -r '.number // empty' 2>/dev/null) fi if [ -z "$url" ]; then err_msg=$(printf '%s' "$resp" | jq -r 'if type=="object" and .message then .message else "(no error message in response)" end' 2>/dev/null) - echo "PR open/lookup failed for $br — response: $resp" - post "$(printf '⚠️ Failed to open PR for branch `%s`.%s\n\nGitea message: %s' "$br" "$activity" "$err_msg")" + echo "PR open/lookup failed for $br — HTTP $http_status — response: $resp" + post "$(printf '⚠️ Failed to open PR for branch `%s`.\n\nHTTP status: %s\nGitea message: %s%s' "$br" "$http_status" "$err_msg" "$activity")" exit 0 fi