GitHub може тимчасово вимагати авторизацію для клонування публічних репозиторіїв

За аномального трафіку GitHub може тимчасово вимагати авторизацію для окремих операцій git clone і git fetch через HTTPS. Розробникам варто перевірити автоматичні збірки, які отримують код без авторизації.

· 3 хв читання · 4 коментарі

GitHub може тимчасово вимагати авторизацію для окремих операцій із публічними репозиторіями через HTTPS за аномального трафіку. Про це 20 жовтня 2026 року пише Хабр із посиланням на повідомлення сервісу. Захід стосується частини запитів git clone і git fetch: якщо Git видасть помилку про необхідність авторизації, можна увійти й повторити команду або дочекатися скасування обмеження та спробувати знову без авторизації.

Коли запит на клонування може не пройти

Обмеження має допомагати зберігати доступність github.com за підвищеної підозрілої активності. GitHub застосовуватиме його вибірково, за ознаками аномального трафіку. Водночас сервіс не запроваджує обов’язкову авторизацію для всіх публічних репозиторіїв.

Помилка може з’явитися й у звичайного користувача. Ознаки, на які орієнтується захист, іноді збігаються в підозрілих і легітимних запитів. Тому, якщо відкритий репозиторій раптом перестав клонуватися без авторизації, причиною може бути не зміна доступу до самого репозиторію, а обмеження конкретної операції.

GitHub не вказує, скільки діятимуть обмеження: це залежить від ситуації з трафіком. Для процесів, які автоматично отримують код, така невизначеність важлива. Неможливо заздалегідь розрахувати, коли повторна спроба без авторизації буде успішною.

Які операції залишаються без змін

Захист стосується частини операцій отримання даних із публічних репозиторіїв через HTTPS без авторизації. Операцій Git через HTTPS з авторизацією він не зачіпає. Доступ до репозиторіїв через SSH і надсилання змін за допомогою git push також залишаються без змін.

Інші звернення до вебінтерфейсу GitHub та API, не пов’язані з цим захистом, під нього не підпадають. Тому перевіряти варто конкретний спосіб доступу: те, що репозиторій відкривається в браузері, саме по собі не означає, що анонімний git clone спрацює в автоматизованому процесі.

Захід поширюється на репозиторії github.com на всіх тарифних планах. Для команди має значення не план, а те, як саме її сценарій отримує зміни. Один процес може використовувати HTTPS з авторизацією, а інший — звертатися до відкритого репозиторію без неї. Повідомлення GitHub стосується другого випадку, якщо його запит підпаде під захист.

Що перевірити в збірках і робочих сценаріях

Розробникам і командам, які підтримують сайти, насамперед варто знайти автоматизовані кроки, що регулярно виконують git clone або git fetch через HTTPS без авторизації. Якщо такий крок є частиною збірки, помилка Git може зупинити процес, хоча в самому проєкті нічого не змінювали. Перевірити цю залежність корисніше, ніж намагатися заздалегідь вгадати, які запити сервіс вважатиме аномальними.

GitHub рекомендує налаштувати авторизацію для автоматизації, яка регулярно клонує репозиторії або отримує зміни. У GitHub Actions для цього можна використовувати вбудований GITHUB_TOKEN. Для інших CI-систем кращий варіант — токен доступу встановленого застосунку GitHub App; ще один зазначений варіант — персональний токен доступу, PAT.

Якщо налаштувати авторизацію неможливо, можна дочекатися скасування захисту й повторити операцію. Для команди, яку виконують вручну, це зрозумілий вихід. В автоматизованому сценарії, який має працювати без участі людини, чекати менш зручно: збірка залишиться незавершеною до нової спроби. Тому має сенс з’ясувати, де використовується анонімний доступ через HTTPS і наскільки цей крок важливий для випуску змін.

Власнику сайту чи маркетологу не обов’язково розбиратися в командах Git. Запитання до команди простіше: чи залежить публікація змін від автоматичного завантаження публічного репозиторію з GitHub і чи авторизований цей процес? Якщо такої залежності немає, з повідомлення сервісу не випливає, що звичний порядок випуску сайту потрібно змінювати.

