GitHub fetch
fetch 執行流程與每個 GitHub 任務相同:解析 → 預判 → fetch 或 checkout。
步驟
1. 解析
從 URL 或使用者文字中解析出 owner/repo(如有 issue/PR 編號也一併解析)。
完成條件: 已識別出 owner/repo(或已要求使用者釐清)。
2. 預判
在 checkout 之前,判斷此任務是否需要讀取多個檔案,或需要進行倉庫級搜尋(Grep/Glob)?
- 否 → fetch 分支(步驟 3)。
- 是 → checkout 分支(步驟 4)。
- 任務在執行中途擴展 → 在第二次存取前重新預判;必要時切換分支。
完成條件: 已選擇並記錄分支(fetch 還是 checkout)。
3. Fetch 分支
根據 URL 類型遵循 GH-COMMANDS.md。單一檔案:gh api repos/owner/repo/contents/path?ref=branch。
完成條件: 已透過 gh 傳回要求的內容;未啟動 checkout。
4. Checkout 分支
遵循 CHECKOUT.md — 詢問本地路徑、驗證遠端、僅在獲得批准後進行克隆。
完成條件: 已驗證本地路徑並在使用中,或已在已知的絕對路徑上完成經批准的淺克隆;針對該樹進行讀取/Grep/Glob。
存取方式
透過 gh(fetch 分支)或經驗證的 checkout 路徑存取 GitHub。若 gh 缺失或未經認證,則退而使用 WebFetch。
完成條件: 每次存取皆通過 預判 閘門下的 fetch 或 checkout;僅在 gh 真正失敗時才使用 WebFetch。