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:
- Instalação nova em um Mac (M2, macOS 15) sem histórico anterior.
- Configurada com um repositório local (o repo fonte do GitSquid, um clone sintético sem remote).
- Repositório aberto na aplicação, depois aplicação deixada em foco mas ociosa por 24 horas.
- Captura de tráfego de rede com mitmproxy em modo transparente, certificado confiável a nível de sistema.
- 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 |
|---|---|---|---|---|
| GitSquid | 0 | 1 | 1 (somente Pro) / 0 (Free) | 1-2 no lançamento, depois 0 |
| Fork | 0 | 2 (poll de manifesto) | 0 | 2 |
| SourceTree | ~80 | 2 | 1 (login Atlassian) | ~83 |
| GitKraken | ~140 | 2 | ~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.comem 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? |
|---|---|
| GitKraken | Parcial — você pode desabilitar algumas analytics mas não todas (o heartbeat de licença é obrigatório). |
| SourceTree | Parcial — opt-out de analytics existe, refresh de sessão de conta é obrigatório. |
| Fork | N/A — sem telemetria para desativar. Atualização automática pode ser desabilitada. |
| GitSquid | N/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:
- Instalar mitmproxy:
brew install mitmproxyno Mac, equivalente do gerenciador de pacotes no Linux. - Configurar seu sistema para rotear HTTPS através de `localhost:8080`.
- Confiar no CA do mitmproxy a nível de sistema.
- Lançar seu cliente Git, abrir um repositório local, deixar em foco.
- 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.