Files
awoooi/docs/security/GITEA-AUTHENTICATED-INVENTORY-EXPORT-REQUEST.md

7.9 KiB
Raw Blame History

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. 必要欄位

  1. full_nameowner.login + name
  2. name
  3. owner.login
  4. private
  5. archived
  6. empty
  7. default_branch
  8. clone_url_redacted
  9. ssh_url_redacted
  10. github_repo_candidate

4. 目前覆蓋缺口

缺口 現況 需要解決
未認證公開範圍 vs 本機 Gitea API 只看到 wooo/awoooiwooo/ewoooc;本機 remote 還看到 wooo/clawbot-v5wooo/wooo-aiops 認證清冊或 owner 證明必須解釋缺口
Org endpoint 受阻 orgs/wooo/repos 未認證查詢先前為 blocked / 404 不得把 404 解讀為沒有 private/internal repos
110 內部相鄰來源 本機另看到 bitan-pharmacyroot/momo-pro-systemtsenyang-websitewooo/wooo-infra-config Gitea inventory 完成後仍需 owner 判定是否納入 migration scope

5. 驗收

  1. gitea_repo_inventory_v1.status=ok
  2. visibility_scope=authenticatedvisibility_scope=admin_export
  3. repo_count 大於或等於未認證公開範圍 repo count。
  4. 必須解釋未認證公開範圍 2 個 repos 與本機可見 Gitea 4 個 repos 的差異。
  5. 不含 token、password、secret value、webhook secret、deploy key private key、runner registration token、cookie、session。
  6. 只更新 migration matrix、decision table、approval board 與 readiness gate。
  7. 不建立 GitHub repo、不 sync refs、不切 primary。

6. AwoooP 可做

  1. 顯示 S4.5 匯出請求與兩條安全來源路徑。
  2. 顯示覆蓋缺口與 owner review lane。
  3. 顯示 token value / write token / repo write / refs sync 全部禁止。
  4. 把完成的脫敏匯出寫入 Audit evidence 等待人工 review。
  5. 若 payload 含敏感值,送進 mirror 隔離。

7. AwoooP 不可做

  1. 不要求使用者在 UI、對話或文件貼 token value。
  2. 不保存 token value。
  3. 不使用具寫入能力的 token。
  4. 不寫入 Gitea。
  5. 不建立、刪除、封存或修改 Gitea repo。
  6. 不建立 GitHub repo、不 sync refs、不切 GitHub primary。
  7. 不把清冊請求當成清冊已完成。

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_inventoryredacted_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」前的資料缺口仍然停在框架期不進入執行、同步或主控切換。