Моя думка: спочатку перевірити залежність, потім змінювати схему

Я б не став через це перебудовувати всю збірку. Спочатку хочеться побачити конкретний крок, який регулярно звертається до публічного репозиторію через HTTPS без авторизації. Якщо він є, налаштування доступу виглядає обґрунтованим: GitHub допускає, що обмеження зачепить і звичайні запити.

Підступ, на мою думку, у двох крайнощах. Можна назвати помилку рідкісним винятком і не перевірити залежність збірки. А можна про всяк випадок ускладнити робочу схему, навіть не з’ясувавши, як вона отримує код. Я б почав зі способу доступу й лише після цього обирав відповідний варіант авторизації.

Джерела

Звідки новина. Текст — переказ своїми словами, факти — з джерела, думка — автора.

  1. GitHub может временно требовать авторизацию для клонирования публичных репозиториев по HTTPS habr.com

Про автора

Лев Федоров

Початківець backend-розробник

Вивчаю Python і роблю невеликі API для навчальних проєктів. Поки не розумію, де закінчується нормальна архітектура й починається ускладнення заради красивої схеми.

Усі публікації автора

Інструменти 4 хв читання

GitHub із 2 грудня обмежить pull_request_target у публічних репозиторіях

Із 2 грудня GitHub за замовчуванням блокуватиме запуск pull_request_target у публічних репозиторіях. Командам варто заздалегідь перевірити робочі процеси Actions і налаштування політик.

Бекенд 4 хв читання

У публічних репозиторіях GitHub знайшли 543 тисячі чинних секретів

Truffle Security дослідила 224 млн публічних репозиторіїв GitHub і знайшла 543 тисячі чинних секретів. Багато з них залишалися відкритими роками, а частину не виявляє вбудоване блокування витоків.

Бекенд 4 хв читання

GhostAction: зламано близько 1 900 облікових записів GitHub, постраждали понад 30 000 репозиторіїв

Кампанія GhostAction зачепила близько 1 900 облікових записів GitHub і понад 30 000 репозиторіїв. Зловмисники намагалися викрасти секрети CI/CD, хмарні ключі та API-ключі ШІ-сервісів.

Написати коментар

Не публікується. Надішлемо посилання, щоб підтвердити коментар.

Без посилань і реклами. Перший коментар публікується після перевірки. Надсилаючи коментар, ви погоджуєтеся з політикою конфіденційності.

  1. Не певен, що для автоматичних збірок правильна перша реакція — додати авторизацію: якщо GitHub обмежує лише окремі HTTPS-запити за ознаками аномального трафіку, токен може просто замаскувати проблему з повторними запитами чи кешуванням. Я б спершу перевірив, який саме крок пайплайна робить clone або fetch і як він поводиться після такої помилки; у простій збірці це часто легше виправити, ніж одразу роздавати токени.

    1. @jonas_klein, перевірити повторні запити й кешування варто, але якщо помилка прямо вимагає авторизації, виправлення лише ретраїв не гарантує, що збірка пройде. Для автоматичного clone або fetch я б спершу забезпечила контрольований спосіб авторизації, а вже потім перевіряла поведінку пайплайна й обмежувала повтори.

      1. @nigar.design, але токен на першому кроці може приховати причину збою й додати зайвий секрет у пайплайн. Якщо обмеження вибіркове, я б спершу з’ясував, який саме clone/fetch його зачіпає; авторизацію додавати вже тоді, коли без неї справді не обійтися 🙂

        1. @otto_ilves, розслідувати конкретний clone/fetch справді важливо, але це не обов’язково відкладати авторизацію до завершення перевірки. Якщо збірка має працювати під час тимчасового обмеження, контрольований токен із мінімальними правами може бути страховкою, а причину зайвих запитів паралельно варто виправити — так ми не маскуємо проблему, а розділяємо надійність і діагностику.