Aller au contenu

Ajouter des dépôts à un espace de travail

Ce guide vous explique comment enregistrer une copie de travail Git dans un espace de travail, la réindexer puis la retirer.

Les dépôts sont limités à l’espace de travail. Il n’existe aucun registre global ni aucune étape de liaison : ajouter un dépôt et le placer dans un espace de travail sont un seul et même acte. La même copie de travail enregistrée dans deux espaces de travail devient deux lignes indépendantes dotées de deux identifiants différents — d’un espace de travail à l’autre, l’identité d’un dépôt est son chemin dans le système de fichiers, jamais son identifiant.

Un dossier ne peut être enregistré que si les trois conditions suivantes sont réunies :

  1. Il se trouve à l’intérieur d’un arbre de travail git.
  2. Cet arbre de travail possède un dépôt distant origin.
  3. Le dépôt distant origin pointe vers un hébergeur de code pris en charge : github.com, gitlab.com ou bitbucket.org.

Tout le reste est refusé au moment de l’enregistrement, avec un message explicite : « Folder is not inside a git work tree. », « No origin remote configured for this repository. » ou « The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org). ». Il n’existe aucun mode limité au local.

L’hébergeur de code est lu depuis le dépôt distant et stocké sur le dépôt — vous ne le choisissez jamais. Un espace de travail peut contenir des dépôts des trois à la fois, et chacun est contacté via sa propre API, avec ses propres identifiants. Les espaces de noms imbriqués de GitLab sont préservés : gitlab.com/group/subgroup/project est enregistré avec le propriétaire group/subgroup et le nom project.

Le dossier doit aussi se trouver sur la machine qui héberge cc_server, dans l’un des répertoires --repo-roots de ce serveur. Cette liste d’autorisation correspond par défaut au répertoire personnel de l’utilisateur du serveur, et la navigation au-dessus d’une racine est refusée.

  1. Ouvrez Paramètres → Espace de travail → Dépôts (/workspaces/<id>/settings/workspace/repositories).
  2. Cliquez sur Ajouter un dépôt.

La boîte de dialogue est un navigateur parcourable dans le système de fichiers du serveur, et non dans le vôtre. Le déroulement est identique sur ordinateur, sur le web et sur téléphone, car un sélecteur de dossiers natif choisirait un dossier sur la mauvaise machine.

  1. Naviguez dans les racines configurées du serveur. Les dossiers qui sont des copies de travail git sont signalés.
  2. Cochez-en autant que vous voulez. La sélection persiste pendant que vous naviguez, ce qui vous permet de rassembler des copies de travail issues de plusieurs dossiers.
  3. Enregistrez-les en un seul lot.

Une sélection en échec n’écarte jamais le reste du lot — vous recevez les identifiants créés, plus une erreur par chemin pour chaque élément refusé. Réenregistrer un chemin déjà présent dans cet espace de travail renvoie le dépôt existant plutôt que de créer un doublon.

Chaque dépôt enregistré apparaît dans la liste avec son owner/name, un badge nommant son hébergeur de code et son chemin sur le serveur. Les dépôts GitHub affichent aussi l’avatar du propriétaire ; les autres hébergeurs de code n’exposent aucune URL d’avatar de propriétaire devinable, et se rabattent donc sur les initiales.

Le badge d’hébergeur de code compte dans un espace de travail mixte : deux dépôts peuvent tous deux s’appeler acme/web sur des hébergeurs de code différents, et ils se comportent différemment — ce qu’une revue peut faire, et où mène un lien.

L’enregistrement déclenche un événement RepoAdded limité à cet espace de travail, qui lance le pipeline index_code pour cette copie de travail. C’est ce qui alimente le graphe de code, afin que la recherche et l’analyse d’impact aient de quoi répondre.

Seuls les fichiers dont le langage dispose d’une grammaire livrée sont indexés (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB et Ada). Voir Rechercher du code avec le graphe de code.

Chaque ligne porte un bouton Indexer le code. Cliquez dessus pour relancer l’indexeur pour cette copie de travail ; pendant l’exécution, le bouton devient un indicateur de progression affichant les fichiers traités sur le total, avec une commande d’annulation. À la fin, il se stabilise en une coche accompagnée du nombre de symboles, ou en un avertissement si l’exécution a échoué.

Faites glisser la poignée d’une ligne. L’ordre que vous définissez est celui que renvoie chaque liste de dépôts de l’application.

L’icône de lien sur une ligne ouvre un éditeur du propriétaire GitHub et du nom du dépôt — utile lorsque le dépôt distant a été renommé ou transféré.

  1. Ouvrez Paramètres → Espace de travail → Dépôts.
  2. Cliquez sur l’icône de corbeille de la ligne.
  3. Confirmez « Retirer le dépôt de l’espace de travail ? ».

La boîte de dialogue indique ce qu’elle fait : « nom sera retiré de cet espace de travail. Les fichiers locaux sur le disque ne sont pas modifiés. »

La suppression efface la ligne du dépôt de cet espace de travail et supprime en cascade ses lignes de graphe de code — symboles, arêtes, fichiers et points de contrôle d’indexation — ainsi que toutes les autorisations par membre sur ce dépôt, ses liens espace-dépôt et ses enregistrements de copies de travail isolées. La même copie de travail enregistrée dans un autre espace de travail constitue une ligne indépendante et n’est pas affectée. Les arbres de travail sur disque vers lesquels ces enregistrements pointaient ne sont pas détruits par la suppression.