GitHub-to-GitFlic Issue Migrator
Скрипт для автоматического переноса задач (issues) из репозиториев GitHub в репозитории GitFlic.
Поддерживает перенос следующих данных:
- Заголовок задачи
- Описание
- Статус задачи (OPEN, CLOSED, COMPLETED)
- Ответственные лица (Assignees)
Особенности
- Поддержка множественного переноса через файл
repos.txt
. - Автоматическое сопоставление статусов задач GitHub и GitFlic.
- Перенос информации об ответственных лицах (при наличии совпадения логинов).
- Хранение токенов доступа в отдельном файле
token.txt
. У токенов должен быть доступ ко всем проектам, указанным в repos.txt. - Скрипт на данный момент не переносит лейблы.
- В GitFlic не поддерживаются проблемы с пустым описанием, поэтому в случаях, когда описание проблемы из GitHub пустое, оно заполняется заголовком проблемы.
- Изменить API URL можно внутри функции
process_repos_file
.
Требования
- Python 3.8 и выше
- Установленные зависимости (см. ниже)
- Доступ к API GitHub и GitFlic с действующими токенами доступа. Создать токен GitHub можно тут.
Установка и настройка
-
Клонируйте репозиторий
git clone https://gitflic.ru/project/lab/gh-to-gf-issue-migrator.git cd gh-to-gf-issue-migrator
-
Установите зависимости
pip install -r requirements.txt
-
Заполните файл token.txt
Заполните файл следующими данными:
GITHUB_TOKEN=ваш_токен_доступа_к_GitHub GITFLIC_TOKEN=ваш_токен_доступа_к_GitFlic
-
Заполните файл repos.txt
Укажите список репозиториев для переноса в формате:
алиас_владельца_репозитория_github/алиас_репозитория_github;алиас_владельца_репозитория_gitflic/алиас_репозитория_gitflic
Пример:
github_owner_alias/myrepo;gitflic_owner_alias/myrepo github_owner_alias/myrepo2;gitflic_owner_alias/myrepo2
Использование
Запустите скрипт для переноса задач:
python main.py
Скрипт автоматически обработает все строки в repos.txt и перенесет задачи из указанных репозиториев GitHub в GitFlic. Обратите внимание, на gitflic.ru работает ограничение 500 запросов в час от пользователя, если количество issue будет свыше 500, то скрипт автоматически будет отправлять 500 запросов в час. Если количество записей менее 500, то они будут переноситься без задержки.
Автор: @dshitov
Описание
Скрипт для переноса всех issue из GitHub в GitFlic