По состоянию на январь 2020 года GitHub сообщает о наличии более 40 миллионов пользователей и более 100 миллионов репозиториев (включая не менее 28 миллионов общедоступных репозиториев), что делает его крупнейшим хранилищем исходного кода в мире. (Википедия)

Как и любой успешный современный инструмент, Github чрезвычайно расширяем. Он предлагает множество способов настройки, расширения и интеграции с другими инструментами.



Но все же вы можете задаться вопросом - зачем нам GitHub CLI, если у нас уже есть богатый набор команд CLI с самим Git CLI?

Основная причина здесь в том, что платформа GitHub предоставляет гораздо больше функций, чем те, которые доступны в системе контроля версий Git. Кроме того, вы можете возразить, что нам не следует рассматривать Git и Github как отдельные инструменты, поскольку последний использует первый и расширяет его функциональность.

У GitHub уже был интерфейс командной строки под названием Hub, поддерживаемый одним из сотрудников GitHub. Но позже они решили создать этот официальный проект с нуля, а не расширять проект Hub, как обсуждалось в статье CLI vs. Hub.

Интерфейс командной строки GitHub

Интерфейс командной строки GitHub переносит GitHub в терминал. Команда GitHub выпускает версию 1.0 в сентябре 2020 года, и интерфейс командной строки помогает разработчикам создавать автоматизированные сценарии для своих рабочих процессов. С помощью интерфейса командной строки GitHub вы можете:

  • Выполните весь рабочий процесс GitHub из терминала, начиная от создания проблемы до ее выпуска.
  • Имеет возможность вызывать GitHub API и скрипт любых действий.
  • Установите собственный псевдоним для любой команды.
  • Подключитесь к GitHub Enterprise Server (GHES) в дополнение к GitHub.com.

Основы интерфейса командной строки GitHub

1. Клонировать репо

Вы можете выполнять задачи, связанные с репозиториями, используя GitHub CLI, такие как создание, клонирование и разветвление репозиториев. Если вам нужна помощь, используйте параметр команды GitHub CLI --help, как показано ниже.

gh repo --help

Чтобы клонировать репозиторий из GitHub, вы можете использовать следующую команду.

gh repo clone owner/repo

2. Создать проблему

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

gh issue create

Кроме того, вы можете перечислить проблемы с помощью команды, показанной ниже.

gh issue list

3. Создание и объединение запросов на включение.

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

gh pr create

Создав запрос на слияние, вы можете утвердить и просмотреть его с помощью интерфейса командной строки GitHub. Эта функция становится удобной в сценариях, когда вам нужно проанализировать код и соответствующим образом изменить статус PR. Он также предоставляет возможность утверждать запрос на слияние, если он соответствует определенным критериям, используя CI / CD. Кроме того, вы можете объединить изменения в ветку, как показано ниже.

gh pr merge

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

Расширение интерфейса командной строки GitHub

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

  1. Создавайте собственные команды (или ярлыки) с помощью gh alias set
  2. Создавайте собственные запросы API, используя gh api
  3. Используйте переменные среды, чтобы установить специфичные для среды конфигурации для ваших скриптов.

Создать собственные команды

Одна из самых привлекательных функций GitHub CLI - это возможность создавать собственные команды CLI с помощью gh alias set. Вы можете определить любые часто используемые команды с параметрами как пользовательские команды. Давайте посмотрим на пример, который я создал, чтобы найти назначенный мне GitHub.

В этом примере я сопоставил сокращениеgh myissues с gh alias set myissues 'issue list -A kasunsjc', как показано ниже.

Создавайте собственные запросы API

Это еще одна мощная функция GitHub CLI. Вы можете определять пользовательские запросы API, используя gh api <endpoint> [flags], который запускает HTTP-запрос к GitHub API и возвращает ответ.

Есть два способа определить запрос API с помощью интерфейса командной строки. Один из подходов - использовать путь к конечной точке API с заполнителями для заполнения параметров.

gh api repos/:owner/:repo/issues/22

В следующем примере показано, как запросить конкретную проблему из интерфейса командной строки GitHub.

Другой подход - использовать GraphQL при определении запросов, где у нас больше гибкости в отношении возвращаемых значений.

gh api graphql -F owner=':owner' -F name=':repo' -f query='
  query($name: String!, $owner: String!) {
    repository(owner: $owner, name: $name) {
      releases(last: 5) {
        nodes { tagName }
      }
    }
  }
'

Дополнительные сведения см. В документации ingh_api.

Я лично использую эти функции для интеграции (даже в дальнейшем) Bit, концентратора облачных компонентов, с Github. Bit предлагает автоматические PR для всех соответствующих репозиториев всякий раз, когда изменяется общий компонент (используемый этими репозиториями).

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

Переменные среды

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

Если вы посмотрите на мощь расширений, на этом все не закончится. Мы также можем улучшить ремонтопригодность сценария командной строки, создав ярлыки команд для часто используемых и поощряя повторное использование. Это также сделает сценарии интерфейса командной строки более понятными и понятными. Я почти уверен, что вам это понравится!

Что ждет в будущем?

После выпуска GitHub CLI он получил положительные отзывы сообщества разработчиков и дал много обещаний на будущее. Как инструмент с открытым исходным кодом, CLI постоянно совершенствуется и регулярно добавляет новые функции.

Новая ЭкоСистема

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

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

Дорожная карта

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

Заключение

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

Кроме того, он более удобен для операций DevOps по сравнению с их REST API. Однако я считаю, что всем, кто все еще пользуется веб-порталом GitHub, стоит попробовать и выяснить, как он влияет на вашу производительность.

Наконец, если у вас есть какие-либо вопросы или пояснения, оставьте комментарий ниже.

Учить больше