From 0aa986a0d8c8099e3e414b3b76fe64474e45337a Mon Sep 17 00:00:00 2001 From: shaw Date: Sun, 20 Jul 2025 00:52:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BD=BB=E5=BA=95=E4=BF=AE=E5=A4=8D=20Y?= =?UTF-8?q?AML=20=E8=AF=AD=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 避免使用 heredoc,改用字符串拼接方式构建消息 - 使用 $'\n' 来处理换行符 - 将 jq 输出直接通过管道传给 curl - 确保 YAML 语法正确无误 --- .github/workflows/auto-release.yml | 52 ++++++++++++------------------ 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 8559a226..23665d1b 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -149,45 +149,35 @@ jobs: TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} continue-on-error: true run: | - # 准备 Telegram 消息内容 VERSION="${{ steps.next_version.outputs.new_version }}" TAG="${{ steps.next_version.outputs.new_tag }}" REPO="${{ github.repository }}" - # 获取更新内容(限制长度) + # 获取更新内容并限制长度 CHANGELOG="${{ steps.changelog.outputs.content }}" - # 截取前 1000 个字符避免消息过长 CHANGELOG_TRUNCATED=$(echo "$CHANGELOG" | head -c 1000) if [ ${#CHANGELOG} -gt 1000 ]; then CHANGELOG_TRUNCATED="${CHANGELOG_TRUNCATED}..." fi - # 构建消息,使用 JSON 格式避免转义问题 - MESSAGE=$(cat <<-ENDMSG -🚀 *Claude Relay Service 新版本发布!* - -📦 版本号: \`${VERSION}\` - -📝 *更新内容:* -${CHANGELOG_TRUNCATED} - -🐳 *Docker 部署:* -\`\`\`bash -docker pull weishaw/claude-relay-service:${TAG} -docker pull weishaw/claude-relay-service:latest -\`\`\` - -🔗 *相关链接:* -• [GitHub Release](https://github.com/${REPO}/releases/tag/${TAG}) -• [完整更新日志](https://github.com/${REPO}/blob/main/CHANGELOG.md) -• [Docker Hub](https://hub.docker.com/r/weishaw/claude-relay-service) - -#ClaudeRelay #Update #v${VERSION//./_} -ENDMSG - ) + # 构建消息内容 + MESSAGE="🚀 *Claude Relay Service 新版本发布!*"$'\n'$'\n' + MESSAGE+="📦 版本号: \`${VERSION}\`"$'\n'$'\n' + MESSAGE+="📝 *更新内容:*"$'\n' + MESSAGE+="${CHANGELOG_TRUNCATED}"$'\n'$'\n' + MESSAGE+="🐳 *Docker 部署:*"$'\n' + MESSAGE+="\`\`\`bash"$'\n' + MESSAGE+="docker pull weishaw/claude-relay-service:${TAG}"$'\n' + MESSAGE+="docker pull weishaw/claude-relay-service:latest"$'\n' + MESSAGE+="\`\`\`"$'\n'$'\n' + MESSAGE+="🔗 *相关链接:*"$'\n' + MESSAGE+="• [GitHub Release](https://github.com/${REPO}/releases/tag/${TAG})"$'\n' + MESSAGE+="• [完整更新日志](https://github.com/${REPO}/blob/main/CHANGELOG.md)"$'\n' + MESSAGE+="• [Docker Hub](https://hub.docker.com/r/weishaw/claude-relay-service)"$'\n'$'\n' + MESSAGE+="#ClaudeRelay #Update #v${VERSION//./_}" - # 准备 JSON 数据 - JSON_DATA=$(jq -n \ + # 使用 jq 构建 JSON 并发送 + jq -n \ --arg chat_id "${TELEGRAM_CHAT_ID}" \ --arg text "${MESSAGE}" \ '{ @@ -195,9 +185,7 @@ ENDMSG text: $text, parse_mode: "Markdown", disable_web_page_preview: false - }') - - # 发送消息到 Telegram + }' | \ curl -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ -H "Content-Type: application/json" \ - -d "${JSON_DATA}" \ No newline at end of file + -d @- \ No newline at end of file