Перейти до вмісту
> 💻 🧠 Код 1001 > 🛠️ DevOps >

GitHub Personal Access Token (PAT), або “особистий токен доступу”, — сучасний метод безпечної автентифікації на платформі GitHub.

З серпня 2021 року GitHub більше не підтримує використання паролів для операцій Git через HTTPS. Це означає, що будь-яка дія, яка раніше вимагала пароль, тепер потребує токен. PAT дозволяє:

  • безпечно отримувати доступ до репозиторіїв;
  • працювати з GitHub API;
  • автоматизувати процеси у скриптах, CI/CD та інших інструментах без ризику компрометації облікового запису.

Коротко: PAT — це «ключ», який дає обмежений доступ, легко відкликається і має термін дії.


Навіщо використовувати PAT

Головна мета PAT — забезпечити безпеку роботи з GitHub, зберігаючи зручність.

Основні функції:

  1. Безпека
    Пароль надає повний доступ до облікового запису. У разі витоку все під загрозою. Токен можна обмежити за правами та терміном дії.
  2. Автоматизація
    Скрипти, CI/CD, боти та інші інструменти можуть використовувати PAT замість ручного введення імені користувача та пароля.
  3. Контроль доступу
    Можна створювати кілька токенів з різними правами для різних завдань. Якщо один токен витік, його можна відкликати, не зачіпаючи інші.

Типи токенів

GitHub пропонує два типи токенів:

  1. Classic (класичний)
    • Доступ визначається через scopes (наприклад, repo, workflow).
    • Надає права на всі репозиторії користувача.
    • Простий у використанні, але менш гнучкий.
  2. Fine-grained (детальний)
    • Дозволяє обмежити доступ до конкретних репозиторіїв.
    • Можна призначати точні права, наприклад “тільки читання issues”.
    • Організації можуть вимагати затвердження таких токенів.

💡 Порада: використовуйте fine-grained токени там, де важлива безпека та обмеження доступу; classic — для сумісності зі старими інструментами.


Як створити PAT

Крок 1. Перейти до налаштувань

  1. Відкрийте GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic).

Крок 2. Створити новий токен

  1. Натисніть Generate new token (classic).
  2. Вкажіть ім’я токена (Note), наприклад CI-token або Git-PC.
  3. Встановіть термін дії — рекомендується 90 днів або 1 рік.
  4. Оберіть потрібні права (Scopes) — мінімум для Git: repo, для Actions: workflow.
  5. Згенеруйте токен і збережіть його одразу — він відображатиметься лише один раз.

Використання 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 та спрощує керування ключами.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *