fix(ci): check-push-paths 恢复脚本下载——e052c054移除checkout导致脚本找不到 #1582
Reference in New Issue
Block a user
Delete Branch "fix/ci-check-push-paths-checkout"
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?
问题
commit e052c054(流水线第一批提速)移除了 check-push-paths job 的 checkout 步骤,但该 job 仍然执行
bash scripts/ci/ci_push_paths.sh。runner 上没有代码仓库,脚本文件不存在,直接报错。导致整条 CI 链路断裂:check-push-paths 失败 → build-staging 全部 skipped → deploy-staging 失败。
修复
将
bash scripts/ci/ci_push_paths.sh改为先通过 raw API 下载脚本再执行(与 CI 中其他 job 的做法一致):保持了提速意图(不需要完整 checkout),同时确保脚本可以正常执行。
e052c054移除了 checkout 导致 runner 上无脚本文件🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
checkout步骤将代码拉取至本地,直接执行本地文件bash scripts/ci/ci_push_paths.sh是最高效且可靠的方式。修改为通过curl从 GitHub API 动态下载脚本,不仅增加了网络延迟和 API 限流(Rate Limit)导致构建失败的风险,还引入了“执行远程下载脚本”的安全反模式(缺乏完整性校验,存在中间人攻击或供应链攻击的理论风险)。bash scripts/ci/ci_push_paths.sh。如果本地文件确实不存在,应检查checkout步骤的配置或仓库结构,而不是绕过本地文件系统。💡 改进建议(不阻塞合并)
-H "Authorization: token $GITHUB_TOKEN"可能会导致 Token 在进程列表(ps)中可见,存在敏感信息泄露风险。虽然在容器化 CI 环境中风险相对较低,但最佳实践是避免在命令行参数中传递敏感凭证。建议使用~/.netrc文件或 CI 系统提供的内置认证机制(如actions/checkout自动处理的认证)。✅ 良好实践
无
🤖 由 AI 代码审查机器人自动生成 | 2026-08-31 11:50:39 | 模型:
🗑️ 预览环境已清理
PR #1582 已关闭或合并,对应的预览环境已被清理。