Configuration

Ignorer des fichiers

Contrôlez les fichiers auxquels Bob peut accéder en créant un fichier `.bobignore` dans votre projet.

Qu'est-ce que .bobignore ?

  • Objectif : Protéger les informations sensibles, prévenir les modifications accidentelles des artefacts de build ou des gros assets, et définir généralement le périmètre d'opération de Bob dans votre espace de travail.
  • Utilisation : Créez un fichier nommé .bobignore dans le répertoire de votre espace de travail. Listez les motifs dans ce fichier pour indiquer à Bob quels fichiers et répertoires ignorer.

Bob surveille activement le fichier .bobignore. Toutes les modifications que vous apportez sont automatiquement rechargées, de sorte que Bob utilise toujours les règles les plus récentes. Le fichier .bobignore lui-même est toujours implicitement ignoré, de sorte que Bob ne peut pas modifier ses propres règles d'accès.

Syntaxe des motifs

La syntaxe de .bobignore est identique à .gitignore. Voici des exemples courants :

ExempleDescription
node_modules/Ignore tout le répertoire node_modules
*.logIgnore tous les fichiers se terminant par .log
config/secrets.jsonIgnore un fichier spécifique
!important.logUne exception ; Bob n'ignorera pas ce fichier spécifique, même si un motif plus large comme *.log existe
build/Ignore le répertoire build
docs/**/*.mdIgnore tous les fichiers Markdown dans le répertoire docs et ses sous-répertoires

Pour en savoir plus sur la syntaxe, lisez la documentation officielle Git sur .gitignore.

Comment les outils Bob interagissent avec .bobignore

Les règles .bobignore sont appliquées à travers les outils de fichiers de Bob :

Outils de lecture et d'écriture

Ces outils vérifient .bobignore avant chaque opération sur fichier. Si un fichier correspond à un motif ignoré, l'opération est bloquée :

  • read_file : Ne lit pas les fichiers ignorés.
  • write_file : N'écrit pas dans les fichiers ignorés et ne les crée pas.
  • apply_diff : N'applique pas de diffs aux fichiers ignorés.
  • insert_content : N'insère pas de contenu dans les fichiers ignorés.
  • search_and_replace : Ne modifie pas les fichiers ignorés.
  • GetSymbolsOverview : N'analyse pas les fichiers ignorés pour les symboles de code.

Découverte et listage de fichiers

  • Outil list_files : Les fichiers ignorés sont omis des listes ou marqués d'un symbole 🔒 (voir "Expérience utilisateur" ci-dessous).
  • Détails de l'environnement : Les informations sur votre espace de travail fournies à Bob, comme les onglets ouverts et la structure du projet, sont filtrées pour exclure ou marquer les éléments ignorés.

Exécution de commandes

  • Outil execute_command : Bob vérifie si une commande d'une liste prédéfinie (comme cat ou grep) cible un fichier ignoré. Si c'est le cas, la commande est bloquée. Les commandes qui ne figurent pas dans cette liste prédéfinie ne sont pas vérifiées par rapport à .bobignore.

Restriction : .bobignore et le paramètre de sandbox de l'espace de travail ("Allow outside workspace tool requests") sont deux contrôles distincts. .bobignore restreint les fichiers auxquels les outils de fichiers de Bob peuvent accéder dans l'espace de travail. Le paramètre de sandbox de l'espace de travail détermine si les outils de fichiers peuvent opérer en dehors de la racine de l'espace de travail. Aucun de ces contrôles ne restreint execute_command pour les opérations shell arbitraires ; une commande shell peut toujours créer, modifier ou supprimer des fichiers partout où le système d'exploitation le permet, quels que soient ces paramètres.

Limitations et portée importantes

  • Centré sur l'espace de travail : Les règles .bobignore s'appliquent uniquement aux fichiers et répertoires dans la racine actuelle de l'espace de travail Bob. Les fichiers en dehors de cette portée ne sont pas affectés.
  • Portée de execute_command : L'application de .bobignore pour execute_command couvre uniquement une liste prédéfinie de commandes de lecture de fichiers. Les commandes shell arbitraires ne sont restreintes ni par .bobignore ni par le paramètre de sandbox de l'espace de travail.
  • Pas de sandbox complète : .bobignore contrôle l'accès de Bob aux fichiers via ses outils de fichiers dans l'espace de travail. Il ne crée pas de sandbox au niveau du système et ne restreint pas l'exécution de commandes shell.

Expérience utilisateur et notifications

  • Indice visuel (🔒) : Dans les listes de fichiers, les fichiers ignorés par .bobignore peuvent être marqués d'un symbole de cadenas (🔒), selon le paramètre showbobignoredFiles (par défaut true).
  • Messages d'erreur : Lorsqu'une opération d'outil est bloquée, Bob reçoit une erreur : "L'accès à [file_path] est bloqué par les paramètres du fichier .bobignore. Vous devez essayer de continuer la tâche sans utiliser ce fichier, ou demander à l'utilisateur de mettre à jour le fichier .bobignore."
  • Notifications de chat : Vous verrez normalement une notification dans l'interface de chat Bob lorsqu'une action est bloquée en raison de .bobignore.

Ce guide vous aide à comprendre la fonctionnalité .bobignore, ses capacités et ses limitations actuelles, afin que vous puissiez gérer efficacement l'interaction de Bob avec votre base de code.

Comment trouvez-vous ce sujet ?