2 месяца назад История
    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 с ошибкой