141 lines
5.9 KiB
Markdown
141 lines
5.9 KiB
Markdown
# Source Control Draft Reconcile Plan
|
||
|
||
| 項目 | 內容 |
|
||
|------|------|
|
||
| 日期 | 2026-06-04 |
|
||
| 狀態 | `draft_blocked` |
|
||
| 預設模式 | `plan_only` |
|
||
| inventory gate | `blocked` |
|
||
| gate 原因 | Gitea authenticated / admin_export server-side inventory 尚未完成;本 plan 只能作草案,不可執行 refs sync。 |
|
||
| plan count | 3 |
|
||
|
||
## 0. 核心結論
|
||
|
||
這份文件只是 refs reconcile 草案,不是同步腳本,也不授權任何 GitHub primary 切換。AwoooP 可以 mirror 成 approval candidate,但不得執行 board item 或呼叫任何 push / sync 工具。
|
||
|
||
若已存在 `source_control_ref_truth_classification_v1`,請把它視為本 plan 的人工 review lane 補充:分類結果只協助 repo owner 判定,不授權同步或刪除。
|
||
|
||
## 1. Repo 差異摘要
|
||
|
||
| Repo | Risk | Gitea branches | GitHub branches | Gitea tags | GitHub tags | Gitea main | GitHub main |
|
||
|------|------|----------------|-----------------|------------|-------------|------------|-------------|
|
||
| `wooo/awoooi -> owenhytsai/awoooi` | `HIGH` | `170` | `2` | `2` | `0` | `64490d32` | `202071f7` |
|
||
| `wooo/clawbot-v5 -> owenhytsai/clawbot-v5` | `MEDIUM` | `1` | `1` | `1` | `0` | `22074fbe` | `7a769de4` |
|
||
| `wooo/wooo-aiops -> owenhytsai/wooo-aiops` | `MEDIUM` | `2` | `3` | `0` | `19` | `507384a2` | `7c7aa109` |
|
||
|
||
## 2. Draft Plan
|
||
|
||
### wooo/awoooi -> owenhytsai/awoooi
|
||
|
||
- 狀態:`blocked`
|
||
- 阻塞原因:branches 尚未完全對齊;tags 尚未完全對齊
|
||
- 允許現在做:
|
||
- 更新 read-only evidence
|
||
- 更新 approval board
|
||
- 產生 draft reconcile plan
|
||
- 讓 AwoooP mirror plan 狀態
|
||
- 草案步驟:
|
||
- 先確認目前 production deploy 真相來源與 deploy marker 流程,避免主控切換影響發版。
|
||
- 針對 `wooo/awoooi` 與 `owenhytsai/awoooi` 產生 branch-by-branch diff 表。
|
||
- 針對 `wooo/awoooi` 與 `owenhytsai/awoooi` 產生 tag-by-tag diff 表。
|
||
- 標記每個 diff 的真相來源候選:Gitea、GitHub、人工指定或 deprecated。
|
||
- 列出 workflow / webhook / runner / secret 名稱差異,只記名稱不記 value。
|
||
- 產生 dry-run PR / ADR 草案,仍不 push refs。
|
||
- 執行前 gate:
|
||
- Gitea authenticated 或 admin_export server-side repo inventory status=ok
|
||
- branch-by-branch SHA diff 已完成
|
||
- tag-by-tag SHA diff 已完成
|
||
- workflow / webhook / runner / secret 名稱 inventory 已完成
|
||
- repo owner / visibility / branch protection / CODEOWNERS 已確認
|
||
- rollback plan 與 GitHub primary ADR 已完成
|
||
- 人工批准只針對單一 repo 生效,不得批次套用到所有 repo
|
||
- 仍然禁止:
|
||
- push refs
|
||
- force push
|
||
- delete refs
|
||
- create GitHub repo
|
||
- change repo visibility
|
||
- switch GitHub primary
|
||
- disable Gitea
|
||
- move secret values
|
||
- Evidence refs:
|
||
- `docs/security/GITEA-GITHUB-MIGRATION-SNAPSHOT.md`
|
||
|
||
### wooo/clawbot-v5 -> owenhytsai/clawbot-v5
|
||
|
||
- 狀態:`blocked`
|
||
- 阻塞原因:branches 尚未完全對齊;tags 尚未完全對齊
|
||
- 允許現在做:
|
||
- 更新 read-only evidence
|
||
- 更新 approval board
|
||
- 產生 draft reconcile plan
|
||
- 讓 AwoooP mirror plan 狀態
|
||
- 草案步驟:
|
||
- 針對 `wooo/clawbot-v5` 與 `owenhytsai/clawbot-v5` 產生 branch-by-branch diff 表。
|
||
- 針對 `wooo/clawbot-v5` 與 `owenhytsai/clawbot-v5` 產生 tag-by-tag diff 表。
|
||
- 標記每個 diff 的真相來源候選:Gitea、GitHub、人工指定或 deprecated。
|
||
- 列出 workflow / webhook / runner / secret 名稱差異,只記名稱不記 value。
|
||
- 產生 dry-run PR / ADR 草案,仍不 push refs。
|
||
- 執行前 gate:
|
||
- Gitea authenticated 或 admin_export server-side repo inventory status=ok
|
||
- branch-by-branch SHA diff 已完成
|
||
- tag-by-tag SHA diff 已完成
|
||
- workflow / webhook / runner / secret 名稱 inventory 已完成
|
||
- repo owner / visibility / branch protection / CODEOWNERS 已確認
|
||
- rollback plan 與 GitHub primary ADR 已完成
|
||
- 人工批准只針對單一 repo 生效,不得批次套用到所有 repo
|
||
- 仍然禁止:
|
||
- push refs
|
||
- force push
|
||
- delete refs
|
||
- create GitHub repo
|
||
- change repo visibility
|
||
- switch GitHub primary
|
||
- disable Gitea
|
||
- move secret values
|
||
- Evidence refs:
|
||
- `docs/security/SOURCE-CONTROL-CLAWBOT-V5-SNAPSHOT.md`
|
||
|
||
### wooo/wooo-aiops -> owenhytsai/wooo-aiops
|
||
|
||
- 狀態:`blocked`
|
||
- 阻塞原因:branches 尚未完全對齊;tags 尚未完全對齊
|
||
- 允許現在做:
|
||
- 更新 read-only evidence
|
||
- 更新 approval board
|
||
- 產生 draft reconcile plan
|
||
- 讓 AwoooP mirror plan 狀態
|
||
- 草案步驟:
|
||
- 針對 `wooo/wooo-aiops` 與 `owenhytsai/wooo-aiops` 產生 branch-by-branch diff 表。
|
||
- 針對 `wooo/wooo-aiops` 與 `owenhytsai/wooo-aiops` 產生 tag-by-tag diff 表。
|
||
- 標記每個 diff 的真相來源候選:Gitea、GitHub、人工指定或 deprecated。
|
||
- 列出 workflow / webhook / runner / secret 名稱差異,只記名稱不記 value。
|
||
- 產生 dry-run PR / ADR 草案,仍不 push refs。
|
||
- 執行前 gate:
|
||
- Gitea authenticated 或 admin_export server-side repo inventory status=ok
|
||
- branch-by-branch SHA diff 已完成
|
||
- tag-by-tag SHA diff 已完成
|
||
- workflow / webhook / runner / secret 名稱 inventory 已完成
|
||
- repo owner / visibility / branch protection / CODEOWNERS 已確認
|
||
- rollback plan 與 GitHub primary ADR 已完成
|
||
- 人工批准只針對單一 repo 生效,不得批次套用到所有 repo
|
||
- 仍然禁止:
|
||
- push refs
|
||
- force push
|
||
- delete refs
|
||
- create GitHub repo
|
||
- change repo visibility
|
||
- switch GitHub primary
|
||
- disable Gitea
|
||
- move secret values
|
||
- Evidence refs:
|
||
- `docs/security/SOURCE-CONTROL-WOOO-AIOPS-SNAPSHOT.md`
|
||
|
||
## 3. AwoooP 消費方式
|
||
|
||
1. 只 mirror `source_control_reconcile_plan_v1`。
|
||
2. 只顯示 `draft_blocked` 與 blocking reason。
|
||
3. 可產生 approval candidate,但不得自動批准。
|
||
4. 不得新增 execution action button。
|
||
5. 真相來源分類請讀 `docs/security/SOURCE-CONTROL-REF-TRUTH-CLASSIFICATION.md`,並維持單 repo / 單 ref 人工 gate。
|