Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
Простой и быстрый способ забэкапить свои репозитории из github или gitlab. Я не стал тут изобретать велосипед, а просто поискал информацию. Нашёл много всяких программ и утилит на различных языках программирования. Всё это отмёл, пока не нашёл простые bash скрипты. Для меня было очевидно, что для решения этой задачи достаточно bash и api указанных сервисов. В итоге воспользовался вот этим репозиторием: ⇨ https://github.com/alexadam/repo-backup Очень простое и рабочее решение. Я всё своё храню в Gitlab. Сходил в настройки, выдал токен с разрешениями на чтение api и репозиториев. И использовал его в скрипте: #!/bin/sh dirname=gitlab-backup-$(date "+%Y-%m-%d-%H-%M-%S") mkdir "$dirname" cd $dirname privateToken=YOUR_ACCESS_TOKEN userName=YOUR_GITLAB_USERNAME curl --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 done echo Done! All files downloaded here: $(pwd) После запуска получаю директорию с датой в имени, где внутри все мои проекты, каждый в отдельном zip архиве. Просто и удобно. Для github решение аналогичное. Там просто апишка другая, но смысл такой же. Я до этого git clone делал по списку. Подом думаю, что я ерундой страдаю. В итоге забрал себе этот скрипт, который работает в разы быстрее и проще. #backup #git #devops