Автоматизация создания репозиториев GitHub с помощью gh (CLI)

Быстрые ссылки
Зачем автоматизировать GitHub?
Использование GitHub CLI
Создание новых репозиториев — стандартная часть рабочего процесса многих разработчиков и команд. Автоматизировать этот шаг удобно с помощью официального CLI-инструмента GitHub — gh. Он позволяет создавать и управлять репозиториями прямо из командной строки, что легко интегрируется в скрипты и автоматизации.
Зачем автоматизировать GitHub?
Ручное создание репозитория через веб-интерфейс и последующее связывание с локальным репо через
gitи команды
git initили
git remote addработает, но часто подразумевает переключение контекста: вы прерываете поток работы, открываете браузер, нажимаете кнопки и копируете ссылки. Если это вас устраивает — используйте привычный путь. Но для тех, кто делает это часто или хочет встроить создание репо в шаблоны/CI/CD, gh экономит время и делает процесс повторяемым.
Кратко: автоматизация полезна, когда требуется повторяемость, согласованность настроек и меньше ручного ввода во время старта проектов.
Использование GitHub CLI

Первый шаг — установить gh и связать его с аккаунтом GitHub. Инструкции и релизы находятся в репозитории GitHub CLI. Инсталляторы доступны для большинства менеджеров пакетов.
Инструмент доступен через распространённые пакетные менеджеры, включая winget на Windows. На Windows можно использовать MSI-инсталлятор. Для WSL или Linux показан пример через APT:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0sudo apt-add-repository https://cli.github.com/packagessudo apt updatesudo apt install ghСистема может попросить довериться ключу репозитория.
Далее выполните вход:
gh auth loginКоманда предложит варианты аутентификации: через OAuth в браузере или вставкой персонального токена (PAT) из настроек аккаунта. OAuth обычно проще — нужно нажать кнопку для открытия браузера и подтвердить доступ. Если браузер не открылся автоматически, скопируйте ссылку вручную и введите показанный в терминале 8-значный код.

После входа создать репозиторий очень просто, указывая публичность:
gh repo create test --privateКоманда создаст репозиторий и предложит варианты инициализации (README, .gitignore, лицензия) в зависимости от версии gh и флагов.

Полезные подкоманды gh repo
gh repo edit— изменить конфигурацию репозитория: ветку по умолчанию, описание, домашнюю страницу, включение Issues/Wiki/Projects.gh repo fork— форкнуть репозиторий и клонировать копию в ваш аккаунт (похоже наgit clone, но создает форк).gh repo list— вывести список ваших репозиториев.gh repo rename— изменить имя репозитория и URL.
Ключевое преимущество — эти команды легко включить в скрипты и шаблоны проектов.
Практическая методика: как включить создание репо в ваш стартовый скрипт
- Установите gh и выполните
gh auth login(однократно для машины/CI). - Решите стандартную структуру репо: имя, приватность, шаблон (.github, CI, .gitignore, лицензия).
- Создайте команду-обёртку или Make/Taskfile, например:
# Пример простого скрипта (bash)
REPO_NAME="$1"
PRIVATE_FLAG="--private"
gh repo create "$REPO_NAME" $PRIVATE_FLAG --description "Новый проект"
# опционально: инициализация локально
git init
git remote add origin "git@github.com:username/$REPO_NAME.git"- При необходимости добавьте создание начальных файлов и пуш в main/master.
Чек-лист по ролям
Разработчик:
- Установить gh и пройти
gh auth login. - Создать репо с нужными флагами и шаблонами.
- Добавить удалённый URL и запушить начальную ветку.
Тимлид/администратор:
- Решить политику приватности и шаблоны.
- Добавить обязательные файлы (CODEOWNERS, SECURITY, CONTRIBUTING).
- Настроить branch protection в
gh repo editили через веб.
CI-инженер:
- Добавить gh в образ/агента CI и использовать PAT с минимальными правами.
- Хранить токены в секретах (GitHub Secrets, Vault).
Альтернативные подходы
- Веб-интерфейс GitHub: удобен для одноразовых действий и визуальной настройки.
- GitHub API (REST/GraphQL): гибче для сложных интеграций и массовых операций.
- Скрипты с curl и PAT: полезно, если gh недоступен, но требует больше ручной работы.
Когда gh не подходит: в средах без возможности установить бинарь или там, где нужен строгий audit через API — лучше использовать REST/GraphQL.
Модель принятия решений (когда использовать gh)
- Повторяемость и быстрое создание — используйте gh.
- Требуется полный контроль над запросами и логированием — используйте API.
- Одноразовая настройка с визуальной проверкой — воспользуйтесь веб-интерфейсом.
flowchart TD
A[Нужно создать репозиторий?] --> B{Создание повторяемое?}
B -- Да --> C[Использовать gh в скрипте]
B -- Нет --> D{Нужна визуальная настройка?}
D -- Да --> E[Веб-интерфейс GitHub]
D -- Нет --> F[Использовать API или ручное создание]Безопасность и хранение токенов
Важно: не храните персональные токены в открытом виде. Для CI используйте секреты платформы (GitHub Actions Secrets, GitLab CI variables, HashiCorp Vault). Токен должен иметь минимальные права, достаточные для выполняемой задачи.
Критерии приёмки
- Репозиторий создан с нужным именем и уровнем приватности.
- Набор обязательных файлов добавлен (.gitignore, LICENSE, README).
- Удалённый URL корректно прописан в локальном репозитории.
- Права и защита веток настроены в соответствии с политикой команды.
Примеры отказа и подводные камни
- Ошибка аутентификации: неверный PAT или просроченный OAuth-код.
- Отсутствие прав в организации: gh не сможет создать репозиторий в org без соответствующих прав.
- В CI нужно убедиться, что gh установлен и PAT доступен как секрет.
Важно: если gh обновился, синтаксис некоторых команд может меняться — проверяйте gh help и релизы.
Краткое резюме
Использование GitHub CLI ускоряет создание и настройку репозиториев, делает процесс воспроизводимым и удобным для интеграции в скрипты и CI. Для простых и разовых действий подойдёт веб-интерфейс. Если требуется гибкость и масштабирование — рассмотрите API. Всегда храните токены безопасно и давайте минимально необходимые права.
Важно: перед массовым применением протестируйте сценарии в тестовом аккаунте или организации.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента