Навигация
Импорт и зеркалирование
Как импортировать репозитории из других платформ и настроить автоматическое зеркалирование
GitRiver позволяет импортировать существующие репозитории из других платформ и настроить автоматическое зеркалирование для синхронизации.
Импорт репозитория
Поддерживаемые источники
| Источник | Что импортируется |
|---|---|
| GitHub | Код, задачи, запросы на слияние, метки, вехи, релизы, Wiki |
| GitLab | Код, задачи, мерж-реквесты, метки, вехи, релизы, Wiki |
| Bitbucket | Код, задачи, запросы на слияние |
| Gitea | Код, задачи, запросы на слияние, метки, вехи, релизы, Wiki |
| Произвольный URL | Только код (git clone) |
Пошагово
- Нажмите «+» в верхней панели -> «Импорт»
- Выберите источник (GitHub, GitLab, Bitbucket, Gitea)
- Введите токен доступа - персональный токен с правами чтения репозиториев на исходной платформе
- Для самостоятельно размещённых установок укажите адрес установки (например,
https://gitlab.company.com) - Нажмите «Загрузить репозитории» - появится список доступных репозиториев
- Выберите репозиторий или укажите URL вручную
- Укажите имя в GitRiver (по умолчанию - оригинальное)
- Выберите, что импортировать:
- Задачи
- Метки
- Вехи
- Пулл-реквесты / мерж-реквесты
- Релизы
- Wiki
- Опционально: «Создать зеркало» - после импорта настроить автоматическую синхронизацию
- Нажмите «Начать импорт»
Что переносится у пулл-реквестов
Пулл-реквесты переносятся вместе с историей ревью: исходный номер, состояние (открыт, закрыт, слит), обе ветки, метки, назначенные, даты закрытия и слияния, общие и построчные комментарии (включая ответы в ветке обсуждения) и вердикты ревью. У GitLab вердиктов как таковых нет - переносятся одобрения.
Отчёт об импорте
Импорт выполняется в фоне. Ход и итог видны в настройках репозитория, раздел «Отчёт об импорте»: счётчики по этапам и перечень потерь. Потери называются явно, а не выясняются потом:
- автор с источника не найден среди пользователей GitRiver - им становится запустивший импорт (сопоставление идёт по совпадению имени пользователя);
- назначенный или ревьюер не найден - не переносится;
- запрос пришёл из форка: репозиторий-источник в GitRiver не заводится, поэтому сравнение изменений по такому запросу недоступно;
- построчное замечание, которое источник уже не может привязать к строке, переносится путём к файлу без номера строки;
- снятое ревью сводится к «прокомментировано».
Повторный запуск переноса в тот же репозиторий дублей не создаёт: пулл-реквест с уже занятым номером пропускается и попадает в отчёт.
Pull-зеркалирование
Pull-зеркало периодически скачивает изменения из внешнего репозитория в GitRiver. Полезно, когда основной репозиторий хранится на другой платформе, а GitRiver используется как резервная копия или для CI.
Настройка
- Откройте репозиторий -> «Настройки» -> раздел «Зеркало»
- Нажмите «Создать зеркало»
- Выберите направление: Pull (получение)
- Укажите:
- URL удалённого репозитория -
https://github.com/owner/repo.git - Токен - для доступа к приватным репозиториям (опционально)
- Интервал синхронизации - от 5 минут до 7 дней
- URL удалённого репозитория -
- Нажмите «Создать»
Как работает
GitRiver автоматически выполняет git fetch из удалённого репозитория с заданным интервалом. Все новые коммиты, ветки и теги появляются в GitRiver.
Ручная синхронизация
Нажмите «Синхронизировать» на странице зеркала для немедленной синхронизации, не дожидаясь интервала. Нулевой интервал означает «только вручную». Если синхронизация этого зеркала уже идёт, запрос отвечает 409: двух git fetch в один репозиторий не бывает.
Статус
На странице зеркала видно: время последней синхронизации, статус (активно/отключено), ошибки если есть.
Push-зеркалирование
Push-зеркало автоматически отправляет изменения из GitRiver во внешний репозиторий. Полезно для резервной копии или публикации кода на другой платформе.
Настройка
- Откройте репозиторий -> «Настройки» -> раздел «Зеркало»
- Нажмите «Создать зеркало»
- Выберите направление: Push (отправка)
- Укажите:
- URL удалённого репозитория - с авторизацией в URL (например,
https://token@github.com/owner/repo.git) - Интервал синхронизации - от 5 минут до 7 дней
- URL удалённого репозитория - с авторизацией в URL (например,
- Нажмите «Создать»
Как работает
При каждой синхронизации GitRiver выполняет git push во внешний репозиторий. Все коммиты, ветки и теги отправляются автоматически.
Удаление зеркала
На странице «Настройки» -> «Зеркало» -> кнопка «Удалить зеркало». Синхронизация прекращается. Данные в репозитории не удаляются.