Зеркалирование репозитория между хостингами

Зеркалирование репозитория между хостингами

В предыдущей статье Синхронизация репозитория от GitHub к GitLab я рассказал о том, как организовать синхронизацию между репозиториями #Git на разных хостингах, в частности, между #GitHub и #GitLab. В итоге, я решил сделать собственный GitHub Action, который позволяет полностью зеркалировать репозитории.

Использование

Для подключения зеркалирования, к примеру, с #GitHub на #GitLab, необходимо в исходном репозитории создать файл .github/workflows/mirror.yml, в котором указать следующее содержимое:

mirror.yml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
name: "Repository Mirror"

on:
  - push

jobs:
  mirror:
    runs-on: ubuntu-latest
    name: "Mirror"
    steps:
      - uses: pkgstore/github-action-mirror@main
        with:
          src_repo: "https://github.com/${{ github.repository }}.git"
          src_user: "${{ secrets.MIRROR_SOURCE_USER_GITHUB }}"
          src_token: "${{ secrets.MIRROR_SOURCE_TOKEN_GITHUB }}"
          dsc_repo: "https://gitlab.com/${{ github.repository }}.git"
          dsc_user: "${{ secrets.MIRROR_TARGET_USER_GITLAB }}"
          dsc_token: "${{ secrets.MIRROR_TARGET_TOKEN_GITLAB }}"
  • src_repo - URL исходного репозитория.
  • src_user - пользователь исходного репозитория.
  • src_token - токен пользователя исходного репозитория.
  • dsc_repo - URL зеркального репозитория.
  • dsc_user - пользователь зеркального репозитория.
  • dsc_token - токен пользователя зеркального репозитория.

В этом коде стоит обратить внимание на параметр target_repo. #GitLab позволяет автоматически создавать репозиторий при зеркалировании, а так как у меня адреса репозиториев совпадают между #GitHub и #GitLab, мне гораздо проще выстроить конструкцию https://gitlab.com/${{ github.repository }}.git. Переменная ${{ github.repository }} содержит имя пользователя / организации и название репозитория, и, при настройке зеркалирования репозитория на #GitHub’е, зеркало репозитория автоматически создаётся на #GitLab’е.

Авторы
Мета
Лицензия
ID файла
UUID
Системный путь
Тип
Статистика
Количество слов
Время чтения
мин.