返回 Bug 清单
BUG-0506project-52高已修复backend-logic
Gitea 批量推送静默失败:API 返回 success 但实际 refs 没写进去
发现:2026-10-07验证:2026-10-27置信度:70%
症状
批量脚本跑完显示 136 全 success,后来检查 project-07 在 Gitea 上是空的(有仓库但无 refs),dragoanscale/project-07/gic-core 等都缺 refs。重新 SSH push 才成功。
根因
HTTPS + token 方式批量推送 136 仓库时,Gitea API /api/v1/repos 对每个仓库返回 201 Created,脚本以为都成功了。但后来 SSH 全量重推时发现大量仓库 refs 实际没写进 Gitea —— 可能是 HTTPS token 鉴权在某些分支 push 场景下静默跳过了(比如 token 有 repo write scope 但没 team_repo 关联),或者 Gitea rollback 后的 DB 状态还在异步修复中。
修复方案
批量推送后**必须逐仓库验证**:git clone 空目录从 Gitea → 检查 git branch 有 main。或者脚本里对每个仓库追加 API 验证 GET /api/v1/repos/{owner}/{repo}/branches/main 返回 200 才算真正成功。预防:不要依赖 API 创建成功判定,必须验证 refs 实际存在。
错误签名
批量推送脚本 exit 0 全绿,SSH 重推时发现 project-07 等 55 仓库 Gitea 上 refs/heads/main 根本不存在技术信息
来源项目
project-52
涉及文件
批量推送 Python 脚本, Gitea API /api/v1/repos
标签
project-52, mcp-reported, source-agent