fix(release): Gitea 1.22 API использует name/body вместо title/note
Релиз: архив исходников / Упаковка и публикация релиза (push) Successful in 4s
Релиз: архив исходников / Упаковка и публикация релиза (push) Successful in 4s
Корневая причина всех пустых релизов: Gitea 1.22.1 API принимает поля 'name'/'body' для POST и PATCH, а 'title'/'note' молча игнорируются. - POST CreateRelease: title/note name/body - PATCH EditRelease: title/note name/body - Добавлено логирование ответа PATCH для диагностики - concurrency group предотвращает параллельные run'ы
This commit is contained in:
@@ -323,7 +323,7 @@ jobs:
|
||||
if [ "${HOST}" = "github.com" ]; then
|
||||
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target_commitish\":\"${TARGET_COMMITISH}\",\"name\":\"${RELEASE_TITLE}\",\"body\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
||||
else
|
||||
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target\":\"${TARGET_COMMITISH}\",\"title\":\"${RELEASE_TITLE}\",\"note\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
||||
RELEASE_PAYLOAD="{\"tag_name\":\"${TAG}\",\"target_commitish\":\"${TARGET_COMMITISH}\",\"name\":\"${RELEASE_TITLE}\",\"body\":${BODY_JSON},\"draft\":false,\"prerelease\":false}"
|
||||
fi
|
||||
|
||||
echo ">>> Создание релиза для тега ${TAG}..."
|
||||
@@ -363,14 +363,13 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Always PATCH the release to guarantee title + note are set
|
||||
# Always PATCH the release to guarantee name + body are set
|
||||
# (handles race condition when parallel run creates empty release)
|
||||
echo ">>> Обновление релиза (ID: ${RELEASE_ID}) — title + note..."
|
||||
echo ">>> Обновление релиза (ID: ${RELEASE_ID}) — name + body..."
|
||||
PATCH_PAYLOAD="{\"name\":\"${RELEASE_TITLE}\",\"body\":${BODY_JSON}}"
|
||||
if [ "${HOST}" = "github.com" ]; then
|
||||
PATCH_PAYLOAD="{\"name\":\"${RELEASE_TITLE}\",\"body\":${BODY_JSON}}"
|
||||
PATCH_URL="https://api.github.com/repos/${REPO}/releases/${RELEASE_ID}"
|
||||
else
|
||||
PATCH_PAYLOAD="{\"title\":\"${RELEASE_TITLE}\",\"note\":${BODY_JSON}}"
|
||||
PATCH_URL="${SERVER}/api/v1/repos/${REPO}/releases/${RELEASE_ID}"
|
||||
fi
|
||||
PATCH_RESP=$(curl -sS -X PATCH \
|
||||
@@ -379,7 +378,8 @@ jobs:
|
||||
"${EXTRA_HEADERS[@]}" \
|
||||
"${PATCH_URL}" \
|
||||
-d "${PATCH_PAYLOAD}")
|
||||
echo ">>> Релиз обновлён"
|
||||
PATCH_NAME=$(printf '%s' "${PATCH_RESP}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('name',''))" 2>/dev/null || echo '')
|
||||
echo ">>> Релиз обновлён (name: ${PATCH_NAME})"
|
||||
|
||||
if [ "${HOST}" = "github.com" ]; then
|
||||
UPLOAD_BASE=$(printf '%s' "${RELEASE_JSON}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('upload_url','').split('{')[0])")
|
||||
|
||||
Reference in New Issue
Block a user