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

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

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

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

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

mirror.yml
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
Системный путь
Тип
Статистика
Количество слов
Время чтения
мин.
Размер
kB