Анатомия блокировки: почему «Login with GitHub» - это главная архитектурная ошибка в вашей жизни
Две недели назад я была обычным разработчиком. У меня были рабочие сервисы, публичное портфолио, принятый PR в open-source и удобный вход «через GitHub» на двух десятках сайтов.
Сегодня меня не существует.
Экран ноутбука встречает тёмной надписью:
Your account has been suspended. TOS violation!
Ни ссылок на пункты. Ни «вы сделали X, а это нарушает Y». Ни срока блокировки. Ни имени, кому написать. Просто сухая формулировка, от которой разит автоматической системой. Живого человека на той стороне не было - алгоритм чихнул, и меня не стало.
GitHub просто щёлкнул выключателем. И даже не посмотрел, что погасло.
Я делала всё «по науке»: контрибьютила в open-source (мой PR есть в cocogitto), заводила сервисы, верила в платформу. Но для алгоритма GitHub я не инженер. Я просто строка с is_active: false.
---
Акт 1. Анатомия веерного отключения: 7 проектов и 10+ сервисов за 1 секунду
1. GitHub Pages
Вот что лежало на GitHub Pages и умерло в один момент:
- CSS Matrix3D Perspective Calculator - утилита для расчёта CSS `matrix3d()` искажения. Дизайнеры и фронтендеры пользовались ей каждый день.
- Twitch Panels Creator - генератор панелей для Twitch-канала. Svelte 5, Konva.js, тёмная/светлая тема, экспорт в PNG/ZIP.
- Shooting Word - интерактивная игра для Twitch-чата. Волны, боссы, таблица лидеров. OBS Browser Source.
- Now Playing Widget - OBS-виджет с текущим треком из AIMP/Foobar2000/MusicBee. Один HTML-файл.
- XBOCT Page - стартовая страница для браузера. Svelte 5, TypeScript, Chrome Extension.
- Idle Tower Defence - игра на Three.js + miniplex + Svelte (незаконченная).
- личный сайт в терминальном стиле с ASCII-артом.
И это не считая Gist'ов, POC'ов и концептов, которые нельзя было склонировать локально - они потеряны навсегда.
Все они висели на GitHub Pages. Один аккаунт - и все страницы легли.
2. is-a.dev
У меня был домен *.is-a.dev. Его механика завязана на GitHub: ты коммитишь JSON с DNS-записями в репозиторий, проходит проверка - домен резолвится. Аккаунт заморожен - я не могу сделать коммит.
И тут происходит сюрреализм.
GitHub, который игнорирует меня вторую неделю, присылает письмо: «We are unable to find a verification TXT record on your domain. Please verify your domain within 7 days»
Вы заперли меня снаружи, выбросили ключи, а теперь стучите в окно и угрожаете выселением за то, что я не убираюсь в квартире? Вы две недели не можете ответить на вопрос «за что заблокировали?», но я должна за 7 дней решить вашу проблему с DNS, к которой у меня нет доступа, потому что вы же меня и заблокировали?
Я не могу зайти в аккаунт. Я не могу сделать коммит. Я не могу даже «отметиться», чтобы домен не попал под чистку неактивных записей. is-a.dev периодически чистит старые домены - и я ничем не могу это предотвратить.
И это не просто «ой, домен не откроется». Это уязвимость. Мой домен сейчас указывает на несуществующую страницу - любой может сделать Subdomain Takeover и развернуть там свой контент. А я даже это не могу предотвратить.
3. GitHub OAuth - чёртова дыра
Я, как и тысячи разработчиков, привыкла жать "Login with GitHub" везде, где можно. Это же удобно, правда? Один клик - и ты внутри.
А теперь представьте: вы теряете доступ к почтовому ящику. Ко всем соцсетям сразу. Ко всем банковским уведомлениям.Вот что значит потерять GitHub OAuth, когда он - твой единый вход во всё:
- Netlify: Деплои, домены, настройки.
- Vercel - То же самое
- Railway - Продовые проекты, базы данных, окружения
- CircleCI, Travis CI CI\CD, который перестаёт быть вашим
- CodeSandbox - Песочницы с кодом
- Replit - Проекты
- Gitpod - Среды разработки
- Zeplo - API-ключи, вебхуки
- npms.io, bundlephobia - Мелочи, но и они требуют входа
- pollinations.ai - Генератор изображений - вход только через GitHub
Десятки сервисов. Годы кода, настроек, конфигураций, интеграций. Одна кнопка "Login with GitHub" - и, когда GitHub дёргает рубильник, все эти двери захлопываются одновременно.
И это не только прошлое - это будущее, которое ты не можешь начать. MVP моей новой игры делается за 4 часа, а я жду разморозки уже вторую неделю. У сервиса, который мне нужен, нет входа по почте - только GitHub. Четыре часа работы упёрлись в бан, к которому я не имею никакого отношения.
Акт 2. AI-powered support
Слоган GitHub - "The AI-powered developer platform".Теперь я понимаю, что значит AI-powered. Это когда за бан отвечает тупой скрипт, а за поддержку - автоответчик, посылающий тебя на форум, где ты не можешь написать, потому что забанена. Отличная экосистема, 10 из 10.
Я написала в саппорт. Подробно расписала ситуацию. Попросила объяснений.
Через пару минут прилетело автоматическое: "Thank you for contacting GitHub Support. ... We are experiencing high volumes… You can also post a question in the GitHub Community."
«Спроси в сообществе!» - но я не могу туда зайти. Мой аккаунт заморожен. Буквально: «мы не можем помочь, спроси у других пользователей», но чтобы спросить - нужен аккаунт, которого у меня нет.
Прошло две недели. Живого ответа - ноль.
Забанить - 5 минут. Разобраться - вечность. GitHub тратит секунды на то, чтобы уничтожить годы твоей работы, и недели - чтобы хотя бы ответить на вопрос «за что?».
Там просто нет человека. Поддержка GitHub - это ширма. За ней пустота. А все твои сервисы лежат уже сейчас.
Акт 3. Если 30 000 звёзд - не аргумент
Я не одна такая.В один день со мной под раздачу попал разработчик zapret-discord-youtube (Flowseal) - репозиторий с 30 000+ звёзд и тысячами форков. Алгоритм чихнул - и 30k звёзд не аргумент.
Если ваша антифрод-система за 5 минут стирает репозиторий с 30 000 звёзд и аккаунт мейнтейнера, которым пользуются сотни тысяч людей - ваша система не защищает платформу. Она профнепригодна. Вы создали алгоритм, у которого гранатомёт вместо скальпеля.
Крупные проекты с тысячами звёзд иногда удаётся вернуть - за счёт известности автор привлекает внимание, и тикет разгребают быстрее. У обычных разработчиков такого рычага нет.
И это доказывает главное: у GitHub нет понятной системы правосудия. Если за тобой нет армии подписчиков, популярного репозитория или вирусного треда - ты просто цифровая пыль в бесконечной очереди тикетов, которую никто не спешит обслуживать.
По интернету разбросаны десятки таких историй - люди теряют аккаунты после случайного пуша, после автоматического сканирования репозиториев, после ложного срабатывания антифрод-системы. GitHub не разбирается - GitHub банит.
Если твой аккаунт могут положить с тем же успехом, что и мой - о чём вообще говорить? Если 30k звёзд не аргумент - твои 5 не аргумент тем более.
Что делать, пока алгоритм не чихнул в твою сторону
Я не надеюсь, что GitHub прочитает эту статью и разморозит меня. Я надеюсь на другое.
GitHub OAuth - это не твоя система аутентификации. Это аренда.
У тебя нет контракта. Нет SLA. Нет гарантий, что завтра кнопка логина сработает. Есть только алгоритм, который без предупреждения ставит крест на годах твоей работы.
Один флаг в базе данных - и ты персональный изгой.
Что делать прямо сейчас
1.Экспортируй данные. Регулярно. Потому что в один день ты можешь просто не успеть.
2. Составь список сервисов, куда заходишь через GitHub. Напротив каждого напиши: «Что я буду делать, если завтра эта кнопка перестанет работать?» Если ответа нет - у тебя проблема.
3. Бойкотируй сервисы, которые предлагают ТОЛЬКО GitHub OAuth. Email + пароль или другой провайдер - это база. Если сервис на этом экономит - он экономит на тебе.
4. Привяжи резервный Email и 2FA-ключи прямо сейчас. Убедись, что на всех ключевых сервисах (Vercel, Netlify, Railway) у тебя включён альтернативный вход по почте или Google OAuth - пока доступ ещё есть.
Финально
GitHub заморозил мой аккаунт. Без предупреждения. Без объяснения. Без права на защиту.
Мои сервисы мертвы.
Мой домен не резолвится.
Мой цифровой паспорт больше никуда не открывает двери.
Потому что один флаг в чужой базе данных переключился с 0 на 1.
В следующий раз, когда нажмёшь "Login with GitHub", вспомни: ты не логинишься. Ты просишь разрешения войти в дом, ключи от которого держит кто-то другой. И в любой момент этот кто-то может просто не открыть.
Если меня разморозят, я продолжу пользоваться GitHub. Не потому что я ему доверяю, а потому что это монополия. Но отныне GitHub для меня - не «дом для кода», а ненадёжная инфраструктура.Каждый мой Gist будет дублироваться локально. Каждый issue - иметь бэкап. А кнопка «Login with GitHub» для меня умерла навсегда.
GitHub учит нас архитектуре на собственном примере: никогда не стройте систему с единой точкой отказа. Особенно если эта точка отсекает тебя по ошибке и молчит неделями.