Разработчики GitHub выпустили бета-версию консольной утилиты GitHub CLI. Она позволяет создавать пул-реквесты и тикеты на GitHub, не выходя из консоли, где вы уже работаете с git.
Пул-реквесты и issue — самые распространённые команды, поэтому их добавили в первую очередь.
Как и прошлая программа Hub, эта полностью написана на Go. Она тоже запускается в разных ОС, включая Linux, MacOS и Windows, причём гораздо удобнее в использовании.
gh pr [status, list, view, checkout, create]
gh issue [status, list, view, create]
gh help
Для получения справки по любой команде/подкоманде добавьте в конце строки
--help
. Например:$ gh issue create --help
Create a new issue
Usage:
gh issue create [flags]
Flags:
-b, --body string Supply a body. Will prompt for one otherwise.
-t, --title string Supply a title. Will prompt for one otherwise.
-w, --web Open the browser to create an issue
Global Flags:
--help Show help for command
-R, --repo OWNER/REPO Select another repository using the OWNER/REPO format
Глобальные флаги:
--help Show help for command
-R, --repo OWNER/REPO Select another repository using the OWNER/REPO format
--version Show gh version
Примеры команд
Отображение списка тикетов с пометкой "help wanted"
~/Projects/my-project$ gh issue list --label "help wanted"
Создание пул-реквеста
~/Projects/my-project$ gh pr create
Здесь же под флагом
-B
указываем ветку, если это не мастер. Flags:
-B, --base string The branch into which you want your code merged
-b, --body string Supply a body. Will prompt for one otherwise.
-d, --draft Mark pull request as a draft
-t, --title string Supply a title. Will prompt for one otherwise.
-w, --web Open the web browser to create a pull request
Если не ввести тему и содержание пул-реквеста в командной строке, то появится интерактивное поле для ввода прямо в консоли.
При отправке пул-реквеста GitHub CLI автоматически создаёт форк мастера, если он не был создан ранее.
Проверка изменений/статуса
~/Projects/my-project$ gh pr status
Current branch
#12 Remove the test feature [Rexogamer:patch-2]
- All checks failing - review required
Created by you
You have no open pull requests
Requesting a code review from you
#13 Fix tests [branch]
- 3/4 checks failing - review required
#15 New feature [branch]
- Checks passing - approved
Отмена изменений (check out)
~/Projects/my-project$ gh pr checkout 12
remote: Enumerating objects: 66, done.
remote: Counting objects: 100% (66/66), done.
remote: Total 83 (delta 66), reused 66 (delta 66), pack-reused 17
Unpacking objects: 100% (83/83), done.
From https://github.com/owner/repo
* [new ref] refs/pull/8896/head -> patch-2
M README.md
Switched to branch 'patch-2'
Нужно признать, что после покупки со стороны Microsoft разработка новых функций GitHub явно ускорилась. Есть версия, что перед покупкой в проекте накопился очень большой технический долг (старые версии на Rails и прочее), но новый владелец бросил массу ресурсов на его устранение, благо у него есть такие возможности.
Теперь большая часть проблем позади, так что разработчики GitHub могут, наконец, сосредоточиться на развитии продукта. Они ждут отзывов по GitHub CLI в анкете и репозитории.
phillennium
Хочется дополнить: предыдущая утилита Hub теперь, по-видимому, будет заброшена, и если вас интересует «зачем вообще затеяли новую утилиту вместо развития старой», ответ есть в блоге Мислава, возглавляющего работу над обеими.