# Git Mirror Authority ## 默认只读入口 Gitea/PaC migrated consumer 的 mirror、authority branch、immutable snapshot 与 GitOps publication 全由 GitHub PR merge 自动链拥有。默认只允许读取: ```bash bun scripts/cli.ts platform-infra gitea mirror status --target bun scripts/cli.ts platform-infra gitea mirror webhook status --target bun scripts/cli.ts hwlab nodes git-mirror status --node --lane bun scripts/cli.ts agentrun git-mirror status --node --lane ``` 已迁移或 `unknown` authority 必须在远端调用或异步 Job 创建前 fail-closed。状态和失败 `Next` 只能指向 status/history 与自动链修复引用,不得建议 mirror sync/flush、直接 Gitea push、host git、fixed workspace 或第二套 source resolver。 自动链故障必须修 `config/platform-infra/gitea.yaml`、`config/platform-infra/pipelines-as-code.yaml`、webhook bridge、受控 mirror worker 或源码,并通过修复 PR 合并产生的新正常事件验收。不得使用 branch-follower、人工 PipelineRun 或 legacy mirror mutation 补齐当前交付。 ## Legacy scope Git mirror mutation 只属于 owning YAML 精确解析为 `legacy-manual` 的 lane,并且只能从显式 scoped help 发现: ```bash bun scripts/cli.ts hwlab nodes git-mirror legacy-ops --help bun scripts/cli.ts agentrun git-mirror legacy-ops --help ``` Legacy scope 仍须遵守: - source selection 只使用 YAML 声明的 immutable snapshot,不读取 host worktree、`.worktree/*` 或可变 branch ref; - GitHub transport、proxy、Secret sourceRef 与 snapshot prefix 全部来自 owning YAML; - `sync`、`flush` 与 apply 只服务明确 legacy lane,不能作为 PaC 恢复手段; - 验收使用只读 status 证明 mirror、GitOps、Argo、runtime 与目标 source commit 对齐,不能只看 PipelineRun terminal。 ## 退役状态清理 Branch-follower 已退役。旧状态清理不属于 mirror 自动链,也不使用默认 `cleanup-state`。确需清理时使用 `cicd branch-follower retired-maintenance --help` 中的受控入口;固定 canonical owning YAML,先列候选,再显式确认。 ## D601 legacy transport D601 legacy lane 的 GitHub upstream transport 由 YAML 固定为 SSH over `ssh.github.com:443`,HTTP proxy 仅承担 SSH CONNECT。输出若漂移为 HTTPS token、host env 或未声明 transport,修 owning YAML 和平台配置,不增加 fallback。 Legacy mirror status 中的 GitHub 字段可能来自 `refs/mirror-stage/...` cache,必须标记来源。push 已成功但 post-push fetch 因 transient 失败时,CLI 可以在同一个 legacy 受控实现内做一次有界 recheck;这项行为不得复制到 migrated PaC consumer 的 operator Next。