Чтобы настроить зеркалирование репозитория, на странице проекта перейдите в «Настройки» → «Репозиторий» → «Зеркалирование репозиториев».

Если репозиторий пуст, сначала выполните его импорт. При зеркалировании запускаются все хуки, и загрузка большого репозитория может существенно нагрузить систему.

Настройка pull-зеркалирования репозитория

Для одного проекта можно настроить только одну задачу pull-зеркалирования. Задач push-зеркалирования может быть несколько.

Чтобы настроить pull-зеркалирование репозитория, выполните следующие шаги:

  1. Перейдите на страницу проекта:

    • Откройте проект в интерфейсе Deckhouse Code.
    • В левом меню выберите «Настройки» → «Репозиторий».
    • Прокрутите до секции «Зеркалирование репозиториев».
  2. Укажите URL-адрес репозитория. Учетные данные в URL-адресе игнорируются. Для авторизации используйте поля в блоке «Метод аутентификации» ниже.

  3. Настройте аутентификацию:

    • Если подключение осуществляется по HTTP(S), в поле «Метод аутентификации» выберите «Имя пользователя и пароль» и укажите:
      • «Имя пользователя» — имя пользователя;
      • «Пароль» — пароль или токен доступа.
    • Если используется SSH-зеркалирование, укажите имя пользователя (обычно git). После сохранения конфигурации Deckhouse Code сгенерирует SSH-ключ, который будет использоваться для доступа.

Работа расписания и обработка ошибок

  • Назначение задач pull-зеркалирования выполняется один раз в час (Projects::PullMirrorScheduleWorker).
  • Каждое зеркало обновляется не чаще одного раза в 6 часов.
  • Если задача зеркалирования завершилась с ошибкой, следующая попытка будет выполнена при следующем запуске Projects::PullMirrorScheduleWorker. Максимальное количество попыток при ошибках — 5. Нажатие кнопки “Обновить сейчас” сбрасывает счётчик неуспешных попыток.
  • Если задача Sidekiq завершилась аварийно (например, при перезапуске Sidekiq), её статус будет обновлён через 3 часа, после чего будет добавлена новая попытка синхронизации.

Особенности работы с LFS (Large File Storage)

При pull-зеркалировании LFS-объекты загружаются только в том случае, если LFS включён в целевом проекте Deckhouse Code.