💡 Что такое GitHub CLI и зачем он вам — это официальная утилита командной строки от GitHub, которая позволяет управлять репозиториями, пулл-реквестами, ишью, релизами и workflow’ами прямо из терминала. Всё, что вы делаете в браузере на GitHub, можно автоматизировать через gh.
Мы установим GitHub CLI из официального APT-репозитория GitHub — это даст самую свежую версию на любой версии Debian (13, 12 и 11). Альтернатива — устаревшие пакеты из репозиториев Debian (на Debian 11 их вообще нет).
⚠️ Важное предупреждение: GitHub CLI работает вместе с Git, а не заменяет его. Команды git clone, git push, git commit остаются. gh добавляет GitHub-специфичные действия (пулл-реквесты, ишью, релизы). Убедитесь, что Git установлен и настроен.
Предварительные требования
Прежде чем начать, убедитесь, что ваша система готова:
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает:
sudo— выполняет команду от имени суперпользователяwhoami— показывает имя текущего пользователя
Зачем: Проверяет, может ли ваш пользователь выполнять команды с правами root.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Дополнительные требования:
- Git — должен быть установлен и настроен (имя пользователя, email)
- Интернет-соединение — для скачивания пакета и авторизации
- Аккаунт на GitHub — для авторизации
Какой метод установки выбрать?
| Источник установки | Debian 13 | Debian 12 | Debian 11 | Когда использовать |
|---|---|---|---|---|
| Официальный репозиторий GitHub | Актуальная версия | Актуальная версия | Актуальная версия | Рекомендуется — всегда свежая версия от GitHub |
| Репозитории Debian | 2.46.x (устаревшая) | 2.23.x (сильно устаревшая) | Нет пакета | Только если вас устраивает старая версия |
💡 GitHub предупреждает: Некоторые старые сборки (2.45.x, 2.46.x) из репозиториев Debian используют устаревшее поведение GitHub API, которое может работать некорректно. Используйте официальный репозиторий.
Установка GitHub CLI из официального репозитория
Шаг 1: Обновление системы
sudo apt update
Что делает: Обновляет список доступных пакетов.
Зачем: Всегда обновляйте список пакетов перед добавлением нового репозитория.
Шаг 2: Установка зависимостей
sudo apt install -y curl ca-certificates gpg
Что делает:
curl— для скачивания ключаca-certificates— сертификаты для HTTPSgpg— для работы с GPG-ключами
Зачем: Эти пакеты нужны для безопасного добавления репозитория GitHub.
Шаг 3: Скачивание и проверка ключа подписи GitHub
curl -fsSLo githubcli-archive-keyring.gpg https://cli.github.com/packages/githubcli-archive-keyring.gpg
Что делает: Скачивает готовый связку ключей (keyring) для APT-репозитория GitHub CLI.
Что означают флаги curl:
-f— вернуть ошибку при серверной ошибке-s— тихий режим-S— но показывать ошибки-L— следовать за перенаправлениями-o— сохранить в файл
gpg --quiet --show-keys --with-fingerprint githubcli-archive-keyring.gpg
Что делает: Показывает отпечатки ключей, содержащихся в keyring’е.
Ожидаемый вывод (должны быть оба отпечатка):
2C61 0620 1985 B60E 6C7A C873 23F3 D4EA 7571 6059
7F38 BBB5 9D06 4DBC B3D8 4D72 5612 B364 6231 3325
Зачем: Проверка отпечатков гарантирует, что keyring не был подменён. Второй ключ (7F38…) — это новый ключ подписи, добавленный GitHub в апреле 2026 года.
Шаг 4: Установка ключа в систему
sudo install -m 0755 -d /etc/apt/keyrings
sudo install -m 0644 githubcli-archive-keyring.gpg /etc/apt/keyrings/githubcli-archive-keyring.gpg
rm -f githubcli-archive-keyring.gpg
Что делает:
- Создаёт директорию для ключей (если её нет)
- Устанавливает keyring в системную директорию с правами на чтение
- Удаляет временную копию
Шаг 5: Создание APT-источника GitHub CLI
printf '%s\n' \
'Types: deb' \
'URIs: https://cli.github.com/packages' \
'Suites: stable' \
'Components: main' \
"Architectures: $(dpkg --print-architecture)" \
'Signed-By: /etc/apt/keyrings/githubcli-archive-keyring.gpg' \
| sudo tee /etc/apt/sources.list.d/github-cli.sources > /dev/null
Что делает: Создаёт современный DEB822-файл источника APT.
Что означают поля:
Types: deb— тип пакетовURIs— адрес репозиторияSuites: stable— кодовое имя (GitHub используетstable, не привязываясь к Debian)Components: main— компонент репозиторияArchitectures— архитектура вашего процессора (автоматически)Signed-By— путь к ключу для проверки подписи
Шаг 6: Обновление APT и установка GitHub CLI
sudo apt update
Что делает: Обновляет список пакетов, теперь включая репозиторий GitHub.
Ожидаемый вывод (должна быть строка с cli.github.com):
Get:1 https://cli.github.com/packages stable InRelease [3,917 B]
Get:2 https://cli.github.com/packages stable/main amd64 Packages [356 B]
apt-cache policy gh
Что делает: Показывает, откуда будет установлен пакет.
Что ищем: В выводе должна быть строка с https://cli.github.com/packages.
sudo apt install -y gh
Что делает: Устанавливает GitHub CLI.
Примечание: APT может установить git, если его ещё нет в системе — это нормально.
Шаг 7: Проверка установки
gh --version
Ожидаемый вывод:
gh version 2.92.0 (2026-04-28)
https://github.com/cli/cli/releases/tag/v2.92.0
Настройка GitHub CLI
После установки нужно авторизоваться и подключить GitHub CLI к вашему аккаунту.
Авторизация через браузер (рекомендуется)
gh auth login
Что делает: Запускает интерактивный мастер авторизации.
Что отвечать на вопросы:
| Вопрос | Рекомендуемый ответ | Почему |
|---|---|---|
| What account do you want to log into? | GitHub.com | Для обычного аккаунта |
| What is your preferred protocol for Git operations? | HTTPS | Проще настройка (не нужны SSH-ключи) |
| Authenticate with a web browser? | Yes | Самый удобный способ |
| How would you like to authenticate GitHub CLI? | Login with a web browser | Безопасно и просто |
Что произойдёт:
- Терминал покажет код для входа (например,
ABCD-1234) - Откроется браузер (или будет ссылка)
- Вы вводите код на GitHub
- Подтверждаете авторизацию
gh auth status
Что делает: Показывает статус авторизации (какой аккаунт, какой хост).
Ожидаемый вывод:
github.com
✓ Logged in to github.com as your-username (oauth_token)
Настройка Git для использования GitHub CLI (для HTTPS)
Если вы выбрали HTTPS при авторизации:
gh auth setup-git
Что делает: Настраивает Git так, чтобы он использовал токен от GitHub CLI вместо запроса пароля.
Зачем: После этого обычные git push и git pull будут работать без дополнительной авторизации.
Настройка редактора для GitHub CLI
GitHub CLI открывает редактор для длинных сообщений (пулл-реквестов, ишью):
gh config set editor "nano"
Что делает: Устанавливает редактор по умолчанию (здесь nano — простой редактор в терминале).
Для VS Code:
gh config set editor "code --wait"
Что означает --wait: VS Code откроется и будет ждать, пока вы не закроете окно редактора.
Использование GitHub CLI
Базовые команды
# Клонировать репозиторий (не копируя URL)
gh repo clone username/repo
# Список открытых ишью
gh issue list
# Создать пулл-реквест (из текущей ветки)
gh pr create
# Проверить пулл-реквест локально
gh pr checkout 123
# Список релизов
gh release list
# Список GitHub Actions workflow
gh workflow list
Пример рабочего процесса
- Клонируете репозиторий:
gh repo clone octocat/Hello-World
cd Hello-World
- Создаёте ветку и вносите изменения:
git checkout -b fix-bug
# ... редактируете файлы ...
git add .
git commit -m "Fix bug"
git push origin fix-bug
- Создаёте пулл-реквест:
gh pr create --title "Fix bug" --body "Description of the fix"
- Проверяете статус CI:
gh run list
Работа с расширениями
GitHub CLI поддерживает расширения:
# Поиск расширений
gh extension search
# Список установленных
gh extension list
Управление и обновление
Обновление GitHub CLI
sudo apt update
sudo apt install --only-upgrade gh
Что делает: Обновляет только gh, если он уже установлен (не установит заново).
Переключение между аккаунтами
Если у вас несколько аккаунтов GitHub:
# Авторизовать другой аккаунт
gh auth login
# Переключиться между аккаунтами
gh auth switch
Обновление токена (если истёк)
gh auth refresh
Что делает: Обновляет scopes (разрешения) токена, не требуя повторной авторизации.
Решение типичных проблем
8.1 Ошибка: Unable to locate package gh
Симптом: При sudo apt install gh пишет E: Unable to locate package gh.
Причина: Репозиторий GitHub не добавился или APT не обновился.
Пошаговое решение:
Шаг 1: Проверьте, существует ли файл источника:
cat /etc/apt/sources.list.d/github-cli.sources
Шаг 2: Проверьте, обновлялся ли APT:
sudo apt update
apt-cache policy gh
Шаг 3: Если файла нет — повторите шаги 3-6 из раздела установки.
8.2 Ошибка: Signature verification failed (ошибка GPG)
Симптом: sudo apt update выдаёт:
The following signatures couldn't be verified because the public key is not available
Причина: Ключ подписи не добавлен или повреждён.
Пошаговое решение:
Шаг 1: Удалите старые файлы репозитория:
sudo rm -f /etc/apt/sources.list.d/github-cli.list
Шаг 2: Скачайте и установите keyring заново:
curl -fsSLo githubcli-archive-keyring.gpg https://cli.github.com/packages/githubcli-archive-keyring.gpg
sudo install -m 0755 -d /etc/apt/keyrings
sudo install -m 0644 githubcli-archive-keyring.gpg /etc/apt/keyrings/githubcli-archive-keyring.gpg
rm -f githubcli-archive-keyring.gpg
Шаг 3: Обновите APT:
sudo apt update
8.3 Ошибка: gh: command not found (после установки через Snap)
Симптом: Вы установили gh через Snap, но команда не найдена.
Причина: /snap/bin не в PATH текущей сессии.
Решение: Откройте новый терминал или выполните:
source /etc/profile
(Если устанавливали через APT — эта проблема не должна возникнуть).
8.4 Ошибка: Permission denied (publickey) при git push
Симптом: После настройки GitHub CLI не работает git push с ошибкой:
git@github.com: Permission denied (publickey).
Причина: GitHub CLI настроен на SSH, но SSH-ключ не добавлен в аккаунт GitHub.
Пошаговое решение:
Шаг 1: Проверьте, какой протокол использует GitHub CLI:
gh config get git_protocol
Шаг 2: Если выводит ssh, а ключ не настроен — переключитесь на HTTPS:
gh config set git_protocol https
Шаг 3: Если хотите остаться на SSH — добавьте ключ:
# Сгенерировать ключ (если нет)
ssh-keygen -t ed25519 -C "your-email@example.com"
# Вывести публичный ключ
cat ~/.ssh/id_ed25519.pub
Скопируйте вывод и добавьте ключ в GitHub: Settings → SSH and GPG keys → New SSH key.
8.5 Ошибка: Token expired или scopes недостаточно
Симптом: gh команды работают, но некоторые (например, работа с оргнаизациями) выдают ошибку.
Причина: Токен авторизации устарел или имеет недостаточно разрешений.
Решение:
gh auth refresh
Что делает: Обновляет токен и его scopes без повторной авторизации.
8.6 Ошибка: GH_TOKEN environment variable overrides login
Симптом: gh auth status показывает Logged in через токен окружения, а не через обычную авторизацию.
Причина: Переменные GH_TOKEN или GITHUB_TOKEN установлены в окружении.
Пошаговое решение:
Шаг 1: Проверьте, установлены ли переменные:
echo $GH_TOKEN
echo $GITHUB_TOKEN
Шаг 2: Если они не нужны — уберите их:
unset GH_TOKEN
unset GITHUB_TOKEN
Шаг 3: Выполните авторизацию заново:
gh auth login
Удаление GitHub CLI
Шаг 1: Удаление авторизации (опционально)
gh auth logout
Что делает: Удаляет локальную конфигурацию авторизации (токен). Не отзывает токен на стороне GitHub.
Шаг 2: Удаление пакета
sudo apt remove gh
Что делает: Удаляет пакет GitHub CLI.
Шаг 3: Удаление репозитория и ключа
sudo rm -f /etc/apt/sources.list.d/github-cli.sources
sudo rm -f /etc/apt/sources.list.d/github-cli.list
sudo rm -f /etc/apt/keyrings/githubcli-archive-keyring.gpg
sudo apt update
Что делает: Удаляет файлы репозитория и ключ подписи.
Шаг 4: Удаление пользовательских данных (опционально)
rm -rf ~/.config/gh
Что делает: Удаляет все настройки GitHub CLI для текущего пользователя.
Шаг 5: Удаление неиспользуемых зависимостей
sudo apt autoremove
Что делает: Удаляет пакеты, которые были установлены как зависимости, но больше не нужны (например, Git, если он не требовался отдельно).
Чек-лист: что проверить после установки
- [ ]
sudo whoamiвыводитroot - [ ]
gh --versionпоказывает версию (например, 2.92.0) - [ ]
gh auth statusпоказываетLogged in to github.com as username - [ ]
gh repo clone username/repoработает (клонирует репозиторий) - [ ]
gh issue listработает (внутри репозитория) - [ ]
git pushработает (если выводит успешно — всё настроено)
Заключение
GitHub CLI успешно установлен на Debian из официального репозитория GitHub. Теперь вы можете управлять пулл-реквестами, ишью, релизами и workflow’ами не выходя из терминала.
Что дальше:
- Изучите официальную документацию GitHub CLI
- Установите и настройте Git на Debian, если ещё не сделали этого
- Для более тесной интеграции с GitHub рассмотрите GitHub Desktop для Debian
💡 Важно: GitHub CLI дополняет Git, но не заменяет его. Изучайте git параллельно — вместе они делают работу с GitHub максимально эффективной. Всегда проверяйте версию gh и регулярно обновляйте её через APT.