Я хочу клонировать репозиторий gitlab без запроса моего сценария автоматизации, используя свой личный токен из моей учетной записи gitlab.
Может ли кто-нибудь предоставить мне образец?
Я знаю, что могу сделать это с помощью пользователя и пароля:
git clone https://" + user + ":" + password + "@" + gitlaburl;
и я знаю, что это возможно с помощью ключа ssh
но обоих вариантов недостаточно
git clone https://<token-name>:<token>@gitlaburl
Ответы:
Я знаю, что это старый, но вот как вы это делаете:
git clone https://oauth2:ACCESS_TOKEN@somegitlab.com/vendor/package.git
источник
api
токен. Aread_user
может читать только репо под/users
ssh
?Сделать это можно так:
источник
В gitlab много токенов:
Я тестировал только токен персонального доступа с помощью GitLab Community Edition 10.1.2 , пример:
или используя имя пользователя и пароль:
или введя свой пароль:
Но частный токен, похоже, не может работать.
источник
Используйте токен вместо пароля (токен должен иметь область api для разрешения клонирования):
Протестировано против 11.0.0-ee.
источник
Вы можете использовать токен runners для конвейеров CI / CD вашего репозитория GitLab.
Где
<runners token>
можно получить:или нажав на
Settings icon -> CI/CD Pipeline
и найдите на странице жетон бегунов.Скриншот расположения токена бегунов:
источник
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Если у вас уже есть репозиторий и вы только что изменили способ аутентификации на MFA, вы можете изменить свой
remote origin
HTTP URI для использования нового токена api следующим образом:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
И вам вообще не нужно повторно клонировать репозиторий.
источник
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
у меня тоже работал, спасибо !! Я отвечу на эту тему своим правильным решением.Один из возможных способов - использовать токен развертывания ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). После создания токена используйте:
как указано в ссылке выше.
источник
На данный момент
8.12
клонирование с использованиемHTTPS
токена + runner больше не поддерживается, как упоминалось здесь :источник
Внутри конвейера GitLab CI
CI_JOB_TOKEN
у меня работает переменная среды:Источник: Gitlab Docs
Кстати, установка этой переменной
.gitlab-ci.yml
помогает отлаживать ошибки.источник
Я пошел по SSH, используя настройку ключей развертывания для каждого проекта (только чтение)
источник
Чтобы мое будущее было счастливым: RTFM - вообще не используйте gitlab-ci-token, а только
.netrc
файл.Есть пара важных моментов:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
внутри файла!https://gitlab.com/whatever/foobar.com
- неssh://git@foobar
, неgit+ssh://
, неgit+https://
. Вам также не нужны никакие CI-TOKEN в URL.git clone [url from step 4]
Предыстория: у меня есть
когда я пытался заставить Ansible + Gitlab + Docker работать так, как я это себе представляю. Теперь это работает.
источник
Настройка URL-адреса не требуется. Просто используйте конфигурацию git для токенов gitlab, таких как
расширенное описание здесь
источник
многие ответы выше близки, но они получают неверный
username
синтаксис дляdeploy
токенов. Существуют и другие типы токенов, ноdeploy token
это то, что предлагает gitlab (по крайней мере, около 2020+) для каждого репо. чтобы разрешить индивидуальный доступ, включая доступ только для чтения.из a
repository
(илиgroup
) найдитеsettings
->repository
->deploy tokens
. Создайте новый. Ausername
иtoken
поле созданы. Поusername
умолчанию НЕ является фиксированным значением; это уникально для этого токена.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
протестировано на общедоступной бесплатной учетной записи gitlab.com.
источник