Простой и быстрый способ забэкапить свои репозитории из github или gitlab. Я не стал тут изобретать велосипед, а просто поискал информацию. Нашёл много всяких программ и утилит на различных языках программирования. Всё это отмёл, пока не нашёл простые bash скрипты. Для меня было очевидно, что для решения этой задачи достаточно bash и api указанных сервисов.
В итоге воспользовался вот этим репозиторием:
⇨ https://github.com/alexadam/repo-backup
Очень простое и рабочее решение.
Я всё своё храню в Gitlab. Сходил в настройки, выдал токен с разрешениями на чтение api и репозиториев. И использовал его в скрипте:
#!/bin/shdirname=gitlab-backup-$(date "+%Y-%m-%d-%H-%M-%S")mkdir "$dirname"cd $dirnameprivateToken=YOUR_ACCESS_TOKENuserName=YOUR_GITLAB_USERNAMEcurl --header "Private-Token: $privateToken" \"https://gitlab.com/api/v4/users/$userName/projects" \| jq -r '.[] | .id, .name' \| while IFS= read projectId; read projectName; do curl --header "Private-Token: $privateToken" \ "https://gitlab.com/api/v4/projects/$projectId/repository/archive.zip" \ --output $projectName.zip doneecho Done! All files downloaded here: $(pwd)
После запуска получаю директорию с датой в имени, где внутри все мои проекты, каждый в отдельном zip архиве. Просто и удобно. Для github решение аналогичное. Там просто апишка другая, но смысл такой же.
Я до этого git clone делал по списку. Подом думаю, что я ерундой страдаю. В итоге забрал себе этот скрипт, который работает в разы быстрее и проще.
#backup #git #devops