Бекап для Github
Вцелом выгрузить данные из Github не так уж и сложно - нужен ключ для доступа к API и скрипт для выгрузки всех данных. Я переизобретать скрипт не стал и взял уже готовый скрипт, написанный на Питоне, - github-backup. Пример опций для выгрузки кода, тикетов, сниппетов кода, пулл-реквестов, релизов, вики страниц выглядит таким образом:
github-backup -u ligurio \
-t API_KEY \
--bare \
--followers \
--following \
--gists \
--incremental \
--issue-comments \
--issues \
--private \
--pull-comments \
--pulls \
--releases \
--repositories \
--starred \
--starred-gists \
--watched \
--wikis \
-o /home/sergeyb/sources/github-backup ligurio
Запускаю этот скрипт перед созданием бекапа на своём ноутбуке, поэтому сначала у меня эти данные сохраняются локально, а потом создаётся резервная копия в удалённом хранилище.
Вроде теперь я застрахован от потери данных в случае блокировки профиля на Github. Но что делать с этими данными после блокировки. С кодом всё понятно - его легко можно перенести на другой хостинг или запустить cвой на базе cgit или Gitea, потому что здесь используется формат хранилища Git. А для тикетов и других данных? У моих проектов не так много пользователей, но тикеты я использую для планирования задач в своих репозиториях. Из всех данных, которые хранятся на Гитхабе, код (основная ветка, фиче-ветки) и тикеты представляют для меня самую большую ценность.
Вот тут я вспомнил про проект для хранения тикетов в хранилище Git - git-bug. Как известно, формат Git представляет из себя связанные объекты, которые могут хранить всё что угодно, а не только код. Поэтому никто не мешает хранить там, к примеру, данные тикетов. git-bug позволяет синхронизировать данные из Github Issues в репозиторий Git и обратно, просматривать тикеты в терминале и в браузере.
Для синхронизации тикетов я использую воркфлоу в Github Actions, который запускается по расписанию. Он поддерживает состояние тикетов в Git репозитории в актуальном состоянии и пушит данные в репозиторий. Так что при потере доступа к Github у меня останется доступ к тикетам и возможность с ними работать c помощью git-bug.