fix: 修复 release.sh 中 JSON body 换行符转义问题

- 使用 jq --rawfile 替代 --arg 避免 shell 变量换行符转义
- 通过临时文件传递 Release body 内容
- 确保 Gitea Release 页面显示正确的换行格式
This commit is contained in:
douboer
2025-10-15 15:46:58 +08:00
parent 7329a2f3da
commit db46387184
2 changed files with 105 additions and 3 deletions

View File

@@ -174,12 +174,14 @@ else
fi
# 7.2 使用 jq 生成正确的 JSON
# 首先尝试使用原始内容(中文)
# 使用 --arg 参数来正确处理多行文本,避免 \n 转义问题
# 使用临时文件避免 shell 变量中的换行符问题
TEMP_BODY_FILE=$(mktemp)
echo "$TAG_MESSAGE" > "$TEMP_BODY_FILE"
JSON_PAYLOAD=$(jq -n -c \
--arg version "$VERSION" \
--arg title "$VERSION - $RELEASE_TITLE" \
--arg body "$TAG_MESSAGE" \
--rawfile body "$TEMP_BODY_FILE" \
'{
tag_name: $version,
name: $title,
@@ -188,6 +190,9 @@ JSON_PAYLOAD=$(jq -n -c \
prerelease: false
}')
# 清理临时文件
rm -f "$TEMP_BODY_FILE"
echo "🔄 尝试创建 Release (使用中文内容)..."
response=$(curl -s -w "\n%{http_code}" \
-X POST "$GITEA_URL/api/v1/repos/$GITEA_REPO/releases" \