Разработчики 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 в анкете и репозитории.