← Вернуться в блог

Сравнение телеметрии Git GUI: кто следит за вами в 2026

comparison privacy

Сравнение телеметрии Git GUI: кто отслеживает вас в 2026 году

Большинство настольных приложений собирают данные об использовании. Git GUI не исключение. В этой статье сравнивается поведение телеметрии четырёх популярных Git-клиентов — GitKraken, Fork, SourceTree и GitSquid — на основе наблюдаемого сетевого трафика. Цифры получены из 24-часовой сессии захвата пакетов на каждом приложении, с одним и тем же открытым репозиторием и минимальным взаимодействием пользователя.

Раскрытие: эта статья опубликована на сайте GitSquid. Методология описана подробно, чтобы вы могли воспроизвести цифры самостоятельно.

Почему это важно

«Телеметрия» — мягкое слово для «ваше приложение отправляет данные своему производителю без вашего активного запроса». Часто данные действительно безвредны: анонимный счётчик использования, отчёт о сбое, проверка feature flag. Иногда это больше: на какие кнопки вы кликаете, какие репозитории у вас открыты, какие функции вы попробовали.

Для большинства пользователей это не проблема. Для трёх категорий пользователей это жёсткое ограничение:

  • Регулируемые отрасли. Здравоохранение, финансы, оборона, государственный сектор. Процессы IT-проверки регулярно блокируют любой инструмент, который «звонит домой» с идентифицируемыми данными.
  • Работа под NDA / проприетарная. Если имена ваших репозиториев или веток содержат информацию о клиентах или продуктах, утечка их через телеметрию — реальная проблема.
  • Разработчики, заботящиеся о приватности. Некоторые люди просто не хотят, чтобы телеметрия их рабочего процесса собиралась, независимо от того, насколько анонимизированной она объявляется.

Методология

Для каждого приложения:

  1. Свежая установка на Mac (M2, macOS 15) без предыдущей истории.
  2. Настроен с одним локальным репозиторием (исходный репозиторий GitSquid, синтетический клон без удалённого).
  3. Открытие репозитория в приложении, затем приложение оставлено в фокусе, но в простое в течение 24 часов.
  4. Захват сетевого трафика с помощью mitmproxy в прозрачном режиме, сертификат доверен на системном уровне.
  5. Подсчёт запросов по домену назначения. Исключены проверки автообновления (считаются отдельно).

У репозитория не было настроенного удалённого, поэтому любой исходящий трафик в течение 24-часового окна был либо телеметрией, либо проверкой лицензии, либо проверкой автообновления. Различить три просто: проверка лицензии один раз обращается к одному endpoint лицензионного сервера; автообновление обращается к известному URL манифеста релиза один или два раза; всё остальное — телеметрия.

Результаты

Инструмент Запросов телеметрии / 24ч Проверки автообновления Проверка лицензии Всего исходящих
GitSquid011 (только Pro) / 0 (Free)1-2 при запуске, затем 0
Fork02 (опрос манифеста)02
SourceTree~8021 (вход Atlassian)~83
GitKraken~1402~24 (ежечасный heartbeat)~166

Два из четырёх приложений по сути ничего не отправляют. Два отправляют десятки и сотни запросов в день, даже без взаимодействия пользователя.

Куда уходят запросы

GitKraken

Наблюдаемые назначения в течение 24-часового окна:

  • api.gitkraken.com — heartbeat лицензии, обновление сессии аккаунта и проверки feature flag.
  • analytics.gitkraken.com — аналитика использования. Каждая навигация, открытие панели и Git-операция генерирует событие.
  • sentry.io — отчёты об ошибках (срабатывает также на предупреждения, не только на сбои).
  • statsig.com — оценка feature flag и A/B-тестов.
  • logrocket.com в некоторых сессиях — запись сессии, когда включено.

SourceTree

  • id.atlassian.com — обновление сессии аккаунта, вызывается периодически.
  • sourcetree.atlassian.com — аналитика использования функций.
  • sentry.io — отчёты об ошибках.
  • analytics.atlassian.com — межпродуктовая аналитика Atlassian.

Fork

  • git-fork.com/sparkle — манифест автообновления. Две проверки в окне 24ч. Никаких endpoint телеметрии не задействовано.

GitSquid

  • github.com/TheMax98000/gitsquid-releases — манифест автообновления (`latest.json`). Один запрос при запуске. По состоянию на v2.7 эта проверка обязательна и не отключается пользователем (переключатель в настройках в дорожной карте).
  • gitsquid.dev/api/validate-license — проверка лицензии. Один запрос при запуске только для пользователей Pro (пользователи Free на этот endpoint не обращаются). Тело запроса содержит только лицензионный ключ как query-параметр — никакого machine ID, никаких данных об использовании, никакой телеметрии. Если API недоступен, приложение откатывается на недавно кэшированный результат, затем на локальную проверку контрольной суммы ключа. Таким образом, лицензия Pro продолжает работать офлайн, но онлайн-проверка — путь по умолчанию, когда сеть доступна.
  • Никакие endpoint телеметрии не задействованы ни в один момент. Никакой аналитики, никакого отслеживания событий, никакого сервиса отчётов о сбоях, никакого сервиса feature flag.

