Skip to main content

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 相關資訊(gitRootrepositorybranch)。
  • context 欄位可在 Copilot CLI v0.0.409 以後版本使用。舊版本會回傳 null
  • 篩選以完全相符方式運作。不支援部分符合或萬用字元。
  • SessionListFilter 的所有欄位皆為選填。未指定篩選條件時會回傳所有 Session。
最新資訊請參閱 GitHub 儲存庫
最後修改於 2026年8月2日