🐛 修复commit信息提取错误
Hello from ImmortalWrt / say-hello (push) Successful in 0s Details

This commit is contained in:
csh 2025-11-03 11:19:46 +08:00
parent b57c0cc9d6
commit bf6698ab3e
1 changed files with 30 additions and 34 deletions

View File

@ -67,7 +67,7 @@ env:
# - "true": 创建为草稿,不会立即发布 # - "true": 创建为草稿,不会立即发布
# - "false": 立即发布 Release # - "false": 立即发布 Release
RELEASE_IS_DRAFT: "false" RELEASE_IS_DRAFT: "false"
# 统一管理 pre-release 关键词 # 统一管理 pre-release 关键词
PRERELEASE_KEYWORDS: "alpha|beta|rc|pre|preview|dev|test" PRERELEASE_KEYWORDS: "alpha|beta|rc|pre|preview|dev|test"
# 额外要上传到 Release 的文件(空格分隔) # 额外要上传到 Release 的文件(空格分隔)
# 例如: "README.md LICENSE docs/guide.pdf" # 例如: "README.md LICENSE docs/guide.pdf"
@ -499,8 +499,8 @@ jobs:
echo "" echo ""
echo "📊 提交统计:" echo "📊 提交统计:"
echo " 有效提交: $VALID_COUNT" echo " 有效提交: $VALID_COUNT"
echo " ⏭️ 已跳过: $SKIPPED_COUNT" echo " ⏭️ 已跳过: $SKIPPED_COUNT"
echo " 📝 总计: $((VALID_COUNT + SKIPPED_COUNT))" echo " 📝 总计: $((VALID_COUNT + SKIPPED_COUNT))"
echo "" echo ""
@ -531,46 +531,40 @@ jobs:
echo " [$((i+1))/$VALID_COUNT] ${hash:0:7}: ${message:0:60}..." echo " [$((i+1))/$VALID_COUNT] ${hash:0:7}: ${message:0:60}..."
# 构建提交链接 # 构建提交链接 - 使用短 hash 格式
short_hash="${hash:0:7}" short_hash="${hash:0:7}"
COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))" COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))"
# 构建作者信息
AUTHOR_INFO=""
if [ -n "$author" ]; then
AUTHOR_INFO=" by @${author}"
fi
# 处理 body (如果存在) # 处理 body (如果存在)
if [ -n "$body" ]; then if [ -n "$body" ]; then
# 移除首尾空行,保留中间的空行 # 移除首尾空行
cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;') cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;')
if [ -n "$cleaned_body" ]; then if [ -n "$cleaned_body" ]; then
# 有 body: 主题换行后接 body然后是链接和作者 # 有 body: 主题在第一行body 内容缩进显示,链接和作者放在一起
# Markdown 需要两个空格来实现换行
NEW_ENTRY="${NEW_ENTRY}- ${message} \n" NEW_ENTRY="${NEW_ENTRY}- ${message} \n"
# 将 body 按行添加,每行缩进两个空格 # 将 body 按行添加,每行缩进两个空格,使用 Markdown 换行
while IFS= read -r line; do while IFS= read -r line; do
[ -z "$line" ] && continue
NEW_ENTRY="${NEW_ENTRY} ${line} \n" NEW_ENTRY="${NEW_ENTRY} ${line} \n"
done <<< "$cleaned_body" done <<< "$cleaned_body"
# 在最后一行添加链接和作者 # 链接和作者放在缩进行
NEW_ENTRY="${NEW_ENTRY} ${COMMIT_LINK}" NEW_ENTRY="${NEW_ENTRY} ${COMMIT_LINK}${AUTHOR_INFO}\n"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
else else
# body 为空 (只有空白): 主题 + 链接 + 作者 # body 为空 (只有空白): 单行格式
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}" NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
fi fi
else else
# 没有 body: 主题 + 链接 + 作者 # 没有 body: 单行格式
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}" NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
fi fi
done done
@ -656,26 +650,28 @@ jobs:
COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))" COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))"
# 构建作者信息
AUTHOR_INFO=""
if [ -n "$author" ]; then
AUTHOR_INFO=" by @${author}"
fi
if [ -n "$body" ]; then if [ -n "$body" ]; then
cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;') cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;')
if [ -n "$cleaned_body" ]; then if [ -n "$cleaned_body" ]; then
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} \n" NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} \n"
while IFS= read -r line; do while IFS= read -r line; do
[ -z "$line" ] && continue
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${line} \n" NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${line} \n"
done <<< "$cleaned_body" done <<< "$cleaned_body"
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${COMMIT_LINK}" NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${COMMIT_LINK}${AUTHOR_INFO}\n"
else else
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}" NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
fi fi
else else
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}" NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
fi fi
if [ -n "$author" ]; then
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} by @${author}"
fi
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}\n"
NEW_COMMIT_COUNT=$((NEW_COMMIT_COUNT + 1)) NEW_COMMIT_COUNT=$((NEW_COMMIT_COUNT + 1))
done done