github: утилиты командной строки

Утилиты работы с github из командной строки.

Содержание

1 Общая информация

2 Установка программного обеспечения

2.1 Linux

  • Gentoo:
    1emerge dev-util/github-cli
    
  • Fedora:
    1sudo dnf install gh
    

2.2 Windows

  • Chocolatey
    1choco install gh
    

3 Порядок работы

3.1 Начало работы

  • Для начала необходимо авторизоваться

    1gh auth login
    
    • Утилита задаст несколько наводящих вопросов.
    • Авторизоваться можно через броузер.

4 Основные задачи

4.1 Релизы (releases)

4.1.1 Список релизов

  • Команда:
    1gh release list [flags]
    
  • Параметры:
    • -L, --limit int: максимальное количество элементов для выборки (по умолчанию 30).

4.1.2 Информация о релизе

  • Команда:
    1gh release view [<tag>] [flags]
    
  • Параметры:
    • -q, --jq expression: фильтровать вывод JSON с использованием выражения jq;
    • --json fields: выводить JSON с указанными полями;
    • -t, --template string: форматировать вывод JSON с использованием шаблона Go;
    • -w, --web: открыть выпуск в броузере.

4.1.3 Создание релиза

  • Команда:
    1gh release create <tag> [<files>...]
    
  • Параметры:
    • -d, --draft: сохранить релиз как черновик вместо его публикации;
    • -n, --notes string: примечания к выпуску;
    • -F, --notes-file file: взять примечания к выпуску из файла;
    • -p, --prerelease: отметить выпуск как предварительный;
    • --target branch: задать целевую ветку;
    • -t, --title string: задать название выпуска.
  • Примеры:
    • Интерактивное создание выпуска:
      1gh release create v1.2.3
      
    • Создание релиза в неинтерактивном режиме:
      1gh release create v1.2.3 --notes "bugfix release"
      
    • Использовать примечания к выпуску из файла:
      1gh release create v1.2.3 -F CHANGELOG.md
      

4.1.4 Загрузка ресурсов в выпуск

  • Команда:

    1gh release upload <tag> <files>... [flags]
    
    • Чтобы задать отображаемую метку для ресурса, добавьте текст, начинающийся с символа #, после имени файла.
  • Параметры:

    • --clobber: перезаписать существующие ресурсы с тем же именем.
  • Загрузить ресурсные файлы можно и при создании релиза.

    • Загрузите все архивы из каталога как ресурсы выпуска:
      1gh release create v1.2.3 ./dist/*.tar.gz
      
    • Загрузить ресурс выпуска с отображаемой меткой:
      1gh release create v1.2.3 '/path/to/asset.zip#My display label'
      

4.1.5 Скачать ресурсы выпуска

  • Команда:
    1gh release download [<tag>] [flags]
    
  • Параметры:
    • -p, --pattern: задать шаблон имени файла.
  • Примеры.
    • Скачать все ресурсы из определенного выпуска:
      1gh release download v1.2.3
      
    • Скачать файлы по шаблону из последнего релиза:
      1gh release download -p '*.deb' -p '*.rpm'
      

4.1.6 Удаление выпуска

  • Команда:
    1gh release delete <tag> [flags]
    
  • Параметры:
    • -y, --yes: пропустить запрос на подтверждение.

4.2 Проблемы (issues)

4.3 Репозитории (repo)

4.3.1 Создание репозитория

  • Создать репозиторий в интерактивном режиме:
    1gh repo create
    
  • Чтобы создать удалённый репозиторий в неинтерактивном режиме, укажите имя репозитория и один из ключей: --public, --private, --internal.
    • С ключом --clone репозиторий клонируется локально.
  • Чтобы создать удалённый репозиторий из существующего локального репозитория, укажите исходный каталог с ключом --source.
    • По умолчанию именем удалённого репозитория будет имя исходного каталога.
    • Задайте ключ --push, чтобы отправить любые локальные коммиты в новый репозиторий.

4.3.2 Параметры

  • --add-readme : добавьте файл README в новый репозиторий;
  • -c, --clone : клонируйте новый репозиторий в текущий каталог;
  • -d, --description <string> : описание репозитория;
  • --disable-issues : отключить проблемы в новом репозитории;
  • --disable-wiki ; отключить вики в новом репозитории;
  • -g, --gitignore <string> : шаблон gitignore для репозитория;
  • -h, --homepage <URL> : адрес домашней страницы репозитория;
  • --include-all-branches : включить все ветки из репозитория шаблонов;
  • --internal : внутренний репозиторий;
  • -l, --license <string> : лицензию открытого исходного кода для репозитория;
  • --private : приватный репозиторий;
  • --public : общедоступный репозиторий;
  • --push : отправить локальные коммиты в новый репозиторий;
  • -r, --remote <string> : удалённое имя для нового репозитория;
  • -s, --source <string> : путь к локальному репозиторию, который будет использоваться в качестве источника;
  • -t, --team <name> : название организационной группы, которой будет предоставлен доступ;
  • -p, --template <repository> : новый репозиторий на основе репозитория шаблонов.

4.3.3 Примеры

  • Интерактивное создание репозитория:
    1gh repo create
    
  • Создать репозиторий и клонировать его:
    1gh repo create my-project --public --clone
    
  • Создать репозиторий из текущего каталога:
    1gh repo create my-project --private --source=. --remote=upstream
    

4.4 Управление ключами ssh

  • Список ключей ssh в учётной записи GitHub:

    1gh ssh-key list
    
  • Удалить ключ ssh из учётной записи GitHub:

    1gh ssh-key delete <id>
    
  • Добавить ключ ssh в учётную запись GitHub:

    1gh ssh-key add [<key-file>] [flags]
    
    • Флаги:
      • -t, --title <string> : название нового ключа;
      • --type <string> : тип ssh-ключа:
        • authentication (значение по умолчанию);
        • signing.

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие