← Voltar ao blog

Telemetria dos Git GUIs: quem te rastreia em 2026

comparison privacy

Telemetria de Git GUI comparada: quem está rastreando você em 2026

A maioria das aplicações desktop coleta dados de uso. As Git GUIs não são exceção. Este artigo compara o comportamento de telemetria de quatro clientes Git populares — GitKraken, Fork, SourceTree e GitSquid — com base no tráfego de rede observável. Os números vêm de uma sessão de captura de pacotes de 24 horas em cada aplicação, com o mesmo repositório aberto e interação mínima do usuário.

Transparência: este artigo é publicado no site do GitSquid. A metodologia é descrita em detalhes para que você possa reproduzir os números você mesmo.

Por que isso importa

"Telemetria" é uma palavra suave para "sua aplicação envia dados ao seu fornecedor sem você pedir ativamente". Frequentemente os dados são genuinamente benignos: um contador de uso anônimo, um relatório de crash, uma verificação de feature flag. Às vezes é mais: em quais botões você clica, quais repositórios você tem abertos, quais funcionalidades você experimentou.

Para a maioria dos usuários isso não é problema. Para três categorias de usuários, é uma restrição rígida:

  • Indústrias reguladas. Saúde, finanças, defesa, governo. Os processos de revisão de TI bloqueiam rotineiramente qualquer ferramenta que ligue para casa com dados identificáveis.
  • Trabalho sob NDA / proprietário. Se os nomes dos seus repositórios ou branches contêm informações de clientes ou produtos, vazá-los via telemetria é uma preocupação real.
  • Desenvolvedores conscientes da privacidade. Algumas pessoas simplesmente não querem que a telemetria do seu workflow seja coletada, independentemente de quão anonimizada ela afirme ser.

Metodologia

Para cada aplicação:

  1. Instalação nova em um Mac (M2, macOS 15) sem histórico anterior.
  2. Configurada com um repositório local (o repo fonte do GitSquid, um clone sintético sem remote).
  3. Repositório aberto na aplicação, depois aplicação deixada em foco mas ociosa por 24 horas.
  4. Captura de tráfego de rede com mitmproxy em modo transparente, certificado confiável a nível de sistema.
  5. Contagem das requisições por domínio de destino. Excluídas as verificações de atualização automática (contadas separadamente).

O repositório não tinha remote configurado, então qualquer tráfego de saída durante a janela de 24 horas era telemetria, validação de licença ou a verificação de atualização automática. Distinguir os três é simples: a validação de licença atinge um único endpoint do servidor de licença uma vez; o auto-updater atinge uma URL conhecida de manifesto de release uma ou duas vezes; todo o resto é telemetria.

Resultados

Ferramenta Requisições telemetria / 24h Verificações de atualização Validação de licença Total de saída
GitSquid011 (somente Pro) / 0 (Free)1-2 no lançamento, depois 0
Fork02 (poll de manifesto)02
SourceTree~8021 (login Atlassian)~83
GitKraken~1402~24 (heartbeat de hora em hora)~166

Duas das quatro aplicações enviam essencialmente nada. Duas enviam dezenas a centenas de requisições por dia, mesmo sem interação do usuário.

Para onde vão as requisições

GitKraken

Destinos observados durante a janela de 24 horas:

  • api.gitkraken.com — heartbeat de licença, refresh de sessão de conta e verificações de feature flag.
  • analytics.gitkraken.com — analytics de uso. Cada navegação, abertura de painel e operação Git gera um evento.
  • sentry.io — relatórios de erro (também dispara em warnings, não só em crashes).
  • statsig.com — avaliação de feature flags e testes A/B.
  • logrocket.com em algumas sessões — replay de sessão, quando habilitado.

SourceTree

  • id.atlassian.com — refresh de sessão de conta, chamado periodicamente.
  • sourcetree.atlassian.com — analytics de uso de funcionalidades.
  • sentry.io — relatórios de erro.
  • analytics.atlassian.com — analytics Atlassian inter-produto.

Fork

  • git-fork.com/sparkle — manifesto de atualização automática. Duas verificações na janela de 24h. Nenhum endpoint de telemetria contatado.

GitSquid

  • github.com/TheMax98000/gitsquid-releases — manifesto de atualização automática (`latest.json`). Uma busca no lançamento. A partir da v2.7, esta verificação é obrigatória e não pode ser desabilitada pelo usuário (um toggle nas configurações está no roadmap).
  • gitsquid.dev/api/validate-license — validação de licença. Uma requisição no lançamento somente para usuários Pro (usuários Free não atingem este endpoint). O corpo da requisição contém apenas a chave de licença como parâmetro de query — sem ID de máquina, sem dados de uso, sem telemetria. Se a API estiver inacessível, a aplicação recorre a um resultado recente em cache, depois à verificação de checksum local da chave. Então uma licença Pro continua funcionando offline, mas a verificação online é o caminho padrão quando há rede disponível.
  • Nenhum endpoint de telemetria contatado em qualquer momento. Nenhum analytics, nenhum rastreamento de eventos, nenhum serviço de relatório de crash, nenhum serviço de feature flag.

Como os dados são

