>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

Como Parar de Se Afogar no Código dos Outros e Começar a Viver com o Sourcebot

Situação familiar: você entra em um novo projeto ou tenta entender um monstro legacy que três gerações de desenvolvedores escreveram antes de você. O IDE tenta ajudar honestamente, mas pular entre definições de funções em dez repositórios diferentes vira uma jornada. Geralmente em momentos assim, você só quer perguntar a alguém: "Onde está a lógica de processamento de pagamentos mesmo?" Mas os colegas estão ocupados, e a documentação ficou desatualizada no ano passado.

Recentemente, descobri o Sourcebot. É uma ferramenta open-source que você pode autohospedar e usar como um guia pessoal pela sua base de código. Ele pode indexar seus repositórios e responder perguntas em linguagem natural, citando linhas específicas de código.

O Que É Isso Mesmo

Resumindo, o Sourcebot é uma combinação de busca avançada de código e um assistente de LLM. A principal característica é que ele é autohospedado. Isso resolve a eterna questão de segurança: "Nosso código fonte não vai acabar no OpenAI?" Você controla onde o serviço roda e quais dados ele vê.

A ferramenta resolve vários pontos problemáticos de uma vez. Primeiro, ela oferece busca rápida em todos os seus branches e repositórios simultaneamente. Segundo, ela constrói um grafo de navegação nível de IDE diretamente no navegador. E a cereja do bolo — um chat que entende o contexto do seu projeto.

Do Que Ele É Capaz

Os desenvolvedores destacaram várias áreas principais que realmente economizam tempo na rotina diária.

Chat Inteligente com Contexto

Você escreve uma pergunta como: "Como a autorização está configurada neste serviço?" O Sourcebot não fica adivinhando aleatoriamente — ele usa seus índices de busca, encontra os arquivos relevantes, analisa as conexões e entrega uma resposta com citações. Isso é mais conveniente do que um ChatGPT comum porque você obtém provas na forma de links para o código.

Busca Sem Demora

Um grep comum em um monorepo enorme pode demorar. Aqui, a busca funciona muito rápido. Suporta expressões regulares, filtros por linguagem e repositório, além de operadores lógicos. Você pode encontrar rapidamente todos os lugares onde uma biblioteca específica ou configuração particular é usada, mesmo tendo dezenas de projetos.

Às vezes você só precisa fuçar o código sem baixá-lo localmente. O explorador embutido suporta syntax highlighting e Go to Definition. Isso funciona entre repositórios: se uma função está definida em um projeto vizinho, o Sourcebot leva você até lá.

Como Funciona Por Dentro

O projeto é escrito em TypeScript. Ele requer Docker para rodar, já que a forma mais fácil de fazer deploy é via Docker Compose. A arquitetura é projetada para que você possa plugar seus próprios LLMs. No config, você pode especificar provedores de modelo, configurar autenticação e indicar quais repositórios do GitHub ou GitLab indexar.

Curiosamente, os autores alertam honestamente sobre coleta de telemetria anônima. Você pode desativá-la com uma única variável de ambiente SOURCEBOT_TELEMETRY_DISABLED=true, o que é bom — sem atividade escondida.

Como Iniciar e Testar

O deploy leva alguns minutos se você já tem Docker. Primeiro, baixe o config:

curl -o docker-compose.yml https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/docker-compose.yml

Depois crie config.json. Nele, você descreve onde o bot deve procurar. Para um teste rápido, você pode apontá-lo para o próprio repositório do Sourcebot:

{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "connections": {
        "starter-connection": {
            "type": "github",
            "repos": [
                "sourcebot-dev/sourcebot"
            ]
        }
    }
}

Depois disso, inicie os containers com docker compose up e vá para localhost:3000.

Quem Vai Encontrar Isso Útil

Vejo o valor do Sourcebot em dois cenários. O primeiro é quando um time está crescendo rapidamente e os novatos gastam tempo demais no onboarding. Em vez de incomodar o lead, eles podem "consultar" o bot. O segundo é quando você tem um zoológico de microsserviços, e rastrear o caminho dos dados entre os serviços fica fisicamente doloroso.

O projeto ainda está evoluindo, e há uma lista decente de issues abertos no repositório, mas a base já é bastante usável. Se você estava procurando uma forma de tornar o conhecimento do seu código mais acessível para o time sem querer enviar dados para a nuvem — este é um ótimo candidato para testar.

A propósito, eles têm um demo público, então você pode até experimentar a interface sem instalar nada. Isso ajuda a entender se este formato de trabalhar com código serve para você.

Projetos relacionados