Зеркалирование GitHub -> GitLab
В этом репозитории хранится Github Actions workflow, который поддерживает зеркало GitHub репозитория на GitLab.
Как использовать workflow, чтобы настроить зеркало для вашего репозитория:
-
Убедитесь, что у вашего пользователя статус
Maintainer
илиOwner
на уровне группы. Если нет, попросите администратора изменить статус. - Импортируйте проект на GitLab:
- Перейдите на https://gitlab.actcognitive.org/
- В правом верхнем углу нажмите на
New project
- Выберите
Import project
- Выберите
GitHub
- Введите ваш
access token
(его можно сгенерировать по инструкции, название может быть любым, срок действия обычно выставляют до одного года, средиscopes
обязательно надо выбратьrepo
) - Найдите в списке ваш проект
- Задайте рядом с ним вашу группу на GitLab (для проектов NSS Lab используйте ITMO-NSS-team)
- Нажмите
Import
- Уберите ветку main из списка защищённых:
- На GitLab откройте ваш проект
- Откройте
Settings
=>Repository
- В разделе
Protected branches
найдите в списке веткуmain
и нажмитеUnprotect
- Задайте секреты
GITLAB_USER
иGITLAB_PASSWORD
в вашем репозитории на GitHub. Необходимо использовать настоящие логин и пароль от GitLab. Если у вас несколько открытых репозиториев внутри одной организации, можно задать секреты на уровне организации, тогда все открытые репозитории их унаследуют. Для приватных всегда секреты надо задавать на уровне репозитория.- Откройте ваш репозиторий/организацию
- Откройте раздел
Settings
- Слева выберите
Security
=>Secrets
=>Actions
- Создайте секреты
- В репо на GitHub создайте файл
/.github/workflows/mirror_repo_to_gitlab.yml
с таким содержанием: ``` name: Mirror repo to GitLab
on: [push, pull_request, delete]
jobs:
call-nss-ops-mirror-workflow:
uses: aimclub/open-source-ops/.github/workflows/mirror-repo.yml@master
with:
GITLAB_URL: ‘
-
Не забудьте подставить нужное значение в
GITLAB_URL
. -
Параметр
uses: aimclub/open-source-ops/.github/workflows/mirror-repo.yml@master
менять НЕ надо.
Каждый push в репозиторий будет автоматически запускать этот action. Все commit-ы и ветки будут синхронизованы автоматически. PR-ы, issue и wiki НЕ будут синхронизированы.
При импорте репозитория на GitLab через UI, issue и PR-ы также будут скопированы, но все дальнейшие их изменения НЕ будут синхронизироваться.
Return to Homepage