feat(ci): 格式自动修复对所有PR开放 + 防循环机制(develop同步) #1044
Reference in New Issue
Block a user
Delete Branch "feature/auto-fix-format-develop"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
同步main分支的格式自动修复优化到develop:
[skip ci-format-check]标记,避免修复后再次触发格式检查导致死循环对应main分支改动
替换有冲突的旧PR #1041
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
commits[-1]获取最新 commit 的消息。然而,GitHub/Gitea 等 Git 托管平台的 API 返回的 commits 列表通常默认为倒序(即最新的 commit 在索引 0 处,最旧的在[-1]处)。如果 PR 包含多个 commit,commits[-1]将获取到最旧的 commit,而非刚刚触发的 CI commit。[skip ci-format-check]的 commit 后,CI 再次运行此脚本时,由于检查的是最旧的 commit(通常不包含该标记),防循环检测失效,脚本会再次推送相同的格式修复 commit,导致无限循环(Push -> CI Fail -> Push -> ...)。commits[-1]修改为commits[0],以获取列表中最新的一条 commit 记录。💡 改进建议(不阻塞合并)
except Exception as e捕获了所有异常,包括KeyboardInterrupt或SystemExit。虽然代码打印了警告并继续执行,但在网络请求或 JSON 解析失败时继续执行可能导致逻辑错误(如防循环失效)。建议明确捕获urllib.error.URLError和json.JSONDecodeError,使错误处理更精确。✅ 良好实践
[skip ci-format-check]机制来防止 CI 循环触发,这是一个有效的防抖动设计思路。🤖 由 AI 代码审查机器人自动生成 | 2026-07-27 16:43:16 | 模型:
Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
🗑️ 预览环境已清理
PR #1044 已关闭或合并,对应的预览环境已被清理。