Бекап для 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.

Ссылки по теме:

Теги: softwarefeed