7.9 KiB
Gitea 認證清冊匯出請求
| 項目 | 內容 |
|---|---|
| 日期 | 2026-06-04 |
| 狀態 | 草案與交接封套已整理,等待 S4.9 owner response / 只讀批准 |
| 資料契約 | docs/schemas/gitea_authenticated_inventory_export_request_v1.schema.json |
| 快照 | docs/security/gitea-authenticated-inventory-export-request.snapshot.json |
| 後續驗收 | docs/security/GITEA-AUTHENTICATED-INVENTORY-IMPORT-ACCEPTANCE.md |
| 覆蓋 Attestation | docs/security/GITEA-INVENTORY-COVERAGE-ATTESTATION.md |
| 來源契約 | gitea_repo_inventory_v1 |
| 模式 | redacted_export_request_only |
| 執行面授權 | false |
0. 核心結論
S4.5 把 Gitea 私有 / 內部全量 repo 清冊的下一步匯出請求正式文件化。
目前 gitea_repo_inventory_v1 仍是 partial:未認證 API / 公開搜尋只看到 2 個公開 repos,但本機 remote 清冊至少看到 4 個 unique Gitea repos。因此不能宣告「Gitea 目前所有專案版本」已盤完,也不能開始 GitHub primary 切換。
本文件只定義兩條安全路徑:只讀 token API 清冊,或已脫敏的管理匯出清冊。兩者都不得保存 token value,不得寫入 Gitea,不得 sync refs,不得切 GitHub primary。
S4.6 已補後續的匯入驗收契約:即使 owner 或管理者提供 payload,也必須先通過 schema、脫敏、coverage gap 與隔離規則,才能成為 gitea_repo_inventory_v1.status=ok 的候選 evidence。
S4.7 已補 owner coverage attestation:在補全量清冊前,owner 仍需判定 public-only 2 repos、本機 Gitea unique 4 repos、org/user endpoint 與 110 internal adjacent sources 的 scope。S4.7 不授權 token 收集、repo 寫入、refs sync 或 primary cutover。
S4.9 已補 owner response gate 與 2026-06-04 request dispatch preflight 交接包:P1-2 的只讀 token 或 redacted admin export 請求必須等 S4.9 五題 scope decision 進入可審狀態後,才能由人工批准進下一步。這仍不代表 token value 可以被貼到文件、對話、LOGBOOK 或 snapshot。
1. 摘要
| 指標 | 數量 |
|---|---|
| Gitea 基礎 URL | http://192.168.0.110:3001 |
| 組織 / 使用者 | wooo |
| 未認證公開範圍 repos | 2 |
| 本機可見 Gitea unique repos | 4 |
| 本機 Gitea 覆蓋缺口 | 2 |
| 匯出來源選項 | 2 |
| 目標狀態 | gitea_repo_inventory_v1.status=ok |
| 允許收集 token value | false |
| 允許 write token | false |
| 允許 repo 寫入 | false |
| 允許 refs sync | false |
| 授權切換 GitHub primary | false |
| S4.7 owner attestation items | 5 |
| S4.9 owner response gate required | true |
| request handoff package | ready |
| request dispatch authorized | false |
| admin export payload received | 0 |
| admin export payload accepted | 0 |
2. 匯出來源選項
| 選項 | 允許 | 禁止 |
|---|---|---|
| 只讀 token API 清冊 | 使用 GITEA_READONLY_TOKEN 環境變數跑既有 inventory 工具;輸出只保存 token_present=true |
保存 token value、使用 write token、寫入 Gitea、sync refs |
| 已脫敏管理匯出清冊 | 匯入已脫敏 repo list JSON;只保留 repo metadata | 匯入 DB dump、secret、webhook secret、deploy key private key、cookie、session |
3. 必要欄位
full_name或owner.login + name。name。owner.login。private。archived。empty。default_branch。clone_url_redacted。ssh_url_redacted。github_repo_candidate。
4. 目前覆蓋缺口
| 缺口 | 現況 | 需要解決 |
|---|---|---|
| 未認證公開範圍 vs 本機 Gitea | API 只看到 wooo/awoooi、wooo/ewoooc;本機 remote 還看到 wooo/clawbot-v5、wooo/wooo-aiops |
認證清冊或 owner 證明必須解釋缺口 |
| Org endpoint 受阻 | orgs/wooo/repos 未認證查詢先前為 blocked / 404 |
不得把 404 解讀為沒有 private/internal repos |
| 110 內部相鄰來源 | 本機另看到 bitan-pharmacy、root/momo-pro-system、tsenyang-website、wooo/wooo-infra-config |
Gitea inventory 完成後仍需 owner 判定是否納入 migration scope |
5. 驗收
gitea_repo_inventory_v1.status=ok。visibility_scope=authenticated或visibility_scope=admin_export。repo_count大於或等於未認證公開範圍 repo count。- 必須解釋未認證公開範圍 2 個 repos 與本機可見 Gitea 4 個 repos 的差異。
- 不含 token、password、secret value、webhook secret、deploy key private key、runner registration token、cookie、session。
- 只更新 migration matrix、decision table、approval board 與 readiness gate。
- 不建立 GitHub repo、不 sync refs、不切 primary。
6. AwoooP 可做
- 顯示 S4.5 匯出請求與兩條安全來源路徑。
- 顯示覆蓋缺口與 owner review lane。
- 顯示 token value / write token / repo write / refs sync 全部禁止。
- 把完成的脫敏匯出寫入 Audit evidence 等待人工 review。
- 若 payload 含敏感值,送進 mirror 隔離。
7. AwoooP 不可做
- 不要求使用者在 UI、對話或文件貼 token value。
- 不保存 token value。
- 不使用具寫入能力的 token。
- 不寫入 Gitea。
- 不建立、刪除、封存或修改 Gitea repo。
- 不建立 GitHub repo、不 sync refs、不切 GitHub primary。
- 不把清冊請求當成清冊已完成。
8. 2026-06-04 P1-2 請求交接封套
本段把 S4.5 認證清冊匯出請求對齊 2026-06-04 的 S4.9 owner response gate。它只代表「請求包可交接」,不代表 owner 已批准、不代表只讀 token 已提供、不代表 redacted admin export 已收到,也不代表 gitea_repo_inventory_v1.status=ok。
8.1 送件前條件
| 順序 | 條件 | 完成狀態 |
|---|---|---|
| 1 | S4.9 五題 owner response request packet 已可交接,且 request / received / accepted 分離 | 已整理,未送件 |
| 2 | 只讀 token 路徑與 redacted admin export 路徑二選一,不要求同時提供 | 已整理,未執行 |
| 3 | 收件欄位只收 repo metadata、redacted URL、owner/team 與 evidence refs | 已整理,未收件 |
| 4 | 禁止 token value、write token、DB dump、git object pack、secret / webhook / deploy key material | 已整理,未收件 |
| 5 | 實際收到 payload 前,received / accepted / imported count 全部維持 0 | 已整理,未收件 |
8.2 交接封套欄位
| 欄位 | 內容規則 |
|---|---|
request_id |
p1_2_gitea_authenticated_inventory_request |
prerequisite_gate |
S4.9 owner response gate 需先保持可審狀態;未通過前不可標記 inventory complete |
allowed_source_options |
readonly_token_api_inventory 或 redacted_admin_export_inventory |
recipient_role_or_team |
只填角色或團隊,不填 token / PAT / cookie / session |
requested_outputs |
repo metadata、redacted clone / ssh URL、visibility scope、coverage notes、evidence refs |
forbidden_inputs |
token value、write credential、DB dump、repo archive、git object pack、deploy key private key、webhook secret、runner token |
intake_acceptance_ref |
GITEA-AUTHENTICATED-INVENTORY-IMPORT-ACCEPTANCE.md |
not_approval |
必須為 true |
8.3 送件後不變條件
即使後續 owner / 管理者同意提供只讀來源,也只能把狀態推到「等待安全輸入」或「收到脫敏 payload 待驗收」。必須先通過 S4.6 import acceptance,並用 S4.7 / S4.9 owner response 解釋 coverage gap,才可把清冊候選交給 reviewer。任何 repo 建立、refs sync、workflow / secret 修改、GitHub primary cutover、Gitea 停用或 runtime gate 都需要另行人工批准。
9. 階段定位
S4.5 只是把 Gitea 認證清冊的下一步請求、欄位、拒收規則與驗收 gate 定清楚。
S4.7 會在此基礎上要求 owner 說明 coverage gap 與 scope decision。這補的是「完整轉移 Gitea 目前所有專案版本到 GitHub」前的資料缺口;仍然停在框架期,不進入執行、同步或主控切換。