← Voltar ao blog

Mensagens de commit com IA e a sua própria chave: o seu diff nunca passa pelos nossos servidores

feature privacy

Porque é que as mensagens de commit com IA são úteis -- e onde termina essa utilidade

Todos os programadores conhecem aquele momento. Acabou de terminar uma longa sessão de refatoração, o diff em staging toca uma dúzia de ficheiros, e o Git pede-lhe para resumir tudo numa linha ou duas. Escreve "refatorar coisas", promete a si próprio que um dia escreverá mensagens melhores, e segue em frente. Seis meses depois, está a escavar o histórico, a tentar lembrar-se do que "refatorar coisas" realmente mudou.

Este é o problema que um gerador de mensagens de commit com IA resolve genuinamente. Um modelo de linguagem é bom exatamente nesta tarefa: lê o diff em staging, repara em tudo o que mudou -- incluindo o ficheiro de configuração que se esqueceu de ter tocado -- e redige uma mensagem que descreve a alteração em vez do seu estado de espírito às 19 horas. Para commits grandes, com muitos ficheiros, é um verdadeiro presente para o seu eu futuro e para quem um dia rever o seu histórico.

Sejamos igualmente honestos quanto ao outro lado: para alterações triviais de uma linha, a IA é exagero. Se corrigiu uma gralha, escrever "Corrige gralha no README" será sempre mais rápido do que qualquer ida e volta de geração, e nenhum modelo fará melhor. O objetivo das mensagens de commit com IA não é substituir o seu julgamento numa alteração de um carácter. É eliminar o tédio das alterações que são genuinamente difíceis de resumir.

A pergunta que ninguém faz: que servidores veem o seu diff?

Quando os clientes Git começaram a adicionar funcionalidades de IA, a maioria seguiu o mesmo guião: a aplicação envia o seu diff para a nuvem do fabricante, o backend do fabricante reencaminha-o para um fornecedor de modelos, e a resposta volta pelo mesmo canal. Normalmente é vendido como comodidade -- nenhuma chave de API para configurar -- e muitas vezes vem empacotado numa subscrição com uma quota mensal de "créditos de IA".

Agora pense no que realmente viaja por esse canal. Um diff não é metadados. É o seu código-fonte: a funcionalidade ainda não publicada, a correção de segurança que ainda não lançou, as credenciais que um colega pôs em staging por acidente. Quando um pedido de IA passa por um proxy nos servidores de um fabricante, a infraestrutura desse fabricante vê tudo isso. Já não está a confiar apenas num fornecedor de modelos. Está também a confiar num intermediário -- na sua configuração de registos, na sua política de retenção, nos seus subcontratantes, e naquilo em que os seus termos se transformarem após a próxima aquisição.

Para sermos claros: não estamos a afirmar que alguma empresa em particular lida mal com os seus diffs. O problema é estrutural. Cada parte adicional no caminho é uma parte adicional em quem tem de confiar, que tem de auditar, e em quem tem de continuar a confiar ao longo do tempo -- e na maioria dos casos não tem forma de verificar nada disso. Se já leu porque é que o GitSquid funciona com zero telemetria, já sabe o que pensamos sobre ser essa parte.

A resposta do GitSquid: traga a sua própria chave

O GitSquid escolheu o outro caminho. Quando usa uma funcionalidade de IA no GitSquid, o pedido vai diretamente da sua máquina para o fornecedor que configurou. O GitSquid não tem servidores no trajeto -- não como uma política que prometemos cumprir, mas como um facto de arquitetura: não existem. Sem proxy, sem margem sobre os tokens, sem retenção por um intermediário, porque não há intermediário.

Escolhe o fornecedor em Definições → IA:

  • Anthropic Claude. Cole a sua chave de API e os pedidos vão diretos do GitSquid para a Anthropic.
  • OpenAI. Mesmo esquema: a sua chave, a sua conta, uma ligação direta.
  • Claude Code. Se já tem a CLI do Claude Code instalada, o GitSquid comanda-a localmente. Não há nenhuma chave de API para colar.
  • Gemini CLI. Adicionado na v2.7.7, e também sem chave: o GitSquid reutiliza o seu início de sessão existente na Gemini CLI.
  • Qualquer endpoint personalizado compatível com OpenAI. Aponte o GitSquid para qualquer servidor que fale a API da OpenAI -- o que inclui modelos locais a correr atrás de um servidor compatível com OpenAI na sua própria máquina. Nessa configuração, o seu diff nem sequer sai do seu computador.

