github: утилиты командной строки
2021-08-04
·
4 мин. для прочтения
Утилиты работы с 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.
- Флаги: