From 743a94afec894a5c14a5a5bf1d2c2216c8070acb Mon Sep 17 00:00:00 2001 From: PTah Date: Sat, 11 Apr 2026 19:12:49 +1000 Subject: [PATCH] README: expand PAT creation steps (GitHub UI) in-repo --- README.md | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7cc5cf8..a460b46 100644 --- a/README.md +++ b/README.md @@ -72,23 +72,62 @@ git pull origin main #### Способ 2: HTTPS + Personal Access Token (PAT) -GitHub **не принимает** обычный пароль аккаунта для Git по HTTPS; нужен **токен**: **Settings → Developer settings → Personal access tokens**. +GitHub **не принимает** обычный пароль от аккаунта для операций `git clone` / `git pull` / `git push` по **HTTPS**. Вместо пароля нужно создать **Personal Access Token (PAT)** и вводить его там, где Git спрашивает пароль. -После создания токена при `git pull` в качестве пароля вставляйте **токен** (логин — ваш логин GitHub). +##### Создание классического токена (Tokens classic) — проще всего для Git -Чтобы **не вводить токен каждый раз**, можно один раз сохранить учётные данные (токен хранится **в открытом виде** в `~/.git-credentials` — только на доверенных машинах): +1. Войдите на **github.com** под нужным аккаунтом. +2. В правом верхнем углу откройте меню **аватара** → **Settings** (Настройки). +3. В **левой колонке** прокрутите вниз до раздела **Developer settings** (Параметры разработчика) и откройте его. +4. Выберите **Personal access tokens** → **Tokens (classic)**. +5. Нажмите **Generate new token** → **Generate new token (classic)**. +6. Заполните поля: + - **Note** — произвольное имя (например `ubuntu-haproxy-pull`), чтобы потом понимать, зачем токен. + - **Expiration** — срок действия (чем короче, тем безопаснее; для сервера часто выбирают ограниченный срок и потом перевыпускают). + - **Select scopes** — для **приватного** репозитория и `pull`/`push` включите минимум **`repo`** (полный доступ к репозиториям). Если нужен только **чтение** приватного репо, в классических токенах по-прежнему часто отмечают **`repo`**, т.к. узкого «только read» в classic нет; для **только pull** удобнее **fine-grained** (ниже). +7. Нажмите **Generate token** внизу страницы. +8. **Сразу скопируйте** строку токена (начинается часто с `ghp_…`). GitHub покажет её **один раз**; после ухода со страницы повторно не отобразит. + +##### Fine-grained token (по желанию, гибче по правам) + +1. Те же **Settings** → **Developer settings** → **Personal access tokens** → **Fine-grained tokens**. +2. **Generate new token**. +3. Укажите **имя**, **срок**, в блоке **Repository access** выберите «только выбранный репозиторий» **reverse-proxy** (или «все» — по политике безопасности). +4. В **Permissions** для чтения/обновления кода задайте **Contents**: Read-only или Read and write, при необходимости **Metadata**: Read. +5. Создайте токен и **скопируйте** его (формат обычно `github_pat_…`). + +##### Использование PAT в Git на Ubuntu + +- **Username** (логин): ваш **логин GitHub** (короткое имя пользователя), не e-mail, если Git явно просит username. +- **Password**: вставьте **целиком PAT** (не пароль от сайта). + +Пример первого клонирования по HTTPS: + +```bash +git clone https://github.com/PTah/reverse-proxy.git +# при запросе: Username = ваш_логин_github +# Password = вставить PAT +``` + +##### Чтобы не вводить PAT каждый раз + +Токен хранится **в открытом виде** в `~/.git-credentials` — используйте только на **доверенных** машинах: ```bash git config --global credential.helper store -# затем один раз выполнить git pull и ввести логин + PAT — дальше подставятся из файла +cd ~/reverse-proxy +git pull origin main +# один раз ввести Username + PAT — дальше подставятся из файла ``` -Более безопасный вариант — кеш на время сессии (в секундах): +Кеш в памяти на заданное время (секунды), без постоянной записи в файл: ```bash git config --global credential.helper 'cache --timeout=28800' ``` +После истечения срока кеша или срока действия токена на GitHub снова создайте новый PAT и при необходимости обновите сохранённые учётные данные (удалите строчку с `github.com` из `~/.git-credentials` или снова выполните `git pull` и введите новый токен). + #### Способ 3: только чтение, репозиторий публичный Для **публичного** репозитория `git clone` и `git pull` по HTTPS **учётные данные не нужны** — отдельная настройка не требуется.