github: утилиты командной строки
Утилиты работы с github из командной строки.
Содержание
1 Общая информация
- Репозиторий: https://github.com/cli/cli
- Документация: https://cli.github.com/manual/
- Ранее для этих же целей разрабатывалась программа Hub (https://hub.github.com/), но её забросили (см. https://mislav.net/2020/01/github-cli/).
2 Установка программного обеспечения
2.1 Linux
- Gentoo:
emerge dev-util/github-cli
- Fedora:
sudo dnf install gh
2.2 Windows
- Chocolatey
choco install gh
3 Порядок работы
3.1 Начало работы
Для начала необходимо авторизоваться
gh auth login
- Утилита задаст несколько наводящих вопросов.
- Авторизоваться можно через броузер.
4 Основные задачи
4.1 Релизы (releases)
4.1.1 Список релизов
- Команда:
gh release list [flags]
- Параметры:
-L
,--limit int
: максимальное количество элементов для выборки (по умолчанию 30).
4.1.2 Информация о релизе
- Команда:
gh release view [<tag>] [flags]
- Параметры:
-q
,--jq expression
: фильтровать вывод JSON с использованием выражения jq;--json fields
: выводить JSON с указанными полями;-t
,--template string
: форматировать вывод JSON с использованием шаблона Go;-w
,--web
: открыть выпуск в броузере.
4.1.3 Создание релиза
- Команда:
gh release create <tag> [<files>...]
- Параметры:
-d
,--draft
: сохранить релиз как черновик вместо его публикации;-n
,--notes string
: примечания к выпуску;-F
,--notes-file file
: взять примечания к выпуску из файла;-p
,--prerelease
: отметить выпуск как предварительный;--target branch
: задать целевую ветку;-t
,--title string
: задать название выпуска.
- Примеры:
- Интерактивное создание выпуска:
gh release create v1.2.3
- Создание релиза в неинтерактивном режиме:
gh release create v1.2.3 --notes "bugfix release"
- Использовать примечания к выпуску из файла:
gh release create v1.2.3 -F CHANGELOG.md
- Интерактивное создание выпуска:
4.1.4 Загрузка ресурсов в выпуск
Команда:
gh release upload <tag> <files>... [flags]
- Чтобы задать отображаемую метку для ресурса, добавьте текст, начинающийся с символа
#
, после имени файла.
- Чтобы задать отображаемую метку для ресурса, добавьте текст, начинающийся с символа
Параметры:
--clobber
: перезаписать существующие ресурсы с тем же именем.
Загрузить ресурсные файлы можно и при создании релиза.
- Загрузите все архивы из каталога как ресурсы выпуска:
gh release create v1.2.3 ./dist/*.tar.gz
- Загрузить ресурс выпуска с отображаемой меткой:
gh release create v1.2.3 '/path/to/asset.zip#My display label'
- Загрузите все архивы из каталога как ресурсы выпуска:
4.1.5 Скачать ресурсы выпуска
- Команда:
gh release download [<tag>] [flags]
- Параметры:
-p
,--pattern
: задать шаблон имени файла.
- Примеры.
- Скачать все ресурсы из определенного выпуска:
gh release download v1.2.3
- Скачать файлы по шаблону из последнего релиза:
gh release download -p '*.deb' -p '*.rpm'
- Скачать все ресурсы из определенного выпуска:
4.1.6 Удаление выпуска
- Команда:
gh release delete <tag> [flags]
- Параметры:
-y
,--yes
: пропустить запрос на подтверждение.
4.2 Проблемы (issues)
4.3 Репозитории (repo)
4.3.1 Создание репозитория
- Создать репозиторий в интерактивном режиме:
gh 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 Примеры
- Интерактивное создание репозитория:
gh repo create
- Создать репозиторий и клонировать его:
gh repo create my-project --public --clone
- Создать репозиторий из текущего каталога:
gh repo create my-project --private --source=. --remote=upstream
4.4 Управление ключами ssh
Список ключей ssh в учётной записи GitHub:
gh ssh-key list
Удалить ключ ssh из учётной записи GitHub:
gh ssh-key delete <id>
Добавить ключ ssh в учётную запись GitHub:
gh ssh-key add [<key-file>] [flags]
- Флаги:
-t
,--title <string>
: название нового ключа;--type <string>
: тип ssh-ключа:authentication
(значение по умолчанию);signing
.
- Флаги:
Links to this note
- Лабораторная работа Первоначальна настройка git
- Настройка рабочей среды
- Рабочее пространство для лабораторной работы
- Подпись коммитов git ключом ssh
- Управление файлами конфигурации. Домашний каталог. Репозиторий
- Управление файлами конфигурации. Домашний каталог. Chezmoi
- Создание сайта на Hugo
- Практический сценарий использования git
- Рабочее пространство для лабораторной работы
- Система контроля версий git