GitHub CLI (команда gh) приносит функциональность GitHub прямо в ваш терминал. Вместо переключения между командной строкой и браузером, вы можете управлять репозиториями, пул-реквестами, задачами (issues) и рабочими процессами из единого интерфейса. Нужно ли вам быстро клонировать репозиторий, просмотреть ожидающие пул-реквесты или запустить CI/CD-пайплайн — GitHub CLI упрощает эти задачи до простых команд.
💡 Если вы часто работаете с GitHub из терминала и устали переключаться в браузер для создания PR, просмотра issues или запуска workflow — GitHub CLI позволит управлять репозиториями, не отрываясь от командной строки.
В этом руководстве мы установим GitHub CLI на Rocky Linux 8, 9 и 10 из официального репозитория GitHub. Вы узнаете:
- Как добавить официальный репозиторий GitHub CLI
- Как установить и проверить версию
- Как авторизоваться через браузер или токен
- Как управлять репозиториями, PR, issues и workflow
- Как обновлять и удалять GitHub CLI
Для кого: разработчики (работа с GitHub из терминала), DevOps (автоматизация CI/CD), сисадмины (скрипты для управления репозиториями), open-source контрибьюторы.
1. Что даёт GitHub CLI
| Возможность | Команда | Что делает |
|---|---|---|
| Клонирование репозитория | gh repo clone owner/repo | Клонирует репозиторий без копирования URL |
| Создание пул-реквеста | gh pr create | Создаёт PR из текущей ветки |
| Просмотр issues | gh issue list | Покажет все открытые задачи |
| Запуск workflow | gh workflow run | Запускает GitHub Actions из терминала |
| Создание репозитория | gh repo create | Создаёт репозиторий прямо из папки с проектом |
💡 Вывод для новичка: GitHub CLI особенно полезен, если вы работаете через терминал (например, на сервере без графического интерфейса). Он позволяет выполнять все основные операции с GitHub, не открывая браузер.
2. Подготовка системы
2.1 Обновление системы
sudo dnf upgrade --refresh -y
Что делает:
sudo— права суперпользователя.dnf upgrade— обновляет все пакеты до последних версий.--refresh— принудительно перекачивает метаданные репозиториев (игнорирует кэш).-y— автоматически отвечает «yes».
Зачем: Это стандартная практика безопасности перед установкой нового ПО. Снижает риск конфликтов зависимостей.
2.2 Установка dnf-plugins-core (если ещё не установлен)
sudo dnf install -y dnf-plugins-core
Что делает: Устанавливает набор плагинов для DNF, включая команду config-manager.
Зачем: Понадобится для добавления репозитория GitHub CLI.
3. Добавление репозитория GitHub CLI
3.1 Проверка наличия config-manager
sudo dnf install 'dnf-command(config-manager)' -y
Что делает: Устанавливает плагин config-manager, если он ещё не установлен.
3.2 Добавление официального репозитория
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
✅ Ожидаемый вывод:
Adding repo from: https://cli.github.com/packages/rpm/gh-cli.repo
Что делает: Добавляет официальный репозиторий GitHub CLI, откуда мы будем устанавливать пакет.
3.3 Проверка, что репозиторий добавился
dnf repolist | grep gh-cli
✅ Ожидаемый вывод:
gh-cli GitHub CLI
4. Установка GitHub CLI
4.1 Установка Git (если ещё не установлен)
GitHub CLI зависит от Git. Если Git не установлен — установите:
sudo dnf install -y git
4.2 Установка GitHub CLI
sudo dnf install gh --repo gh-cli -y
Что делает: Устанавливает пакет gh из официального репозитория GitHub CLI.
Что произойдёт: DNF автоматически импортирует GPG-ключ GitHub CLI. Вы увидите подтверждение:
Importing GPG key 0x75716059:
Userid : "GitHub CLI <opensource+cli@github.com>"
Fingerprint: 2C61 0620 1985 B60E 6C7A C873 23F3 D4EA 7571 6059
Key imported successfully
4.3 Проверка установки
gh --version
✅ Ожидаемый вывод (пример):
gh version 2.83.2 (2025-12-10)
https://github.com/cli/cli/releases/tag/v2.83.2
Зачем: Убедиться, что GitHub CLI установился корректно.
5. Авторизация в GitHub
Перед использованием GitHub CLI необходимо авторизоваться.
5.1 Интерактивная авторизация (рекомендуется)
gh auth login
Вас спросят:
- Аккаунт:
GitHub.com(илиGitHub Enterprise Server, если используете корпоративную версию) - Протокол:
HTTPS(проще) илиSSH(если уже настроены ключи) - Аутентифицировать Git?:
Yes— чтобы CLI сам управлял учётными данными - Способ аутентификации:
Login with a web browser(через браузер)
Что делать:
- CLI покажет одноразовый код (например,
ABCD-1234) - Откройте ссылку
https://github.com/login/deviceв браузере - Введите код
- Подтвердите доступ
✅ После успешной авторизации:
✓ Authentication complete. gh configured.
5.2 Альтернатива: авторизация через токен (для серверов без браузера)
Если вы работаете на сервере без графического интерфейса, используйте персональный токен:
- Создайте токен в GitHub:
Settings→Developer settings→Personal access tokens→Tokens (classic). - Выберите права (scopes):
repo,read:org,workflow(если нужен запуск CI/CD). - Скопируйте токен.
Авторизация с токеном:
echo "ваш_токен" | gh auth login --with-token
Или через переменную окружения:
export GH_TOKEN="ваш_токен"
gh auth status
5.3 Проверка статуса авторизации
gh auth status
✅ Ожидаемый вывод (пример):
github.com
✓ Logged in to github.com account username (GH_CONFIG_DIR/hosts.yml)
- Active account: true
- Git operations protocol: https
- Token: gho_******
- Token scopes: 'repo', 'read:org', 'workflow'
5.4 Для пользователей GitHub Enterprise
gh auth login -h github.example.com
Замените github.example.com на адрес вашего корпоративного GitHub Enterprise.
6. Основные команды GitHub CLI
6.1 Клонирование репозитория
gh repo clone cli/cli
Что делает: Клонирует репозиторий cli/cli (официальный репозиторий GitHub CLI).
6.2 Создание пул-реквеста
cd ~/my-project
git checkout -b feature/new-feature
# ... делаем изменения ...
git add .
git commit -m "Add new feature"
gh pr create
Что делает: Запускает интерактивный процесс создания пул-реквеста: запросит заголовок, описание, целевую ветку.
Создание PR сразу в браузере:
gh pr create --web
6.3 Просмотр issues (задач)
gh issue list
Показать только назначенные на меня:
gh issue list --assignee @me
6.4 Запуск GitHub Actions workflow
gh workflow run имя-файла.yml
Что делает: Запускает указанный workflow. В файле .yml должен быть триггер on: workflow_dispatch.
6.5 Создание репозитория из локальной папки
cd ~/my-project
git init
git add .
git commit -m "Initial commit"
gh repo create
Что делает: Интерактивно создаёт репозиторий на GitHub и связывает его с локальным.
6.6 Просмотр статуса репозитория
gh repo view
7. Обновление GitHub CLI
Поскольку GitHub CLI установлен из DNF-репозитория, обновления приходят через стандартный менеджер пакетов.
7.1 Обновление только GitHub CLI
sudo dnf update gh --repo gh-cli
7.2 Обновление всей системы (включая GitHub CLI)
sudo dnf upgrade --refresh
8. Удаление GitHub CLI
8.1 Удаление пакета
sudo dnf remove gh -y
8.2 Удаление репозитория (опционально)
sudo rm /etc/yum.repos.d/gh-cli.repo
sudo dnf clean all
8.3 Удаление пользовательских настроек (опционально)
⚠️ Внимание: Следующая команда удаляет настройки GitHub CLI, включая сохранённые токены и хосты.
rm -rf ~/.config/gh
8.4 Проверка удаления
gh --version
✅ Ожидаемый вывод:
bash: gh: command not found
9. Диагностика проблем
9.1 Ошибка: «nothing provides git»
Текст ошибки:
Error: nothing provides git needed by gh-2.83.2-1.x86_64 from gh-cli
Решение: Установите Git:
sudo dnf install -y git
9.2 Ошибка: «You are not logged into any GitHub hosts»
Решение: Выполните авторизацию:
gh auth login
Для серверов без браузера — используйте токен:
echo "ваш_токен" | gh auth login --with-token
9.3 Ошибка: «GH_TOKEN environment variable is not set»
Решение: Установите переменную окружения или выполните gh auth login:
export GH_TOKEN="ваш_токен"
gh auth status
Чек-лист: всё готово к работе
# 1. Проверка версии GitHub CLI
gh --version
# 2. Проверка, что репозиторий добавлен
dnf repolist | grep gh-cli
# 3. Проверка статуса авторизации
gh auth status
# 4. Тест: клонирование тестового репозитория
gh repo clone cli/cli ~/test-gh-cli
# 5. Очистка тестового репозитория
rm -rf ~/test-gh-cli
Заключение
Вы установили GitHub CLI на Rocky Linux из официального репозитория и авторизовались в GitHub.
Что теперь есть в системе:
- ✅ Утилита
ghдля управления GitHub из терминала - ✅ Автоматические обновления через DNF
- ✅ Настроенная аутентификация
- ✅ Возможность создавать PR, issues, запускать workflow и управлять репозиториями
Что дальше:
- Изучите официальную документацию: cli.github.com/manual
- Настройте алиасы для часто используемых команд:
gh alias set co "pr checkout" - Интегрируйте GitHub CLI в свои скрипты автоматизации
- Для корпоративного GitHub настройте авторизацию с вашим хостом