ESPAÇO PUBLICITÁRIO DISPONÍVEL · FALE CONOSCO

Como equipes de engenharia configuram o Sourcegraph Cody com contexto multirrepositório para explicar código legado e pesquisar bases de código organizacionais

365Finds Editorial
11.430 artigos Wiki catalogados

Use o 365 Wiki com sua IA

Copie o prompt abaixo, cole na IA que você já usa e faça sua pergunta.

Baixar o Skill completo

Experimente primeiro com o prompt. Se você usa o 365 Wiki com frequência, instale o Skill completo do 365Wiki para não precisar colá-lo novamente. Se não usa uma IA específica, as versões web do Gemini ou Microsoft Copilot também servem.

Em grandes organizações de tecnologia, o software raramente existe em um repositório isolado. Microsserviços comunicam-se por meio de interfaces RPC distribuídas, aplicações frontend dependem de contratos de API versionados e fluxos de negócio críticos frequentemente residem em monólitos legados mantidos há anos. Quando equipes de engenharia tentam compreender ou modernizar esses ambientes utilizando assistentes de código convencionais baseados em IA, deparam-se com uma barreira técnica: a maioria das ferramentas analisa apenas o arquivo aberto ou a pasta local do editor, carecendo de visibilidade sobre bibliotecas compartilhadas, serviços downstream e implementações históricas localizadas em outros repositórios.

O Sourcegraph Cody resolve essa limitação desacoplando a recuperação de contexto do espaço de trabalho local do desenvolvedor. Apoiado na plataforma de inteligência de código do Sourcegraph, o Cody é capaz de buscar contexto em centenas ou milhares de repositórios hospedados no GitHub, GitLab, Bitbucket ou servidores Git internos.

Este guia detalha como equipes de engenharia configuram o Sourcegraph Cody com contexto multirrepositório (Multi-Repository Context), a arquitetura de infraestrutura necessária para indexar e governar o código organizacional e como desenvolvedores utilizam esse recurso para decifrar sistemas legados complexos e realizar pesquisas semânticas em escala corporativa.


1. Fundamentos da arquitetura: como opera o contexto multirrepositório

Diferente de assistentes que dependem apenas de vetores em memória local no cliente, o Cody obtém contexto multirrepositório por meio de uma infraestrutura centralizada:

┌─────────────────────────────────────────────────────────────┐
│                    IDE do desenvolvedor                     │
│     (VS Code / JetBrains / Visual Studio / Cody Web)        │
│   - Chips de contexto: arquivo atual + repos fixados (≤ 10) │
│   - Menções @ pontuais (@repo, @dir, @file, @symbol)        │
└──────────────────────────────┬──────────────────────────────┘
                               │ HTTPS / Token de acesso
                               ▼
┌─────────────────────────────────────────────────────────────┐
│             Instância do Sourcegraph Enterprise             │
│                 (Cloud ou Auto-hospedada)                   │
│                                                             │
│  ┌─────────────────────────┐   ┌─────────────────────────┐  │
│  │    Mecanismo de busca   │   │       Code Graph        │  │
│  │   (Índice Zoekt Trigram)│   │  (Índice semântico SCIP)│  │
│  └─────────────────────────┘   └─────────────────────────┘  │
│  ┌─────────────────────────┐   ┌─────────────────────────┐  │
│  │   Filtros de contexto   │   │ Sincronização de perm.  │  │
│  │  (Exclusão de repos)    │   │   (GitHub/GitLab RBAC)  │  │
│  └─────────────────────────┘   └─────────────────────────┘  │
└──────────────────────────────┬──────────────────────────────┘
                               │ Prompt + trechos de código contextualizados
                               ▼
