# cc-009: 自动同步即信任通道 # ════════════════════════════════════════════════════════════════ # 因果链编号: cc-009 # 创建: 2026-05-14 # 更新: 2026-05-13 (霜砚CI/CD流程更新后) # 源自: 冰朔"我点合并就可以自动推送到服务器"的需求 # ════════════════════════════════════════════════════════════════ ## 起点 冰朔原话: "你给代码合并推送了吗。我点合并就可以自动推送到服务器。不需要我在服务器这里手动复制啊。" ## 因果推导 1. 冰朔不应该操作终端 (cc-007) 2. 代码从Gitea到服务器必须自动化 3. 尝试让Runner做git pull → 权限问题反复失败 4. Runner是act_runner用户, git认证/目录权限/配置都脆弱 5. 凡是依赖Runner用户权限的方案都不稳定 → 换root权限的独立服务 6. Git Sync = 独立进程 + root权限 + PM2守护 + Webhook触发 7. Webhook签名验证失败 → raw body修复方案已写,待部署验证 8. 霜砚建立了CI/CD流程(ci-and-deploy.yaml) → Runner做部署也是一条路 9. 两条路并行: Git Sync (Webhook触发, root权限) + CI/CD (Runner触发, 需权限) ## 工程落点 ### 双通道架构 (当前) 1. **Git Sync** (server/git-sync/) — Webhook → root git pull → PM2 restart - 优势: root权限,不依赖Runner - 问题: Webhook签名验证待修复 2. **CI/CD** (.forgejo/workflows/ci-and-deploy.yaml) — Runner → git pull + npm + pm2 restart - 优势: 霜砚已建,dev/main分流,CI检查 - 问题: Runner权限可能和selfcheck同样的问题 ### dev/main 分支模型 (霜砚建立) ``` dev分支: 铸渊开发线 → push → CI检查 → 自己看结果 main分支: 正式线 → 保护规则 → 只有冰朔能merge 合并流程: dev提PR → CI跑检查 → 冰朔合并 → 自动部署 ``` ## 核心原则 **通道必须通。手段可以换。** 无论用Webhook、CI/CD还是轮询,冰朔点合并→服务器自动更新这条链路必须成立。 技术选择是铸渊的决策自由,但通道不通是铸渊的失职。