Com a Anthropic, a OpenAI e os fornecedores personalizados compatíveis com OpenAI, o texto gerado chega em streaming à medida que é produzido, para que possa ler o rascunho enquanto está a ser escrito. O Claude Code entrega o resultado num único bloco no fim -- uma limitação da CLI, não do GitSquid. Em qualquer dos casos, a geração é cancelável: o botão Gerar transforma-se em Cancelar enquanto um pedido está em curso, e a função Explicar tem o seu próprio botão Parar. Nada continua a correr nas suas costas.

Um pequeno detalhe que nos importa: cada entrada de menu e cada botão acionados por IA no GitSquid estão marcados com um ícone de brilho. Sabe sempre, antes de clicar, se uma ação vai enviar algo para o seu fornecedor de IA.

As três funcionalidades de IA na prática

1. Geração de mensagens de commit

Ponha as suas alterações em staging exatamente como sempre fez e clique em Gerar. A IA lê o diff em staging -- apenas o diff em staging -- e redige uma mensagem de commit que o descreve. Pode editá-la, aceitá-la, ou deitá-la fora e escrever a sua. É um rascunho, não um decreto: o commit continua a ser seu.

2. Descrições de pull request com IA

O diálogo de criação de pull request tem um botão "Gerar com IA" que transmite em streaming uma descrição estruturada -- Resumo, Alterações, Plano de testes -- diretamente para o corpo. Se o seu repositório tiver um PULL_REQUEST_TEMPLATE.md, o GitSquid respeita-o: a IA preenche o template da sua equipa em vez de o atropelar com o seu próprio formato.

3. Explicação com IA, em qualquer lugar

Clique com o botão direito num commit do grafo, num cabeçalho de hunk dentro de um diff, ou em qualquer ficheiro -- em staging ou não -- e peça uma explicação. Recebe uma análise inline do que a alteração faz. É igualmente útil para arqueologia ("o que é que este commit de 2023 fazia realmente?"), para rever o seu próprio trabalho antes do commit, e para se orientar numa base de código desconhecida.

O que custa realmente

Como traz a sua própria chave, paga diretamente ao seu fornecedor -- e apenas pelo que usa. Uma geração de mensagem de commit envia um único prompt aproximadamente do tamanho do seu diff. Aos preços atuais das API, isso resulta tipicamente numa fração de cêntimo. Evitamos deliberadamente citar números exatos: os fornecedores mudam os preços, os modelos variam, e qualquer número impresso aqui acabaria por estar errado. A resposta honesta é a melhor: consulte a tabela de preços do seu fornecedor e depois a sua própria fatura.

E é exatamente esse o ponto. Cada pedido aparece na sua fatura, emitida pelo seu fornecedor, sem margem da nossa parte e sem um pacote opaco de "créditos" pelo meio. Se usar as vias do Claude Code ou da Gemini CLI, está a reutilizar ferramentas e planos que já paga. E com um modelo local atrás de um endpoint compatível com OpenAI, o custo marginal de uma mensagem de commit é aproximadamente a eletricidade necessária para a gerar.

Respostas no seu idioma

Mais uma coisa que uma chave de API em bruto não lhe dá de origem: Definições → IA permite escolher o idioma de resposta para cada funcionalidade de IA -- dez idiomas à escolha, mais "Igual à aplicação". Assim pode ter mensagens de commit e descrições de pull request em inglês para uma equipa internacional, enquanto as explicações de IA chegam no idioma em que realmente pensa.

A sua chave, os seus dados, a sua fatura

O pacote de IA -- geração de mensagens de commit, descrições de pull request e explicações -- faz parte do GitSquid Pro, por 49 EUR por ano. A versão gratuita cobre o trabalho diário com Git; o Pro acrescenta as funcionalidades que lhe tiram o tédio das mãos. Em ambos os casos, a arquitetura é a mesma: nenhuma conta obrigatória, zero telemetria, e nenhum servidor do GitSquid entre o seu diff e o seu fornecedor de IA, porque não existem servidores do GitSquid de todo.

Se quiser ver como isto se compara com o resto do mercado, a nossa comparação de telemetria das GUI de Git analisa o que os clientes populares enviam para casa. E se preferir simplesmente experimentar: Descarregue o GitSquid, ligue a sua chave -- ou a sua CLI, ou o seu modelo local -- e deixe a IA escrever a mensagem de commit enquanto o seu diff fica estritamente entre si e o seu fornecedor.