Зеркалирование
Зеркалирование
Зеркалирование из внешнего сервиса в GitVerse
Ограниченный доступ
Пользователи имеют возможность создавать свои зеркала репозиториев.
Info
Синхронизация зеркала с оригинальным репозиторием происходит каждые 8 часов.
Для создания зеркала при импорте репозитория отметьте чекбокс Сделать репозиторий зеркалом.
На странице зеркала репозитория под названием репозитория будет отображаться информация о том, что это зеркало, и ссылка на оригинальный репозиторий.
Зеркалирование из GitVerse в сторонние сервисы
Ограниченный доступ
Зеркалирование из GitVerse в GitHub
Для зеркалирования используется CI/CD: по событию push в репозитории запускается скрипт, выполняющий git push --force в репозиторий на GitHub.
Warning
git push --forceперезаписывает все изменения в целевом репозитории на GitHub при каждом коммите в репозиторий на GitVerse.
-
Создайте на GitHub пустой репозиторий, в который будут зеркалироваться изменения.
-
Создайте персональный токен доступа GitHub с отмеченной опцией
public_repo. -
Включите CI/CD в настройках зеркалируемого репозитория на GitVerse.
-
Создайте секреты:
- GH_MIRROR_ACTOR — имя пользователя на GitHub.
- GH_MIRROR_REPO — наименование репозитория на GitHub, созданное на шаге 1.
- GH_MIRROR_TOKEN — персональный токен GitHub, созданный на шаге 2.
-
Создайте в директории .gitverse/workflows/ вашего репозитория на GitVerse mirror_to_gh.yaml файл следующего содержания:
name: Mirror Repository
on:
push:
branches:
- '*' # Зеркалировать все ветки
tags:
- '*' # Зеркалировать все теги
jobs:
mirror:
runs-on: ubuntu-cloud-runner
permissions:
contents: write # Требуется для force push
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Полная история коммитов
- name: Configure Git
run: |
git config --global user.name "Your Name"
git config --global user.email "Your e-mail"
- name: Mirror to Remote
env:
TARGET_REPO: "https://${{ secrets.GH_MIRROR_ACTOR }}:${{ secrets.GH_MIRROR_TOKEN }}@github.com/${{ secrets.GH_MIRROR_ACTOR }}/${{ secrets.GH_MIRROR_REPO }}"
run: |
# Добавляем целевой репозиторий как remote
git remote add target $TARGET_REPO
# Синхронизируем все ветки и теги
git push --mirror --force target
- Убедитесь, что изменения появились в целевом репозитории.