Adicionar repos a um espaço de trabalho
Este guia mostra como registrar um checkout do Git em um espaço de trabalho, reindexá-lo e removê-lo de novo.
Os repos têm escopo de espaço de trabalho. Não existe um registro global nem uma etapa de vinculação: adicionar um repo e colocá-lo em um espaço de trabalho são o mesmo ato. O mesmo checkout registrado em dois espaços de trabalho se torna duas linhas independentes com dois ids diferentes — entre espaços de trabalho, a identidade de um repo é o caminho no sistema de arquivos, nunca o id dele.
Antes de começar
Seção intitulada “Antes de começar”Uma pasta só pode ser registrada se todas estas três condições forem verdadeiras:
- Ela está dentro de uma árvore de trabalho do git.
- Essa árvore de trabalho tem um remote
origin. - O remote
originaponta para um forge compatível: github.com, gitlab.com ou bitbucket.org.
Qualquer outro caso é recusado no momento do registro com uma mensagem explícita: “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).”. Não existe um modo apenas local.
O forge é lido do remote e armazenado no repo — você nunca o escolhe. Um espaço de trabalho pode conter repos dos três ao mesmo tempo, e cada um é acessado pela sua própria API com a sua própria credencial. Os namespaces aninhados do GitLab são preservados, de modo que gitlab.com/group/subgroup/project é registrado como owner group/subgroup, name project.
A pasta também precisa estar na máquina que hospeda o cc_server, dentro de um dos diretórios --repo-roots desse servidor. Essa lista de permissões usa por padrão o diretório home do usuário do servidor, e a navegação acima de uma raiz é recusada.
Registrar um checkout
Seção intitulada “Registrar um checkout”- Abra Configurações → Espaço de trabalho → Repositórios (
/workspaces/<id>/settings/workspace/repositories). - Clique em Adicionar repositório.
A caixa de diálogo é um navegador navegável pelo sistema de arquivos do servidor, não pelo seu. É o mesmo fluxo no desktop, na web e no celular, porque um seletor de pastas nativo escolheria uma pasta na máquina errada.
- Navegue pelas raízes configuradas do servidor. As pastas que são checkouts do git são sinalizadas.
- Marque quantas quiser. A seleção é mantida conforme você navega, então você pode reunir checkouts de várias pastas.
- Registre-os em um único lote.
Uma escolha que falha nunca descarta o restante do lote — você recebe os ids que foram criados e um erro por caminho para cada uma que foi recusada. Registrar novamente um caminho que já existe neste espaço de trabalho retorna o repo existente em vez de criar um duplicado.
Cada repo registrado aparece na lista com o seu owner/name, um selo com o nome do seu forge e o seu caminho no servidor. Os repos do GitHub também mostram o avatar do owner; os outros forges não têm uma URL previsível de avatar do owner, então recorrem às iniciais.
O selo do forge importa em um espaço de trabalho misto: dois repos podem se chamar acme/web em forges diferentes, e eles se comportam de maneira diferente — o que uma revisão pode fazer e para onde um link leva.
O que acontece em seguida
Seção intitulada “O que acontece em seguida”O registro dispara um evento RepoAdded com escopo neste espaço de trabalho, que inicia o pipeline index_code para esse checkout. É isso que popula o grafo de código, para que a pesquisa e a análise de impacto tenham com o que responder.
Só são indexados os arquivos cuja linguagem tem uma gramática incluída (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB e Ada). Consulte Pesquisar código com o grafo de código.
Reindexar um repo
Seção intitulada “Reindexar um repo”Cada linha traz um botão Indexar código. Clique nele para executar o indexador de novo para esse checkout; enquanto ele é executado, o botão se transforma em um indicador de progresso que mostra os arquivos concluídos em relação ao total, com um controle de cancelamento. Quando termina, ele se firma em uma marca de confirmação com a contagem de símbolos, ou em um aviso se a execução falhou.
Reordenar repos
Seção intitulada “Reordenar repos”Arraste a alça de uma linha. A ordem que você define é a ordem que todas as listas de repos do app retornam.
Corrigir o link do GitHub
Seção intitulada “Corrigir o link do GitHub”O ícone de link em uma linha abre um editor para o owner e o nome do repositório do repo no GitHub — útil quando o remote foi renomeado ou transferido.
Remover um repo
Seção intitulada “Remover um repo”- Abra Configurações → Espaço de trabalho → Repositórios.
- Clique no ícone de lixeira na linha.
- Confirme “Remover repositório do espaço de trabalho?”
A caixa de diálogo explica o que ela faz: “name será removido deste espaço de trabalho. Os arquivos locais no disco não são afetados.”
A remoção exclui a linha do repo deste espaço de trabalho e elimina em cascata as suas linhas do grafo de código — símbolos, arestas, arquivos e checkpoints de índice —, além de todas as concessões de repo por membro sobre ele, os seus vínculos entre espaço e repo e os seus registros de checkout isolado. O mesmo checkout registrado em outro espaço de trabalho é uma linha independente e não é afetado. Os worktrees em disco para os quais esses registros apontavam não são destruídos pela exclusão.
Guias relacionados
Seção intitulada “Guias relacionados”- Pesquisar código com o grafo de código
- Executar agentes em paralelo
- Configurar a integração com o GitHub
- Seu primeiro espaço de trabalho