Установка GitHub CLI на Rocky Linux: полное руководство

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 из текущей ветки
Просмотр issuesgh issue listПокажет все открытые задачи
Запуск workflowgh 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

Вас спросят:

  1. Аккаунт: GitHub.com (или GitHub Enterprise Server, если используете корпоративную версию)
  2. Протокол: HTTPS (проще) или SSH (если уже настроены ключи)
  3. Аутентифицировать Git?: Yes — чтобы CLI сам управлял учётными данными
  4. Способ аутентификации: Login with a web browser (через браузер)

Что делать:

  • CLI покажет одноразовый код (например, ABCD-1234)
  • Откройте ссылку https://github.com/login/device в браузере
  • Введите код
  • Подтвердите доступ

После успешной авторизации:

✓ Authentication complete. gh configured.

5.2 Альтернатива: авторизация через токен (для серверов без браузера)

Если вы работаете на сервере без графического интерфейса, используйте персональный токен:

  1. Создайте токен в GitHub: SettingsDeveloper settingsPersonal access tokensTokens (classic).
  2. Выберите права (scopes): repo, read:org, workflow (если нужен запуск CI/CD).
  3. Скопируйте токен.

Авторизация с токеном:

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 настройте авторизацию с вашим хостом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *