Загрузите приватный репозиторий GitLab
Я хочу использовать curl
для загрузки своего частного репо в GitLab. Я знаю, что могу использовать Gitlab API, но по какой-то причине он не работает.
Возможно ли это? Когда я пытаюсь сделать это таким образом, он всегда возвращает страницу входа.
Ответы
Ответ 1
Это возможно, просто выполните следующие действия:
-
Сначала вам нужно создать "токен личного доступа":
- Перейдите в Профиль > Настройки > Токены доступа.
- Введите имя для своего "Того персонального доступа".
-
Проверьте " api Доступ к аутентифицированному API-интерфейсу пользователя
![Personal Access Tokens]()
-
Нажмите "Создать токен доступа"
- Страница перезагрузит и сохранит ваш новый токен.
-
Убедитесь, что вы сохранили маркер где-то в безопасности, вы больше не сможете его просматривать.
![New "Personal Access Token"]()
-
Теперь, когда у вас есть свой "токен личного доступа", вам нужно получить идентификатор вашего проекта для использования API:
-
Теперь вы можете позвонить:
wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX
И это загрузит ваш проект в виде файла .tar.gz
.
Ответ 2
Вы можете, но вам нужно пройти аутентификацию (как в 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
Или загрузите непосредственно один файл.
Ответ 3
Вы можете использовать закрытый токен, который является вашим (найденным в "настройках профиля" ) для доступа к любому ресурсу. Просто перейдите к файлу репозитория, который вы хотите загрузить, скопируйте ссылку "raw" file и добавьте? Private_token =...
Пример:
curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi
Ответ 4
Если вам нужно сделать это при запуске CI, и ваше частное репо находится на одном сервере, вы сможете использовать git subodules одновременно клонировать другие репозитории. Использование ${CI_JOB_TOKEN}
еще один вариант с GitLab 8.12.