👋 Привет, сетевой друг!
Сегодня про ghorg - утилиту для массового клонирования репозиториев. Даёте ей организацию или пользователя, а она сама собирает все доступные репозитории в одну директорию.
🟣Зачем он: когда в организации десятки или сотни репозиториев, делать git clone для каждого вручную - сомнительное удовольствие. ghorg подходит для аудита, локального поиска по всему коду, бэкапов и быстрого онбординга.
ghorg clone kubernetes
На выходе получите примерно такую структуру:
~/ghorg/kubernetes/
├── apimachinery
├── kubeadm
├── git-sync
├── kubernetes-template-project
└── ...
🟣Можно не тащить всё подряд. Например, оставить только репозитории, начинающиеся с sig-:
ghorg clone kubernetes --match-regex=^sig-
Или исключить форки и архивные репозитории:
ghorg clone kubernetes --skip-forks --skip-archived
🟣Интереснее режим бэкапа. --backup использует git clone --mirror, а вместе с --clone-wiki и --include-submodules можно собрать гораздо более полный набор данных:
ghorg clone kubernetes \
--backup \
--clone-wiki \
--include-submodules
🟣Есть и сценарий регулярного обновления: если репозиторий уже скачан, следующий запуск не клонирует его заново, а делает pull и clean. Для рабочих каталогов это важно учитывать: локальные изменения по умолчанию могут быть затёрты. Если нужно сохранить их, используется --no-clean.
🟣А если таких наборов несколько, команды можно сохранить в reclone.yaml и запускать одной командой:
ghorg reclone
Для этого же есть HTTP-сервер и cron-режим - уже получается вполне нормальная автоматизация бэкапов и периодической синхронизации.
Серверная Админа | Zeroday | #Инструмент
Сегодня про ghorg - утилиту для массового клонирования репозиториев. Даёте ей организацию или пользователя, а она сама собирает все доступные репозитории в одну директорию.
🟣Зачем он: когда в организации десятки или сотни репозиториев, делать git clone для каждого вручную - сомнительное удовольствие. ghorg подходит для аудита, локального поиска по всему коду, бэкапов и быстрого онбординга.
ghorg clone kubernetes
На выходе получите примерно такую структуру:
~/ghorg/kubernetes/
├── apimachinery
├── kubeadm
├── git-sync
├── kubernetes-template-project
└── ...
🟣Можно не тащить всё подряд. Например, оставить только репозитории, начинающиеся с sig-:
ghorg clone kubernetes --match-regex=^sig-
Или исключить форки и архивные репозитории:
ghorg clone kubernetes --skip-forks --skip-archived
🟣Интереснее режим бэкапа. --backup использует git clone --mirror, а вместе с --clone-wiki и --include-submodules можно собрать гораздо более полный набор данных:
ghorg clone kubernetes \
--backup \
--clone-wiki \
--include-submodules
🟣Есть и сценарий регулярного обновления: если репозиторий уже скачан, следующий запуск не клонирует его заново, а делает pull и clean. Для рабочих каталогов это важно учитывать: локальные изменения по умолчанию могут быть затёрты. Если нужно сохранить их, используется --no-clean.
🟣А если таких наборов несколько, команды можно сохранить в reclone.yaml и запускать одной командой:
ghorg reclone
Для этого же есть HTTP-сервер и cron-режим - уже получается вполне нормальная автоматизация бэкапов и периодической синхронизации.
Серверная Админа | Zeroday | #Инструмент