Session Context 與篩選
自 GitHub Copilot SDK v0.1.24 起,Session 加入了包含 working directory 與 Git 資訊的 context,並可在 Session 清單中進行篩選。SessionContext
SessionContext 保存 Session 建立時的 working directory 與 Git 儲存庫資訊。
屬性
cwd(string): working directory 的絕對路徑gitRoot(?string): Git 儲存庫的根目錄(在 Git 儲存庫外為null)repository(?string): GitHub 儲存庫(owner/repo格式,例如invokable/laravel-copilot-sdk)branch(?string): 目前的 Git 分支名稱
使用範例
SessionListFilter
使用SessionListFilter 可以只取得特定 working directory 或儲存庫的 Session。
屬性
cwd(?string): 以 working directory 完全相符篩選gitRoot(?string): 以 Git root 目錄篩選repository(?string): 以儲存庫(owner/repo格式)篩選branch(?string): 以分支名稱篩選
使用範例
以陣列指定篩選
使用 SessionListFilter 類別
session.context_changed 事件
當 Session 執行過程中 working directory 變更時,會觸發 session.context_changed 事件。
事件類型
事件資料
事件資料包含更新後的 context 資訊。SessionMetadata
SessionMetadata 新增了 context 屬性。
新屬性
context(?SessionContext): Session 的 working directory 與 Git 資訊
使用範例
實用範例
取得特定專案的 Session
管理 Feature branch 的 Session
依 working directory 整理 Session
注意事項
context只有在 Git 儲存庫中建立的 Session 才會包含 Git 相關資訊(gitRoot、repository、branch)。context欄位可在 Copilot CLI v0.0.409 以後版本使用。舊版本會回傳null。- 篩選以完全相符方式運作。不支援部分符合或萬用字元。
SessionListFilter的所有欄位皆為選填。未指定篩選條件時會回傳所有 Session。
最新資訊請參閱 GitHub 儲存庫。