🐛 修复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

@ -499,7 +499,7 @@ jobs:
echo ""
echo "📊 提交统计:"
echo " 有效提交: $VALID_COUNT"
echo " 有效提交: $VALID_COUNT"
echo " ⏭️ 已跳过: $SKIPPED_COUNT"
echo " 📝 总计: $((VALID_COUNT + SKIPPED_COUNT))"
echo ""
@ -531,46 +531,40 @@ jobs:
echo " [$((i+1))/$VALID_COUNT] ${hash:0:7}: ${message:0:60}..."
# 构建提交链接
# 构建提交链接 - 使用短 hash 格式
short_hash="${hash:0:7}"
COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))"
# 构建作者信息
AUTHOR_INFO=""
if [ -n "$author" ]; then
AUTHOR_INFO=" by @${author}"
fi
# 处理 body (如果存在)
if [ -n "$body" ]; then
# 移除首尾空行,保留中间的空行
# 移除首尾空行
cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;')
if [ -n "$cleaned_body" ]; then
# 有 body: 主题换行后接 body然后是链接和作者
# Markdown 需要两个空格来实现换行
# 有 body: 主题在第一行body 内容缩进显示,链接和作者放在一起
NEW_ENTRY="${NEW_ENTRY}- ${message} \n"
# 将 body 按行添加,每行缩进两个空格
# 将 body 按行添加,每行缩进两个空格,使用 Markdown 换行
while IFS= read -r line; do
[ -z "$line" ] && continue
NEW_ENTRY="${NEW_ENTRY} ${line} \n"
done <<< "$cleaned_body"
# 在最后一行添加链接和作者
NEW_ENTRY="${NEW_ENTRY} ${COMMIT_LINK}"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
# 链接和作者放在缩进行
NEW_ENTRY="${NEW_ENTRY} ${COMMIT_LINK}${AUTHOR_INFO}\n"
else
# body 为空 (只有空白): 主题 + 链接 + 作者
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
# body 为空 (只有空白): 单行格式
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
fi
else
# 没有 body: 主题 + 链接 + 作者
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}"
if [ -n "$author" ]; then
NEW_ENTRY="${NEW_ENTRY} by @${author}"
fi
NEW_ENTRY="${NEW_ENTRY}\n"
# 没有 body: 单行格式
NEW_ENTRY="${NEW_ENTRY}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
fi
done
@ -656,26 +650,28 @@ jobs:
COMMIT_LINK="([${short_hash}](${REPO_URL}/commit/${hash}))"
# 构建作者信息
AUTHOR_INFO=""
if [ -n "$author" ]; then
AUTHOR_INFO=" by @${author}"
fi
if [ -n "$body" ]; then
cleaned_body=$(echo "$body" | sed -e :a -e '/^\s*$/d;')
if [ -n "$cleaned_body" ]; then
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} \n"
while IFS= read -r line; do
[ -z "$line" ] && continue
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${line} \n"
done <<< "$cleaned_body"
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${COMMIT_LINK}"
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES} ${COMMIT_LINK}${AUTHOR_INFO}\n"
else
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}"
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
fi
else
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}"
NEW_COMMIT_ENTRIES="${NEW_COMMIT_ENTRIES}- ${message} ${COMMIT_LINK}${AUTHOR_INFO}\n"
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))
done