┌─────────────────────────────────────────────────────────────┐
│             Provedor de LLM (Cody Gateway)                  │
│         (Claude 3.7 / 3.5 Sonnet, GPT-4o, etc.)             │
└─────────────────────────────────────────────────────────────┘
  1. Indexação centralizada de repositórios: O Sourcegraph indexa todos os repositórios conectados usando o Zoekt (mecanismo de busca textual de alta performance baseado em trigramas) e indexadores SCIP (Source Code Intelligence Protocol). Isso cria um grafo global de símbolos com definições, referências e heranças entre projetos.
  2. Recuperação com respeito a permissões: O Cody respeita rigorosamente as regras de controle de acesso configuradas nas plataformas de controle de versão. Ao enviar uma pergunta, o Cody consulta e extrai dados exclusivamente dos repositórios que a credencial do usuário tem permissão para ler.
  3. Injeção seletiva de contexto: Em vez de injetar o conteúdo integral de repositórios remotos no prompt do LLM — o que ultrapassaria rapidamente os limites de tokens e degradaria a precisão das respostas —, o Cody emprega a API de busca do Sourcegraph para extrair apenas declarações de tipos, contratos de interface e blocos de código diretamente relevantes.

O contexto multirrepositório está disponível nativamente no Cody Enterprise (seja via Sourcegraph Cloud ou instalação corporativa auto-hospedada). Os planos Cody Free e Pro operam com foco no contexto de repositórios locais únicos.


2. Infraestrutura e configuração administrativa

O provisionamento do contexto multirrepositório tem início na instância do Sourcegraph. Os administradores de sistema precisam assegurar que as plataformas de código estejam sincronizadas, os índices semânticos ativos e o Cody Enterprise habilitado.

Passo 1: Conectar plataformas de código e sincronizar repositórios

No painel de administração do Sourcegraph, acesse Site Admin > Code Hosts (/site-admin/external-services) e configure a integração com os serviços de controle de versão (como GitHub Enterprise, GitLab Self-Managed ou Bitbucket Data Center).

Configure regras de filtragem para assegurar a inclusão de microsserviços modernos, monólitos legados e bibliotecas internas:

{
  "url": "https://github.com",
  "token": "ghp_yourEnterpriseSyncToken",
  "orgs": ["engineering-core", "legacy-platforms", "shared-libraries"]
}

Assegure-se de que os processos de clonagem em segundo plano e sincronização periódica sejam executados sem falhas de rede ou autenticação.

Passo 2: Configurar o Code Graph e a indexação automática

A busca textual com Zoekt torna-se disponível logo após a clonagem inicial. No entanto, para rastrear lógicas legadas distribuídas com precisão cirúrgica, é essencial dispor de navegação semântica cruzada:

  1. Em Site Admin > Code Navigation, habilite a indexação automática (Auto-indexing).
  2. Para as linguagens predominantes (Go, TypeScript/JavaScript, Java, Python, C++), configure pipelines de CI/CD (no GitHub Actions ou GitLab CI) para gerar e enviar índices SCIP usando as ferramentas dedicadas (scip-typescript, scip-java, scip-python, etc.).
  3. Os dados semânticos do SCIP permitem que o Cody localize chamadores e implementações concretas em repositórios remotos sem inferências imprecisas.

Passo 3: Ativar o Cody na configuração do site

Navegue até Site Admin > Site Configuration (/site-admin/configuration) e inclua o seguinte bloco de configuração:

{
  "cody.enabled": true,
  "completions": {
    "provider": "sourcegraph"
  }
}

Defina um modelo de LLM otimizado para raciocínio com grandes janelas de contexto (como Anthropic Claude 3.5 Sonnet, Claude 3.7 Sonnet ou Azure OpenAI GPT-4o por meio do Cody Gateway). Certifique-se de que a flag cody.restrictUsersFeatureFlag não esteja bloqueando indevidamente o acesso de desenvolvedores.

Passo 4: Configurar filtros de contexto (Context Filters) para repositórios confidenciais

Empresas frequentemente possuem repositórios com credenciais de infraestrutura, cofres em conformidade com normas PCI ou algoritmos proprietários altamente sigilosos que devem ser resguardados de qualquer interação com modelos de IA.

Utilize o recurso Context Filters (cody.contextFilters) para bloquear repositórios específicos em nível global:

{
  "cody.contextFilters": {
    "exclude": [
      { "repo": "github.com/company/pci-vault-service" },
      { "repo": "github.com/company/compliance-secrets-.*" }
    ]
  }
}

3. Configuração do ambiente do desenvolvedor (VS Code, JetBrains e Web)

Com a retaguarda empresarial configurada, os desenvolvedores conectam suas ferramentas locais para usufruir da inteligência distribuída.

