В связи с тем, что Github заблокировал некоторые аккаунты российских компаний, я решил перестраховаться и расширить свой скрипт бекапов небольшим скриптом, который выкачивает все репозитории из моего пользователя и доступных мне организаций.
Сам скрипт доступен в моем репозитории. Но, на всякий случай, заливаю его сюда отдельным файлом (если мой github когда-то заблокируют). С github последнюю версию скрипта можно скачать по прямой ссылке.
Перед запуском скрипта необходимо создать OAuth токен (инструкция здесь). Скрипт клонирует репозитории через SSH и, следовательно, нужно добавить SSH ключ в ваш аккаунт на Github (инструкция здесь)
После получения токена запукаем скрипт командой:
GITHUB_AUTH_TOKEN=<ваш-токен> bash backup.sh
для скачивания всех своих пользовательских репозиториев. А для скачивания всех репозиториев вашей организации следующую команду:
GITHUB_AUTH_TOKEN=<ваш-токен> bash backup.sh org <имя-организации>
В конечном итоге скрипт создаст .tgz архив со всеми репозиториями.
Восстановление из бекапа
Для восстановления из резервной копии проделываем следующие действия
# распаковка архива во временную директорию tar -C /tmp -xf github_USER_20220415.tgz # клонируем репозиторий нужного проекта из архива git clone /tmp/project.git # переходим в папку проекта cd project # меняем адрес git репозитория git remote set-url origin https://new-remote.com/project.git # отправляем код в удаленный репозиторий git push origin master --tags
На этом все. Чтобы оставаться на связи, подписывайтесь на мой telegram - @gmoreva