O número de requisições é uma coisa. O conteúdo de cada requisição é outra. Amostramos alguns POSTs de analytics do GitKraken:

  • Caminho do repositório (caminho local completo, hasheado mas reversível se você tiver o salt).
  • Nome da branch atualmente em check-out.
  • Número de commits no repositório.
  • Quais operações Git foram realizadas e com que frequência.
  • Quais painéis de UI foram abertos.
  • Sistema operacional, versão da aplicação, resolução de tela.

Nada disso é malicioso, e a política de privacidade do GitKraken o divulga. Mas para um usuário sob NDA, "o nome da branch atualmente em check-out" pode vazar `feature/customer-acme-bug-fix` para um servidor de terceiros, que é exatamente o que NDAs tipicamente proíbem.

Os payloads do SourceTree são menores e mais anonimizados, mas ainda incluem fingerprint do repositório e eventos de uso de funcionalidades.

Pode-se desativar?

Ferramenta Opt-out disponível?
GitKrakenParcial — você pode desabilitar algumas analytics mas não todas (o heartbeat de licença é obrigatório).
SourceTreeParcial — opt-out de analytics existe, refresh de sessão de conta é obrigatório.
ForkN/A — sem telemetria para desativar. Atualização automática pode ser desabilitada.
GitSquidN/A — sem telemetria para desativar. A verificação de atualização automática e a validação de licença ocorrem ambas uma vez no lançamento e atualmente não podem ser desabilitadas pelas configurações. Um toggle para ambas está no roadmap.

Para GitKraken e SourceTree, "telemetria desligada" não é o mesmo que "sem tráfego de saída". O refresh de licença / sessão de conta continua independentemente.

Para revisões de TI

Muitos departamentos de TI corporativos revisam ferramentas desktop antes de aprová-las. As perguntas que fazem:

  • Requer uma conta? — Não para GitSquid e Fork. Sim para GitKraken e SourceTree.
  • Liga para casa? — Para GitSquid: sim, mas apenas no lançamento (1 verificação de atualização + 1 validação de licença para Pro). Sem analytics, sem tráfego recorrente em segundo plano. Para Fork: apenas o manifesto de atualização automática. Para GitKraken e SourceTree: sim, recorrente durante toda a sessão.
  • A validação de licença é capaz offline? — Para GitSquid: tenta online primeiro (somente Pro), recorre a um resultado recente em cache e depois ao checksum local se ambos falharem. Uma chave Pro continua funcionando sem internet; a verificação online é o padrão quando há rede disponível. Para Fork: licença única, sem necessidade de validação. Para GitKraken: online obrigatório.
  • Vaza nomes de repositórios / branches? — Não para GitSquid e Fork. Sim para GitKraken (em payloads de analytics), parcial para SourceTree.

Para um ambiente air-gapped, a verificação de atualização automática e a validação de licença do GitSquid simplesmente falharão silenciosamente e recorrerão ao caminho em cache / offline. A aplicação continua funcionando, mas a TI pode querer saber dessas duas requisições de saída no lançamento. Um futuro toggle nas configurações para pular ambas vai simplificar implantações em ambientes estritos.

Para um ambiente estritamente regulado, GitSquid e Fork são os mais fáceis de aprovar — o único tráfego de saída é limitado (apenas no lançamento, para o GitSquid) ou apenas para atualização (Fork). GitKraken e SourceTree geralmente não passam sem acordos de processamento de dados negociados.

Reproduzindo isto

Os números acima foram medidos com mitmproxy em modo proxy transparente. Para reproduzir na sua própria máquina:

  1. Instalar mitmproxy: brew install mitmproxy no Mac, equivalente do gerenciador de pacotes no Linux.
  2. Configurar seu sistema para rotear HTTPS através de `localhost:8080`.
  3. Confiar no CA do mitmproxy a nível de sistema.
  4. Lançar seu cliente Git, abrir um repositório local, deixar em foco.
  5. Observar o log de requisições ao vivo na UI do mitmproxy.

Você verá o contador de requisições subir em tempo real para os clientes com muita telemetria, e permanecer plano para os outros.

A opinião honesta

Telemetria não é má por si só. Fornecedores de software a usam para corrigir bugs, priorizar funcionalidades e entender quem são seus usuários. A política de privacidade do GitKraken é transparente sobre o que é coletado, e os dados realmente os ajudam a construir um produto melhor.

A escolha é se você quer esse trade-off. Para ferramentas de consumo (navegadores, players de música), a maioria das pessoas aceita. Para ferramentas de desenvolvedor rodando sobre código potencialmente sensível, mais desenvolvedores dizem não — especialmente à medida que as alternativas sem telemetria se tornam tão capazes quanto as rastreadas.

Se "saída mínima, sem analytics, sem rastreadores de terceiros" está na sua lista de requisitos, baixe o GitSquid. O lançamento dispara 1-2 requisições (verificação de atualização + validação de licença para Pro), depois nada pelo resto da sessão. A mesma restrição se aplica aproximadamente ao Fork (US$ 59 vitalício, sem Linux). Ambos passam na revisão de TI onde GitKraken e SourceTree geralmente não passam.