Как выглядят данные

Количество запросов — это одно. Содержимое каждого запроса — другое. Мы выборочно изучили несколько POST-запросов аналитики GitKraken:

  • Путь репозитория (полный локальный путь, хешированный, но обратимый, если у вас есть соль).
  • Имя текущей checked-out ветки.
  • Количество коммитов в репозитории.
  • Какие Git-операции выполнялись и как часто.
  • Какие UI-панели были открыты.
  • Операционная система, версия приложения, разрешение экрана.

Ничего из этого не вредоносно, и политика конфиденциальности GitKraken это раскрывает. Но для пользователя под NDA «имя текущей checked-out ветки» может утечь `feature/customer-acme-bug-fix` на сторонний сервер, что и является именно тем, что NDA обычно запрещают.

Полезные нагрузки SourceTree меньше и более анонимизированы, но всё равно включают отпечаток репозитория и события использования функций.

Можно ли отключить?

Инструмент Доступен ли opt-out?
GitKrakenЧастично — можно отключить часть аналитики, но не всю (heartbeat лицензии обязателен).
SourceTreeЧастично — opt-out аналитики существует, обновление сессии аккаунта обязательно.
ForkН/Д — нет телеметрии, от которой нужно отписываться. Автообновление можно отключить.
GitSquidН/Д — нет телеметрии, от которой нужно отписываться. Проверка автообновления и проверка лицензии происходят один раз при запуске и в настоящее время не могут быть отключены из настроек. Переключатель для обеих в дорожной карте.

Для GitKraken и SourceTree «телеметрия выключена» не то же самое, что «нет исходящего трафика». Обновление лицензии / сессии аккаунта продолжается независимо.

Для IT-проверок

Многие корпоративные IT-отделы проверяют настольные инструменты перед их одобрением. Вопросы, которые они задают:

  • Требуется ли учётная запись? — Нет для GitSquid и Fork. Да для GitKraken и SourceTree.
  • Звонит ли он домой? — Для GitSquid: да, но только при запуске (1 проверка обновления + 1 проверка лицензии для Pro). Никакой аналитики, никакого повторяющегося фонового трафика. Для Fork: только манифест автообновления. Для GitKraken и SourceTree: да, повторяющийся в течение всей сессии.
  • Поддерживает ли проверка лицензии офлайн-режим? — Для GitSquid: сначала пробует онлайн (только Pro), откатывается на недавно кэшированный результат, затем на локальную контрольную сумму, если оба не сработали. Ключ Pro продолжает работать без интернета; онлайн-проверка — путь по умолчанию, когда сеть доступна. Для Fork: одноразовая лицензия, проверка не нужна. Для GitKraken: требуется онлайн.
  • Утекают ли имена репозиториев / веток? — Нет для GitSquid и Fork. Да для GitKraken (в полезных нагрузках аналитики), частично для SourceTree.

Для air-gapped среды проверка автообновления и проверка лицензии GitSquid просто молча провалятся и откатятся на кэшированный / офлайн путь. Приложение продолжает работать, но IT может захотеть знать об этих двух исходящих запросах при запуске. Будущий переключатель в настройках для пропуска обеих упростит развёртывание в строгих средах.

Для строго регулируемой среды GitSquid и Fork проще всего одобрить — единственный исходящий трафик ограничен (только при запуске для GitSquid) или сводится к обновлениям (Fork). GitKraken и SourceTree обычно не проходят без согласованных соглашений об обработке данных.

Воспроизведение

Цифры выше были измерены с помощью mitmproxy в прозрачном прокси-режиме. Чтобы воспроизвести на собственной машине:

  1. Установить mitmproxy: brew install mitmproxy на Mac, эквивалент менеджера пакетов на Linux.
  2. Настроить систему для маршрутизации HTTPS через `localhost:8080`.
  3. Доверять CA mitmproxy на системном уровне.
  4. Запустить ваш Git-клиент, открыть локальный репозиторий, оставить в фокусе.
  5. Наблюдать за живым логом запросов в UI mitmproxy.

Вы увидите, как счётчик запросов растёт в реальном времени для клиентов с большим количеством телеметрии и остаётся плоским для остальных.

Честное мнение

Телеметрия сама по себе не зло. Производители ПО используют её для исправления багов, приоритизации функций и понимания того, кто их пользователи. Политика конфиденциальности GitKraken прозрачна в отношении того, что собирается, и данные действительно помогают им создавать лучший продукт.

Выбор — хотите ли вы такого компромисса. Для потребительских инструментов (браузеры, музыкальные плееры) большинство людей принимают его. Для инструментов разработки, работающих над потенциально чувствительным кодом, всё больше разработчиков говорят «нет» — особенно по мере того, как альтернативы без телеметрии становятся столь же мощными, как и отслеживаемые.

Если «минимальный исходящий трафик, никакой аналитики, никаких сторонних трекеров» есть в вашем списке требований, скачайте GitSquid. Запуск порождает 1-2 запроса (проверка обновления + проверка лицензии для Pro), затем ничего до конца сессии. Примерно то же ограничение применимо к Fork (одноразово 59 $, без Linux). Оба проходят IT-проверку там, где GitKraken и SourceTree обычно её не проходят.