配置

忽略檔案

透過在專案中建立 `.bobignore` 檔案來控制 Bob 可以存取哪些檔案。

什麼是 .bobignore

  • 目的:保護敏感資訊、防止意外變更建置產物或大型資產,並通常定義 Bob 在工作區內的操作範圍。
  • 如何使用:在工作區目錄中建立名為 .bobignore 的檔案。在此檔案中列出模式以告訴 Bob 要忽略哪些檔案和目錄。

Bob 會主動監控 .bobignore 檔案。您所做的任何變更都會自動重新載入,確保 Bob 始終使用最新的規則。.bobignore 檔案本身始終被隱式忽略,因此 Bob 無法變更自己的存取規則。

模式語法

.bobignore 的語法與 .gitignore 相同。以下是常見範例:

範例說明
node_modules/忽略整個 node_modules 目錄
*.log忽略所有以 .log 結尾的檔案
config/secrets.json忽略特定檔案
!important.log例外;Bob 將不會忽略此特定檔案,即使存在像 *.log 這樣的更廣泛模式
build/忽略 build 目錄
docs/**/*.md忽略 docs 目錄及其子目錄中的所有 Markdown 檔案

要了解語法,請參閱 .gitignore 的官方 Git 文件

Bob 工具如何與 .bobignore 互動

.bobignore 規則在各種 Bob 工具中強制執行:

嚴格執行(讀取和寫入)

這些工具在任何檔案操作之前直接檢查 .bobignore。如果檔案被忽略,操作將被阻止:

  • read_file:不會讀取被忽略的檔案。
  • write_file:不會寫入或建立新的被忽略檔案。
  • apply_diff:不會對被忽略的檔案應用差異。
  • GetSymbolsOverview:不會解析被忽略的檔案以獲取程式碼符號。

檔案編輯工具(可能的寫入繞過)

insert_contentsearch_and_replace 工具使用內部元件來管理變更。 重要:目前,這些工具執行的最終寫入操作可能會繞過 .bobignore 規則。雖然初始讀取嘗試可能會被阻止,但儲存操作本身沒有明確的檢查。

檔案發現和列表

  • list_files 工具:當 Bob 列出檔案時,被忽略的檔案通常會被省略或標記為 🔒 符號(請參閱下面的「使用者體驗」)。
  • 環境詳細資訊:提供給 Bob 的有關工作區的資訊(如開啟的標籤和專案結構)會被過濾以排除或標記被忽略的項目。

命令執行

  • execute_command 工具:此工具檢查命令(來自預定義清單,如 catgrep)是否針對被忽略的檔案。如果是,則阻止執行命令。

主要限制和範圍

  • 以工作區為中心.bobignore 規則僅適用於目前 Bob 工作區根目錄內的檔案和目錄。此範圍之外的檔案不受影響。
  • execute_command 特定性execute_command 的保護僅限於預定義的檔案讀取命令清單。自訂腳本或不常見的實用程式可能不會被捕獲。
  • 透過 insert_contentsearch_and_replace 的寫入操作:如前所述,由於這些工具的儲存機制目前的限制,它們可能能夠寫入被忽略的檔案。
  • 不是完整的沙箱.bobignore 是一個強大的工具,可透過其工具控制 Bob 的檔案存取,但它不會建立系統級沙箱。

使用者體驗和通知

  • 視覺提示(🔒):在檔案列表中,被 .bobignore 忽略的檔案可能會標記為鎖定符號(🔒),具體取決於 showbobignoredFiles 設定(預設為 true)。
  • 錯誤訊息:如果工具操作被阻止,Bob 會收到錯誤:「對 [file_path] 的存取被 .bobignore 檔案設定阻止。您必須嘗試在不使用此檔案的情況下繼續任務,或要求使用者更新 .bobignore 檔案。」
  • 聊天通知:當由於 .bobignore 而阻止操作時,您通常會在 Bob 聊天介面中看到通知。

本指南幫助您了解 .bobignore 功能、其功能及其目前的限制,以便您可以有效地管理 Bob 與程式碼庫的互動。

這個主題如何?