GitHub Personal Access Token (PAT) — безпечна автентифікація на GitHub.
GitHub Personal Access Token (PAT), або “особистий токен доступу”, — сучасний метод безпечної автентифікації на платформі GitHub.
З серпня 2021 року GitHub більше не підтримує використання паролів для операцій Git через HTTPS. Це означає, що будь-яка дія, яка раніше вимагала пароль, тепер потребує токен. PAT дозволяє:
- безпечно отримувати доступ до репозиторіїв;
- працювати з GitHub API;
- автоматизувати процеси у скриптах, CI/CD та інших інструментах без ризику компрометації облікового запису.
Коротко: PAT — це «ключ», який дає обмежений доступ, легко відкликається і має термін дії.
Навіщо використовувати PAT
Головна мета PAT — забезпечити безпеку роботи з GitHub, зберігаючи зручність.
Основні функції:
- Безпека
Пароль надає повний доступ до облікового запису. У разі витоку все під загрозою. Токен можна обмежити за правами та терміном дії. - Автоматизація
Скрипти, CI/CD, боти та інші інструменти можуть використовувати PAT замість ручного введення імені користувача та пароля. - Контроль доступу
Можна створювати кілька токенів з різними правами для різних завдань. Якщо один токен витік, його можна відкликати, не зачіпаючи інші.
Типи токенів
GitHub пропонує два типи токенів:
- Classic (класичний)
- Доступ визначається через scopes (наприклад,
repo,workflow). - Надає права на всі репозиторії користувача.
- Простий у використанні, але менш гнучкий.
- Доступ визначається через scopes (наприклад,
- Fine-grained (детальний)
- Дозволяє обмежити доступ до конкретних репозиторіїв.
- Можна призначати точні права, наприклад “тільки читання issues”.
- Організації можуть вимагати затвердження таких токенів.
💡 Порада: використовуйте fine-grained токени там, де важлива безпека та обмеження доступу; classic — для сумісності зі старими інструментами.
Як створити PAT
Крок 1. Перейти до налаштувань
- Відкрийте GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic).
Крок 2. Створити новий токен
- Натисніть Generate new token (classic).
- Вкажіть ім’я токена (Note), наприклад
CI-tokenабоGit-PC. - Встановіть термін дії — рекомендується 90 днів або 1 рік.
- Оберіть потрібні права (Scopes) — мінімум для Git:
repo, для Actions:workflow. - Згенеруйте токен і збережіть його одразу — він відображатиметься лише один раз.
Використання PAT
1. Git через HTTPS
git clone https://github.com/username/repo.git
# Ім’я користувача: ваш GitHub username
# Пароль: згенерований токен
Щоб не вводити токен щоразу, його можна кешувати:
git config --global credential.helper manager # Windows/Mac
git config --global credential.helper 'cache --timeout=3600' # Linux
2. Робота з GitHub API
$token = Get-Secret -Name GitHubToken # безпечне отримання токена
$headers = @{ Authorization = "token $token" }
$repos = Invoke-RestMethod -Uri "https://api.github.com/user/repos" -Headers $headers
$repos | ForEach-Object { $_.name }
Створення issue:
$body = @{
title = "Нове тестове завдання"
body = "Опис завдання"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://api.github.com/repos/username/repo/issues" `
-Method Post `
-Headers $headers `
-Body $body
3. CI/CD та скрипти
$token = Get-Secret -Name GitHubToken
git config --global user.name "CI Bot"
git config --global user.email "ci@example.com"
git add .
git commit -m "Автоматичне оновлення"
git push "https://$token@github.com/username/repo.git" main
💡 Порада: використовуйте окремий токен з мінімальними правами для CI/CD.
4. IDE та локальна розробка
- У Visual Studio Code та інших IDE можна використовувати PAT замість пароля для роботи з приватними репозиторіями та pull requests.
- Для різних машин або IDE створюйте окремі токени, щоб обмежити наслідки можливого витоку.
5. Управління та безпека
- Зберігайте токени в менеджерах паролів або SecretStore.
- Створюйте окремі токени для різних завдань.
- Регулярно перевіряйте та видаляйте невикористовувані токени.
- Завжди встановлюйте термін дії (не використовуйте “No expiration”).
- Плануйте ротацію токенів для CI/CD та автоматизованих скриптів.
6. Альтернатива: GitHub CLI
gh auth login
CLI відкриє браузер, проведе аутентифікацію, створить та збереже токен локально. Це дозволяє уникнути ручного створення PAT та спрощує керування ключами.