Синхронизация репозитория от GitHub к GitLab

Синхронизация репозитория от GitHub к GitLab

Понадобилось мне на днях синхронизировать некоторые свои репозитории между #GitHub и #GitLab. Сам #GitLab имеет встроенные средства зеркалирования репозиториев от себя к другому git-хранилищу. #GitHub же не обладает такой функцией. Но эту функцию можно воссоздать при помощи #GitHub #Actions.

Для начала необходимо создать “секреты” с такими переменными:

  • GITLAB_SYNC_REPO_URL - ссылка на пустой репозиторий #GitLab.
  • GITLAB_SYNC_USER_NAME - имя пользователя #GitLab.
  • GITLAB_SYNC_USER_TOKEN - токен пользователя #GitLab. Токен создаётся в настройках аккаунта #GitLab.

Далее, в корне репозитория нужно создать файл .github/workflows/gitlab-sync.yml со следующим содержанием:

gitlab-sync.yml
name: GitLab Sync

on:
  - push
  - delete

jobs:
  sync:
    runs-on: ubuntu-latest
    name: Git Repo Sync
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - uses: wangchucheng/git-repo-sync@v0.1.0
        with:
          # Such as https://github.com/wangchucheng/git-repo-sync.git
          target-url: ${{ secrets.GITLAB_SYNC_REPO_URL }}
          # Such as wangchucheng
          target-username: ${{ secrets.GITLAB_SYNC_USER_NAME }}
          # You can store token in your project's 'Setting > Secrets' and reference the name here. Such as ${{ secrets.ACCESS_TOKEN }}
          target-token: ${{ secrets.GITLAB_SYNC_USER_TOKEN }}

На этом всё. Теперь при коммите в репозиторий, #GitHub будет запускать Action и автоматически синхронизировать изменения с репозиторием на #GitLab.

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