Я хочу использовать curl
для загрузки своего частного репо в GitLab. Я знаю, что могу использовать Gitlab API, но по какой-то причине он не работает.
Возможно ли это? Когда я пытаюсь сделать это таким образом, он всегда возвращает страницу входа.
Я хочу использовать curl
для загрузки своего частного репо в GitLab. Я знаю, что могу использовать Gitlab API, но по какой-то причине он не работает.
Возможно ли это? Когда я пытаюсь сделать это таким образом, он всегда возвращает страницу входа.
Это возможно, просто выполните следующие действия:
Сначала вам нужно создать "токен личного доступа":
Проверьте " api Доступ к аутентифицированному API-интерфейсу пользователя
Нажмите "Создать токен доступа"
Убедитесь, что вы сохранили маркер где-то в безопасности, вы больше не сможете его просматривать.
Теперь, когда у вас есть свой "токен личного доступа", вам нужно получить идентификатор вашего проекта для использования API:
Получить идентификатор проекта из json.
Теперь вы можете позвонить:
wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX
И это загрузит ваш проект в виде файла .tar.gz
.
Вы можете, но вам нужно пройти аутентификацию (как в API Gitlab: как создать частный токен)
curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass'
Затем с закрытый токен:
curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects"
Или, в вашем случае, получите файлы репозитория:
GET /projects/:id/repository/files
Или загрузите непосредственно один файл.
Вы можете использовать закрытый токен, который является вашим (найденным в "настройках профиля" ) для доступа к любому ресурсу. Просто перейдите к файлу репозитория, который вы хотите загрузить, скопируйте ссылку "raw" file и добавьте? Private_token =...
Пример:
curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi
Если вам нужно сделать это при запуске CI, и ваше частное репо находится на одном сервере, вы сможете использовать git subodules одновременно клонировать другие репозитории. Использование ${CI_JOB_TOKEN}
еще один вариант с GitLab 8.12.