Официальный CLI GitHub

GitHub

GitHub — самый известный провайдер Git хостинга долгие годы существовал, не имея официального инструмента CLI (интерфейс командной строки). Это весьма удивительно, учитывая, что сам GitHub является наиболее популярной платформой для открытых проектов. 

Но одно из преимуществ существования в рамках общедоступной экосистемы в том, что при необходимости сообщество разрабатывает нужные проекты зачастую без официальной поддержки, что и происходило с GitHub до сих пор. 

Знакомьтесь — Hub — самый популярный неофициальный CLI GitHub, который до недавних пор использовался очень широко. На его сайте приведено следующее определение:

“Hub — это расширение командной строки Git, помогающее выполнять повседневные задачи на GitHub, не покидая терминал.”

Должен сказать, что до сих пор он прекрасно с этим справлялся. Однако недавно GitHub начал ускоренное внедрение официальных инструментов и продуктов, что происходит весьма успешно, благодаря крупным инвестициям со стороны Microsoft.

GitHub уже имел десктопное приложение с GUI, и появление официального инструмента командной строки было лишь вопросом времени. В итоге это свершилось и вы можете поприветствовать официальный GitHub CLI.

Github CLI

Github CLI — это попытка компании “перевести GitHub в командную строку”. На данный момент представлена бета версия.

Да, он ещё не завершён окончательно, но уже привлёк повышенный интерес разработчиков и всего сообщества. Думаю, этап беты не займёт много времени. Но прежде чем делать какие-то заключения, давайте поближе познакомимся с самим виновником торжества и выясним, чем он может быть полезен в каждодневном рабочем процессе.

Установка

Установка крайне проста и понятна. 

Для macOS gh доступен через brew.

brew install github/gh/gh

Для Windows gh доступен одним из трёх способов. Первый — это через scoop:

scoop bucket add github-gh https://github.com/cli/scoop-gh.git
scoop install gh

Второй через Chocolatey:

choco install gh

И третий — это файл установки MSI, который вы можете найти и загрузить со страницы релиза.

Команды

На данный момент бета версия CLI имеет две основные команды: issue (запрос) и pr (пул реквесты). Они являются наиболее востребованными среди разработчиков, что и послужило причиной их появления. 

Hub уже поддерживает больше команд и выступает в качестве прокси-сервера для Git, а gh при этом является отдельным инструментом.  

Можно быть уверенными, что поскольку это официальный проект, то вскоре мы получим и другие команды, но для начала познакомимся с уже существующими. Все команды в CLI начинаются с gh.

Issue

Команда issue предназначена для взаимодействия со всем, что касается запросов на GitHub. Она также включает подкоманды create, list, status и view. Синтаксис её применения следующий gh issue <subcommand>. Теперь давайте рассмотрим эти четыре подкоманды:

  • create — позволяет легко создавать запросы из командной строки. Вы можете использовать команду напрямую с флагами для title и body:
gh issue create --title "Issue title" --body "Issue body"
Ввод Title (заголовок) и Body (тело).

Либо можете вводить детали в интерактивном CLI, который также позволяет напрямую регистрировать запрос или открывать его ссылку в браузере для просмотра и последующей регистрации. 

Регистрация запроса из CLI и открытие ссылки в браузере.
  • list — эта команда выводит список текущих запросов репозитория. Используется она следующим образом: gh issue list. У неё также есть фильтры, с помощью которых вы можете получать конкретный список на основе assignee (людей, назначенных для рассмотрения), label (ярлыков) и current state (текущего состояния). Оба примера приведены ниже:
Получение списка запросов без фильтра.
Получение списка с фильтром по состоянию (закрыт).
  • status — эта команда просто показывает статус запросов, имеющих отношение к текущему пользователю. Использовать её также весьма просто: gh issue status.
Получение статуса релевантных запросов.
  • view — больше похожа на горячую клавишу для быстрого открытия запроса в браузере. Для этого вы можете просто ввести команду, сопровождаемую номером запроса. Например, gh issue view 6.

PR

pr работает с пул реквестами и является второй основной командой CLI.

Она позволяет работать с пул реквестами прямо из командной строки. У неё также есть четыре вспомогательные команды: create, list, status и отдельная подкоманда checkout. Синтаксис следующий: gh pr <subcommand>

  • checkout —используется для переключения между пул реквестами. Это можно делать, используя номер или URL пул реквеста. Синтаксис: gh pr checkout {<number> | <url>}. В результате вы будете тут же переключены на новую ветку.
Переключение.
  • create — как и предполагает имя, эта команда служит для создания пул реквестов из CLI. Используется она так gh pr create [flags]. Этой команде сопутствует множество полезных флагов: title, body, branch и т.д., которые позволяют добавлять детали в pr и выбирать ветку для слияния. Она также позволяет вводить информацию. Например:
gh pr create --title "Pull request title" --body "Pull request body"

Либо используйте интерактивный CLI, который также предоставляет возможность зарегистрировать запрос напрямую или открыть его ссылку в браузере для предпросмотра и последующей регистрации.

Создание pr из CLI.
  • list —выводит список пул реквестов текущего репозитория и используется так gh pr list. В ней есть фильтры, которые можно добавить в виде флагов, что позволит выделить нужную вам информацию на основе assignee (назначенных для рассмотрения), base branch (базовой ветви), state (открыт, закрыт)и т.д. Примеры обоих случаев приведены ниже:
Вывод списка пул реквестов в репозитории.
  • status —эта команда показывает статус релевантных пул реквестов и используется так: gh pr status. Она выводит информацию по категориям: Current branch (текущая ветвь), Created by you (созданный вами) и Requesting a code review from you (приглашения на ревью кода).
Статус пул реквеста.
  • view —является упрощённым способом открыть пул реквест в браузере. Для её использования достаточно ввести саму команду, сопроводив номером пул реквеста. Например, gh pr view 6. Вы также можете использовать флаг — — preview для быстрого предпросмотра.

Заключение

Вот и всё. Если вам понадобится дополнительная информация или вы захотите прочесть подробную документацию, обращайтесь на официальную страницу проекта

Специально для сайта ITWORLD.UZ. Новость взята с сайта NOP::Nuances of programming