Gitea 管理匯出 Redaction Checklist
| 項目 |
內容 |
| 日期 |
2026-05-17 |
| 狀態 |
第一版,給 gitea_repo_inventory_v1 管理匯入使用 |
| 搭配文件 |
docs/security/GITEA-SERVER-SIDE-INVENTORY-RUNBOOK.md |
| Approval |
docs/security/GITEA-READONLY-INVENTORY-APPROVAL-PACKAGE.md |
| S4.5 export request |
docs/security/GITEA-AUTHENTICATED-INVENTORY-EXPORT-REQUEST.md |
| S4.6 import acceptance |
docs/security/GITEA-AUTHENTICATED-INVENTORY-IMPORT-ACCEPTANCE.md |
| S4.7 coverage attestation |
docs/security/GITEA-INVENTORY-COVERAGE-ATTESTATION.md |
0. 允許保留的欄位
| 欄位 |
用途 |
full_name |
Gitea repo identity,例如 wooo/awoooi |
name |
repo short name |
owner.login |
owner / org / user 名稱 |
private |
判斷 visibility migration |
archived |
判斷封存策略 |
empty |
判斷是否需要搬遷 refs |
default_branch |
後續 branch/tag diff 起點 |
clone_url |
只允許無帳密 URL,工具會再次 redacted |
ssh_url |
只允許 public repo path,不含 private key |
1. 絕對不能出現在匯出 JSON
- API token value。
- Personal access token。
- Webhook secret value。
- Repository secret value。
- Deploy key private key。
- SSH private key。
- Cookie、session、CSRF token。
- 帶 username/password/token 的 remote URL。
- CI/CD runner registration token。
2. 最小 JSON 模板
3. 匯入前人工檢查
| Gate |
檢查方式 |
必須結果 |
| 無 token |
搜尋 token / authorization / provider token prefix 等字樣 |
不得出現 value |
| 無帳密 URL |
搜尋 URL 中是否含帳號、密碼、token 與 at-sign 組合 |
不得出現 |
| 無 private key |
搜尋 BEGIN .* PRIVATE KEY |
不得出現 |
| repo 欄位完整 |
檢查 full_name 或 owner.login + name |
每個 repo 可識別 |
| visibility 可判斷 |
檢查 private |
每個 repo 有布林值 |
| S4.6 驗收 |
依 GITEA-AUTHENTICATED-INVENTORY-IMPORT-ACCEPTANCE.md 檢查 payload |
不完整或含敏感值時必須拒收或隔離 |
| S4.7 owner attestation |
依 GITEA-INVENTORY-COVERAGE-ATTESTATION.md 補 scope decision |
public-only / local remote gap、org/user endpoint、110 adjacent source 都有 owner 判定 |
4. 匯入指令
5. 匯入後驗收
gitea_repo_inventory_v1.status=ok。
visibility_scope=admin_export。
repo_count 大於或等於 public-only repo count。
repos[].clone_url_redacted 與 repos[].ssh_url_redacted 不含帳密。
- 下一步仍只更新 migration matrix,不同步 refs、不建 repo、不切 primary。
- 必須能解釋 public-only API 看到 2 個 repos、本機 Gitea remote 看到 4 個 unique Gitea repos 的 coverage gap。
- 必須通過 S4.6 import acceptance;payload 驗收通過仍不代表 GitHub primary 已批准。
- 必須補 S4.7 owner coverage attestation;attestation 只更新 evidence / matrix / gate,不執行 repo 遷移。