Я никогда не мог найти конечную точку API для URL зеркального отображения.Вы можете, вроде, взломать это через базу данных, но я не мог понять, как скрыть токен удаленного входа, который я использовал (для BitBucket), из базы данных.Когда вы переходите через веб-интерфейс, он должен зашифровать его или поместить в другое место, кроме import_url.Во всяком случае, вот что я изменил, чтобы установить зеркалирование для некоторых новых проектов.Вы делаете это из консоли gitlab-psql.
Опять же, просто хочу повторить, что URL, включая пароль, будет выставлен в БД, и вы, вероятно, не хотите, чтобы это было в долгосрочной перспективе.В моем случае я делал первоначальный импорт более 100 репозиториев из BitBucket, где мы хотели отключить зеркалирование через пару недель.
Вам понадобится идентификатор проекта GitLab.
UPDATE projects SET import_type = 'bare_repository' WHERE id=123;
UPDATE projects SET import_url = 'https://[user]:[API token]@bitbucket.org/path/to/repo.git' WHERE id=123;
UPDATE projects SET mirror_user_id = '21' WHERE id=123;
UPDATE projects SET mirror = 't' WHERE id=123;
UPDATE projects SET only_mirror_protected_branches = 'f' WHERE id=123;
UPDATE projects SET mirror_overwrites_diverged_branches = 'f' WHERE id=123;
UPDATE project_mirror_data SET next_execution_timestamp = '2018-07-01 00:42:47.701103' WHERE project_id=123;
curl --header "PRIVATE-TOKEN:[your_gitlab_private_token]" --request POST https://gitlab.yourdomain.com/api/v4/projects/123/mirror/pull
Примечания:
- Возможно, mirror_user_id - это вы сами.
- Элемент next_execution_timestamp, по-видимому, не может быть пустым, вставьте туда любую дату.
- Вызов curlвызывает тягу.Вы также можете сделать это через веб-интерфейс.