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"
Либо можете вводить детали в интерактивном 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, который также предоставляет возможность зарегистрировать запрос напрямую или открыть его ссылку в браузере для предпросмотра и последующей регистрации.
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