gitea-publish
8be2e8e611
fix(mirror): 翻 public 的时机、快照强推、上游不可用时降级
四处修复,都来自本次重跑 openwork 时实际踩到的失败:
1. 翻 public 从「推送之前」移到「推送成功之后」
原实现先翻可见性再推,踩出「仓库已 public + 内容还是旧快照」的窗口期:
--set-public 成功 → 推送被拒(source-only 历史不连续) → 公开了旧版本。
旧内容虽不含 ee/(合法),但公开了不该公开的版本,正是最该避免的局面。
正确顺序:先推对内容,再翻可见性;任一步失败都停在 private,无害。
收紧方向(private)仍留在同步前——锁起来永远安全,早做没代价。
2. source-only 快照改强推
每次快照都是 checkout → git init → 单次 commit,与远端上次快照无血缘,
永远不可能 fast-forward。改了排除项后重跑必被拒:"! [rejected] fetch first"。
强推在此语义正确:source-only 保的是当前源码状态,不是历史链。
3. 新增 --no-fetch
GitHub 连不上(Empty reply from server)时脚本在 fetch 阶段就退出,
本地裸仓明明有 18763 条 commit 却什么都做不了。
上游不可用不该阻止用已有内容重做快照。
4. 补充 LICENSES/LicenseRef-OpenWork-EE.txt 到 openwork 的 excludes
详见上一提交,此处是让它真正生效后落库。
新增 scripts/validate.py:档案 schema 校验。
起因是我手写临时探针把 risk.claim_vs_reality 写成顶层字段,
得到「该字段 0 条」的错误结论——层级写错不报错,只会安静返回 0。
校验项含:核心字段完整性、claim_vs_reality 下限与 source 必填、
excludes 与 redistributable_after_excludes 的一致性、
以及自动抓「七个里」这类随样本增加即过时的计数表述。
当前 7 个项目全部通过。
2026-09-02 01:07:11 +08:00
..
2026-09-01 19:27:21 +08:00
2026-09-02 00:26:49 +08:00
2026-09-01 19:27:21 +08:00
2026-09-02 01:07:11 +08:00
2026-09-01 15:14:54 +08:00
2026-09-01 19:27:21 +08:00
2026-09-02 01:07:11 +08:00