8 месяцев назад История
README.md

GitHub-to-GitFlic Migrator

Скрипт для автоматического переноса задач (issues) и запросов на слияние (merge requests) из репозиториев GitHub в репозитории GitFlic.

Поддерживаемые данные

Перенос задач:

  • Заголовок задачи
  • Описание
  • Статус задачи (OPEN, CLOSED, COMPLETED)
  • Ответственные лица (Assignees)

Перенос запросов на слияние (Merge Requests):

  • Заголовок
  • Описание
  • Исходная ветка (source branch)
  • Целевая ветка (target branch)

Особенности

  • Поддержка множественного переноса через файл repos.txt со списком репозиториев.
  • Возможность указать тип переноса: только задачи (issues), только запросы на слияние (mr), или всё сразу.
  • Возможность указать URL для запросов к GitFlic API.
  • Поддерживается настройка количества запросов в час для работы с GitFlic API, чтобы избежать ошибок превышения лимита.
  • Автоматическое сопоставление статусов issue.
  • Перенос информации об ответственных лицах issue (при наличии совпадения логинов).
  • Скрипт на данный момент не переносит лейблы.
  • API GitHub при получении issue отдает также и PRы, скрипт их пропускает при переносе.
  • В GitFlic не поддерживаются проблемы с пустым описанием, поэтому в случаях, когда описание проблемы из GitHub пустое, оно заполняется заголовком проблемы.
  • Скрипт извлекает из GitHub только те MR, ветки которых есть в проекте. Перед созданием MR скрипт также проверяет, существуют ли ветки (sourceBranch и targetBranch) в репозитории GitFlic. Если хотя бы одна ветка отсутствует, MR пропускается.

Требования

  • Python 3.8 и выше
  • Установленные зависимости (см. ниже)
  • Доступ к API GitHub и GitFlic с действующими токенами доступа. Создать токен GitHub можно тут.

Установка и настройка

  1. Клонируйте репозиторий

    git clone https://gitflic.ru/project/dshitov/gh-to-gf-migrator.git
    cd gh-to-gf-migrator
    
  2. Установите зависимости

    pip install -r requirements.txt
    
  3. Заполните файл config.txt

    Заполните файл следующими данными:

    GITHUB_TOKEN=ваш_токен_доступа_к_GitHub
    GITFLIC_TOKEN=ваш_токен_доступа_к_GitFlic
    GITFLIC_URL=https://api.gitflic.ru # URL для запросов в GitFlic API, пример для Self-Hosted GitFlic - http://localhost:8080/rest-api
    GITFLIC_RATE_LIMIT=500  # Максимальное количество запросов в час. 0 = без ограничений.
    TRANSFER_TYPE=all  # Указываем что нужно переносить. Возможные значения: issues, mr, all
    
  4. Заполните файл 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
Описание

Скрипт для переноса проблем и запросов на слияние из GitHub в GitFlic

Релизы
v2.0 2024-12-31
Конвейеры
0 успешных
0 с ошибкой