Passo 1: Instalação e login na extensão do IDE

  1. Instale a extensão oficial Cody no VS Code, na família de IDEs JetBrains (IntelliJ, PyCharm, GoLand, WebStorm) ou no Visual Studio.
  2. No menu lateral do Cody, selecione Sign In with Sourcegraph Enterprise.
  3. Insira a URL da instância da sua organização:
    https://sourcegraph.internal.company.com
    
  4. Conclua a autenticação pelo SSO corporativo no navegador ou informe um token de acesso pessoal gerado nas preferências de conta do Sourcegraph.

Passo 2: Mapeamento do identificador de repositório (cody.codebase)

Em situações normais, o Cody identifica automaticamente o remote origin do repositório Git local e o correlaciona ao identificador correspondente no Sourcegraph.

Caso o diretório local possua outro nome ou integre uma estrutura de submódulos atípica, defina explicitamente o identificador nas configurações do workspace (.vscode/settings.json):

{
  "cody.codebase": "github.com/organization/core-payment-service"
}

Passo 3: Gerenciamento do contexto multirrepositório no chat

Ao iniciar uma nova sessão de chat com o Cody, a janela exibe etiquetas padrão de contexto:

Para incluir repositórios adicionais da organização na conversa:

  1. Barra de contexto (Context Chips): Acima da área de digitação, clique nos chips de contexto para pesquisar e fixar até 10 repositórios remotos na conversa atual. Uma vez fixados, todas as mensagens subsequentes realizarão buscas semânticas automáticas sobre essas bases de código.
  2. Menções diretas com @:
    • @repo/organization/legacy-billing-monolith: Carrega contexto do repositório legado de faturamento.
    • @dir/organization/auth-service/pkg/middleware: Delimita o escopo a um diretório específico de outro projeto.
    • @file/organization/proto-contracts/v2/payment.proto: Carrega a definição formal de contratos sem necessidade de clonar o projeto na máquina local.
    • @symbol: Aponta diretamente para uma classe, struct ou interface indexada na base corporativa.
  3. Interface Web do Cody: Para desenvolvedores em etapas exploratórias de arquitetura que não precisam abrir uma IDE pesada, basta acessar o portal web do Sourcegraph, clicar no ícone do Cody e realizar consultas abrangentes contra todos os repositórios indexados.

4. Guia prático: Explicando código legado distribuído entre múltiplos repositórios

Sistemas legados frequentemente sofrem com a perda do conhecimento original, documentação desatualizada e regras de negócio espalhadas entre microsserviços e rotinas em lote. Veja como equipes de engenharia utilizam o Cody para elucidar essas arquiteturas:

Cenário A: Rastreamento de fluxo distribuído de ponta a ponta

Investigação sobre perda ocasional de notificações de cobrança entre um serviço moderno de checkout e um monólito legado de faturamento:

Com o repositório checkout-service aberto no editor local:

Pergunta do desenvolvedor: @checkout-service @legacy-billing-monolith @event-bus-contracts "Rastreie como o evento OrderSubmittedEvent emitido pelo serviço de Checkout é consumido e processado no monólito de faturamento legado. Quais tabelas de banco de dados são modificadas e sob quais condições de negócio a dedução de saldo da conta é ignorada?"

O que o Cody faz nos bastidores:

  1. Analisa o schema do evento em @event-bus-contracts.
  2. Busca em @legacy-billing-monolith os consumidores de fila e listeners que escutam o tópico do evento.
  3. Inspeciona as classes transacionais legadas e localiza as chamadas SQL e procedures de modificação de saldo.
  4. Identifica regras de exceção históricas (como listas de parceiros antigos fixadas no código ou lógicas de tolerância cambial desatualizadas) que causam a supressão do débito.

Cenário B: Decifrando regras de negócio complexas sem documentação

Compreensão de rotinas de cálculo complexas ou máquinas de estado sem comentários explicativos:

Pergunta do desenvolvedor: @core-monolith/src/main/resources/rules/pricing_engine_v1.rb @pricing-integration-tests "Explique a máquina de estados e as condições de contorno tratadas na função calculate_tiered_rebate. Compare isso com os testes de integração históricos em @pricing-integration-tests para explicar por que ajustes negativos são aplicados quando os limites de faixas cruzam fronteiras trimestrais."

