Перейти к содержимому
GitRiverGitRiver
EN
Навигация

Импорт и зеркалирование

Как импортировать репозитории из других платформ и настроить автоматическое зеркалирование

GitRiver позволяет импортировать существующие репозитории из других платформ и настроить автоматическое зеркалирование для синхронизации.

Импорт репозитория

Поддерживаемые источники

Источник Что импортируется
GitHub Код, задачи, запросы на слияние, метки, вехи, релизы, Wiki
GitLab Код, задачи, мерж-реквесты, метки, вехи, релизы, Wiki
Bitbucket Код, задачи, запросы на слияние
Gitea Код, задачи, запросы на слияние, метки, вехи, релизы, Wiki
Произвольный URL Только код (git clone)

Пошагово

  1. Нажмите «+» в верхней панели -> «Импорт»
  2. Выберите источник (GitHub, GitLab, Bitbucket, Gitea)
  3. Введите токен доступа - персональный токен с правами чтения репозиториев на исходной платформе
  4. Для самостоятельно размещённых установок укажите адрес установки (например, https://gitlab.company.com)
  5. Нажмите «Загрузить репозитории» - появится список доступных репозиториев
  6. Выберите репозиторий или укажите URL вручную
  7. Укажите имя в GitRiver (по умолчанию - оригинальное)
  8. Выберите, что импортировать:
    • Задачи
    • Метки
    • Вехи
    • Пулл-реквесты / мерж-реквесты
    • Релизы
    • Wiki
  9. Опционально: «Создать зеркало» - после импорта настроить автоматическую синхронизацию
  10. Нажмите «Начать импорт»

Что переносится у пулл-реквестов

Пулл-реквесты переносятся вместе с историей ревью: исходный номер, состояние (открыт, закрыт, слит), обе ветки, метки, назначенные, даты закрытия и слияния, общие и построчные комментарии (включая ответы в ветке обсуждения) и вердикты ревью. У GitLab вердиктов как таковых нет - переносятся одобрения.

Отчёт об импорте

Импорт выполняется в фоне. Ход и итог видны в настройках репозитория, раздел «Отчёт об импорте»: счётчики по этапам и перечень потерь. Потери называются явно, а не выясняются потом:

  • автор с источника не найден среди пользователей GitRiver - им становится запустивший импорт (сопоставление идёт по совпадению имени пользователя);
  • назначенный или ревьюер не найден - не переносится;
  • запрос пришёл из форка: репозиторий-источник в GitRiver не заводится, поэтому сравнение изменений по такому запросу недоступно;
  • построчное замечание, которое источник уже не может привязать к строке, переносится путём к файлу без номера строки;
  • снятое ревью сводится к «прокомментировано».

Повторный запуск переноса в тот же репозиторий дублей не создаёт: пулл-реквест с уже занятым номером пропускается и попадает в отчёт.


Pull-зеркалирование

Pull-зеркало периодически скачивает изменения из внешнего репозитория в GitRiver. Полезно, когда основной репозиторий хранится на другой платформе, а GitRiver используется как резервная копия или для CI.

Настройка

  1. Откройте репозиторий -> «Настройки» -> раздел «Зеркало»
  2. Нажмите «Создать зеркало»
  3. Выберите направление: Pull (получение)
  4. Укажите:
    • URL удалённого репозитория - https://github.com/owner/repo.git
    • Токен - для доступа к приватным репозиториям (опционально)
    • Интервал синхронизации - от 5 минут до 7 дней
  5. Нажмите «Создать»

Как работает

GitRiver автоматически выполняет git fetch из удалённого репозитория с заданным интервалом. Все новые коммиты, ветки и теги появляются в GitRiver.

Ручная синхронизация

Нажмите «Синхронизировать» на странице зеркала для немедленной синхронизации, не дожидаясь интервала. Нулевой интервал означает «только вручную». Если синхронизация этого зеркала уже идёт, запрос отвечает 409: двух git fetch в один репозиторий не бывает.

Статус

На странице зеркала видно: время последней синхронизации, статус (активно/отключено), ошибки если есть.


Push-зеркалирование

Push-зеркало автоматически отправляет изменения из GitRiver во внешний репозиторий. Полезно для резервной копии или публикации кода на другой платформе.

Настройка

  1. Откройте репозиторий -> «Настройки» -> раздел «Зеркало»
  2. Нажмите «Создать зеркало»
  3. Выберите направление: Push (отправка)
  4. Укажите:
    • URL удалённого репозитория - с авторизацией в URL (например, https://token@github.com/owner/repo.git)
    • Интервал синхронизации - от 5 минут до 7 дней
  5. Нажмите «Создать»

Как работает

При каждой синхронизации GitRiver выполняет git push во внешний репозиторий. Все коммиты, ветки и теги отправляются автоматически.


Удаление зеркала

На странице «Настройки» -> «Зеркало» -> кнопка «Удалить зеркало». Синхронизация прекращается. Данные в репозитории не удаляются.