特定のファイルを無視する方法
プロジェクトに`.bobignore`ファイルを作成して、Bobがアクセスできるファイルを制御します。
.bobignoreとは?
- 目的: 機密情報を保護し、ビルド・アーティファクトや大きなアセットへの偶発的な変更を防ぎ、一般的にワークスペース内でのBobの動作範囲を定義します。
- 使用方法: ワークスペースのディレクトリーに
.bobignoreという名前のファイルを作成します。このファイルにパターンをリストして、Bobにどのファイルとディレクトリーを無視すべきかを伝えます。
Bobは.bobignoreファイルを積極的に監視します。行った変更は自動的に再読み込みされるため、Bobは常に最新のルールを使用します。.bobignoreファイル自体は常に暗黙的に無視されるため、Bobは独自のアクセス・ルールを変更できません。
パターン構文
.bobignoreの構文は.gitignoreと同じです。一般的な例を以下に示します:
| 例 | 説明 |
|---|---|
node_modules/ | node_modulesディレクトリー全体を無視 |
*.log | .logで終わるすべてのファイルを無視 |
config/secrets.json | 特定のファイルを無視 |
!important.log | 例外;*.logのような広いパターンが存在しても、Bobはこの特定のファイルを無視しません |
build/ | buildディレクトリーを無視 |
docs/**/*.md | docsディレクトリーとそのサブディレクトリー内のすべてのMarkdownファイルを無視 |
構文の詳細については、.gitignoreに関する公式Gitドキュメントを参照してください。
Bobツールが.bobignoreとどのように相互作用するか
.bobignoreルールは、Bobのファイル・ツール全体で適用されます:
読み取りおよび書き込みツール
これらのツールは、各ファイル操作の前に.bobignoreをチェックします。ファイルが無視されるパターンに一致する場合、操作はブロックされます:
read_file: 無視されたファイルを読み取りません。write_file: 無視されたファイルに書き込んだり、作成したりしません。apply_diff: 無視されたファイルに差分を適用しません。insert_content: 無視されたファイルにコンテンツを挿入しません。search_and_replace: 無視されたファイルを変更しません。GetSymbolsOverview: 無視されたファイルをコード・シンボルのために解析しません。
ファイル検出とリスト
list_filesツール: 無視されたファイルはリストから省略されるか、🔒シンボルでマークされます(以下の「ユーザー・エクスペリエンス」を参照)。- 環境の詳細: Bobに提供されるワークスペース情報(開いているタブやプロジェクト構造など)は、無視された項目を除外またはマークするためにフィルタリングされます。
コマンド実行
execute_commandツール: Bobは、事前定義されたリスト(catやgrepなど)のコマンドが無視されたファイルをターゲットにしているかどうかをチェックします。その場合、コマンドはブロックされます。この事前定義されたリストに含まれないコマンドは、.bobignoreに対してチェックされません。
制限事項: .bobignoreとワークスペース・サンドボックス設定(「Allow outside workspace tool requests」)は、2つの別個のコントロールです。.bobignoreは、ワークスペース内でBobのファイル・ツールがアクセスできるファイルを制限します。ワークスペース・サンドボックス設定は、ファイル・ツールがワークスペース・ルートの外側で動作できるかどうかを制御します。どちらのコントロールも、任意のシェル操作に対するexecute_commandを制限しません。シェル・コマンドは、これらの設定に関係なく、オペレーティング・システムが許可する任意の場所でファイルを作成、変更、削除できます。
重要な制限と範囲
- ワークスペース中心:
.bobignoreルールは、現在のBobワークスペース・ルート内のファイルとディレクトリーにのみ適用されます。この範囲外のファイルは影響を受けません。 execute_commandの範囲:execute_commandに対する.bobignoreの適用は、事前定義されたファイル読み取りコマンドのリストのみが対象です。任意のシェル・コマンドは、.bobignoreやワークスペース・サンドボックス設定によって制限されません。- 完全なサンドボックスではない:
.bobignoreは、ワークスペース内でのBobのファイル・ツール・アクセスを制御します。システム・レベルのサンドボックスを作成するものではなく、シェル・コマンドの実行を制限しません。
ユーザー・エクスペリエンスと通知
- 視覚的な手がかり(🔒): ファイル・リストでは、
.bobignoreによって無視されたファイルは、showbobignoredFiles設定(デフォルトはtrue)に応じて、ロック・シンボル(🔒)でマークされる場合があります。 - エラー・メッセージ: ツール操作がブロックされると、Bobはエラーを受け取ります:
「[file_path]へのアクセスは.bobignoreファイル設定によってブロックされています。このファイルを使用せずにタスクを続行するか、ユーザーに.bobignoreファイルの更新を依頼する必要があります。」 - チャット通知:
.bobignoreによってアクションがブロックされた場合、通常、Bobチャット・インターフェースに通知が表示されます。
このガイドは、.bobignore機能、その機能、および現在の制限を理解するのに役立ち、Bobとコードベースとの相互作用を効果的に管理できるようにします。