O Cody sintetiza o código-fonte em conjunto com as asserções dos testes históricos, convertendo estruturas condicionais confusas em especificações claras de regras de negócio.

Cenário C: Análise de impacto para depreciação e migração de interfaces

Planejamento prévio à desativação de um endpoint RPC legado:

Pergunta do desenvolvedor: @user-profile-service @notification-service @reporting-worker "Pretendemos descontinuar o endpoint GetUserPreferencesV1 em @user-profile-service. Quais serviços downstream no nosso contexto chamam esse endpoint, quais campos eles consomem e quais alterações de código são necessárias para migrá-los para GetUserPreferencesV2?"

O Cody mapeia todas as chamadas externas, identifica os campos estritamente necessários e produz um guia com exemplos de código para a migração de cada cliente.


5. Pesquisa inteligente e descoberta de soluções na base de código corporativa

A busca convencional de código exige saber previamente nomes de métodos, caminhos de arquivo ou expressões regulares. O Cody combina processamento de linguagem natural com os mecanismos de pesquisa do Sourcegraph para responder a dúvidas exploratórias de engenharia.

Descoberta de padrões padrão e prevenção de retrabalho

Com o crescimento da organização, diferentes equipes costumam recriar utilitários de limitação de taxa (rate limiting), clientes HTTP com retry ou fluxos de validação de tokens:

Pergunta do desenvolvedor: "Como nossos microsserviços em Go implementam limitação de taxa distribuída com Redis? Mostre o pacote interno padrão ou a implementação de referência mais utilizada na organização."

O Cody avalia os repositórios corporativos, analisa o grafo de importações e identifica a biblioteca padrão interna (como pkg/ratelimit), demonstrando exemplos de código alinhados aos padrões da empresa.

Auditoria de conformidade de segurança e padrões obsoletos

Durante revisões de segurança e modernização técnica:

Pergunta do desenvolvedor: @payment-service @auth-service @mobile-api-gateway "Como a validação de tokens JWT está configurada nestes repositórios? Há serviços ignorando a validação de assinatura ou aceitando algoritmos depreciados sem rotação de chaves (como RS256 sem checagens adequadas)?"

O Cody inspeciona a camada de middleware de cada serviço e consolida um relatório com as discrepâncias e vulnerabilidades detectadas.


6. Boas práticas, armadilhas comuns e diretrizes operacionais

Para atingir o melhor equilíbrio entre tempo de resposta e precisão ao utilizar o contexto multirrepositório, recomenda-se adotar as seguintes práticas:

Prática recomendadaJustificativa técnica
Fixar entre 2 e 5 repositórios correlacionados por sessãoO Cody suporta até 10 repositórios, mas adicionar bases desconexas gera ruído, consome a janela de contexto do LLM e eleva a latência das respostas.
Usar menções @file ou @dir diretas para contratos de dadosApontar explicitamente para arquivos .proto, OpenAPI YAML ou esquemas GraphQL garante que as respostas da IA se fundamentem na especificação oficial do contrato.
Garantir a atualização contínua dos índices SCIPA busca textual identifica palavras-chave literais, mas o SCIP assegura a navegação de símbolos entre repositórios sem ambiguidades. Inclua a geração SCIP nas rotinas de CI dos pacotes centrais.
Verificar os chips de contexto antes de enviar a consultaRevise a barra de contexto para remover arquivos temporários ou irrelevantes que possam desviar a atenção do modelo.
Combinar o Cody com o Sourcegraph Batch ChangesUse o chat do Cody para entender a arquitetura e desenhar a estratégia de refatoração; em seguida, aplique as modificações em massa em dezenas de repositórios com o Sourcegraph Batch Changes de forma declarativa e automatizada.

Conclusão

A configuração do Sourcegraph Cody com contexto multirrepositório eleva os assistentes de inteligência artificial de ferramentas de autocomplete locais para a categoria de centros de inteligência arquitetônica corporativa. Ao integrar a sincronização contínua de plataformas de controle de versão, grafos de código semânticos e controle de acesso rigoroso, o Cody permite que equipes de engenharia desvendem sistemas legados complexos, planejem migrações seguras e pesquisem o ecossistema de software de toda a organização com total transparência e precisão.


Referências