Зеркалирование open-source проектов с GutHub на свою бесплатную инсталляцию GitLab

Зеркалирование open-source проектов с GutHub на свою бесплатную инсталляцию GitLab

Дано — установленный на собственной виртуальной машине бесплатный GitLab.

Идея — скопировать в свой gitlab проекты с github.

Мотивация — иметь свою копию каких-то интересных проектов на случай каких-либо блокировок, наполнение своего гитлаба проектами, получение навыков в работе с гитлабом.

Возьмем в качестве подопытного проекта на github открытый проект spring-kafka (https://github.com/spring-projects/spring-kafka).

Для удобства, для всех зеркалируемых проектов я создал отдельную группу проектов в Gitlab, которую назвал mirrors. Также, для проектов, которые имеют какую то экосистему проектов вокруг себя (тот же spring состоит из множества репозиториев) и их желательно держать вместе, я создаю дополнительные подгруппы в рамках группы mirrors. Например, для проектов spring была создана подгруппа spring. После этого, все склонированные проекты spring будут располагаться по адресу http://<gitlab>/mirrors/spring/.

1. Создаем новый проект и выбираем шаблон Import project.

2. На открывшейся странице выбираем откуда мы планируем импортировать проект. В данном случае нам нужна кнопка Repository by URL.

3. Далее заполняем поле Git repository URL с адресом проекта на github.com, который мы хотим импортировать. Тут нужно иметь в виду, что если проект открытый, то нам достаточно ввести только адрес проекта, а если проект закрытый, то необходимо также ввести логин/пароль для авторизации (для случаев импорта каких-то личных проектов, например).

Gitlab определит по адресу репозитория проект и предложит его имя (поле Project name) и сформирует url для проекта в рамках gitlab (поля Project URL + поле Project slug). В поле Project URL опционально можно выбрать группу, в которую мы поместим импортируемый проект. Если не выбирать группу на данном этапе, то потом это можно осуществить в админке проекта в gitlab.

4. Нажимаем кнопку Create project. Запустится процесс клонирования github-репозитория (будет выполнен git clone <rep>)

5. По окончанию клонирования (процесс может занять продолжительное время в зависимости от размера github-проекта) откроется страница проекта, будет доступна история, ветки и тд. Все будет выглядеть так, как будто данный проект разрабатывается в нашем gitlab 🙂

Все замечательно, но как теперь получать изменения, сделанные в репозитории на github? Для этого прочтите мою статью Как сделать mirror github-репозитория на бесплатной версии selfhosted GitLab

Back To Top