2 октября 2026 г.
Не клонируется репозиторий: Authentication failed и Repository not found
Деплой падает на первом же шаге: fatal: Authentication failed, remote: Invalid username or token или remote: Repository not found. До кода бота дело не дошло: сервер не смог скачать репозиторий с GitHub.
Что значат эти ошибки
Invalid username or token. Password authentication is not supported— GitHub получил токен, но не принял его. Токен неверный, истёк, отозван или скопирован не полностью. Пароль от аккаунта вместо токена тоже даёт эту ошибку: GitHub давно не принимает пароли для git.Repository not found— по этой ссылке репозитория нет. Либо в ссылке опечатка, либо репозиторий приватный, а у токена нет к нему доступа. Для чужих глаз GitHub специально не различает эти два случая.Remote branch … not found— репозиторий есть, но ветки с таким именем нет.
Причины по убыванию вероятности
- Ссылка не на ваш репозиторий. Звучит странно, но это самое частое: в поле осталась ссылка-пример вроде
https://github.com/owner/repo. Мы видели, как её деплоили восемь раз подряд, каждый раз с новым токеном. Токен тут ни при чём, такого репозитория не существует. - Репозиторий приватный, а токен не указан или выдан без доступа к этому репозиторию.
- Токен скопирован не целиком, с пробелом в конце или уже истёк (у fine-grained токенов есть срок действия).
- Ветка называется иначе:
masterвместоmainв старых репозиториях.
Как исправить
- Откройте свой репозиторий на GitHub и скопируйте адрес прямо из адресной строки браузера. Он должен выглядеть как
https://github.com/ваш-логин/имя-репозитория, с вашим логином, а неowner. - Посмотрите на значок рядом с названием репозитория. Public — токен не нужен вообще, поле оставьте пустым. Private — нужен токен.
- Для приватного репозитория создайте fine-grained токен на github.com/settings/personal-access-tokens/new:
- Repository access → Only select repositories → выберите репозиторий бота;
- Repository permissions → Contents: Read-only. Больше ничего не нужно;
- скопируйте токен сразу (он начинается с
github_pat_), GitHub покажет его только один раз.
- Проверьте ветку: на странице репозитория слева вверху выпадающий список с именем ветки. Впишите его в поле «Ветка».
- Хотите проверить токен до деплоя? Запустите у себя:
git clone https://<ТОКЕН>@github.com/ваш-логин/репо.git /tmp/check
Склонировалось — значит, и на сервере склонируется.
Или без всего этого
Самый простой путь — публичный репозиторий без секретов в коде: токен бота передаётся отдельно, через переменные окружения, а не лежит в файле. Тогда никакой токен GitHub не нужен. Если код закрытый, в botdepo достаточно один раз вставить fine-grained токен с правом только на чтение этого репозитория: он хранится зашифрованным и нигде не показывается. Задеплоить бота.
Частые вопросы
Можно ли дать классический токен (ghp_…)?
Будет работать, но он даёт доступ ко всем вашим репозиториям сразу. Fine-grained с одним репозиторием и правом только на чтение безопаснее: если он утечёт, утечёт только код бота.
Токен работал, а сейчас нет — что случилось?
Скорее всего, истёк срок действия: при создании GitHub по умолчанию ставит 30 дней. Создайте новый и обновите его в настройках бота.