Я никогда не мог найти конечную точку 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 вызывает пулл. Это можно сделать и через веб-интерфейс.
person
user278978
schedule
22.02.2019