Клонировать из частного репозитория сообщества Gitlab с помощью частного токена в скрипте Python.

Я хотел бы иметь возможность клонировать частный репозиторий git, размещенный в выпуске сообщества Gitlab, предоставляя мой личный токен. Я попытался использовать библиотеку gitpython, и я могу сделать следующее:

from os.path import abspath
from git import Repo
to_path = abspath("C:\mypath\test")
Repo.clone_from("http://gitlab-ci-token:my_CI_token@myurl/testgroup/test.git", to_path)

Это работает и прекрасно клонирует репо. Проблема в том, что я хочу использовать свой личный токен, а не токен CI репозитория. И это не работает:

Repo.clone_from("http://my_login:my_private_token@myurl/testgroup/test.git", to_path)

Я даже пытался использовать свой пароль, но не смог заставить его работать.

Если я хочу использовать свой личный токен, это потому, что мой скрипт пытается клонировать все репозитории, хранящиеся в группе Gitalb (здесь testgroup), и я заранее не знаю репозитории, которые будут там, поэтому я не могу получить их токен CI в сценарий.

Я соглашусь с любым решением, позволяющим клонировать репозиторий с логином/private_token или логином/паролем без интерактивной аутентификации.


person Rbtnk    schedule 22.04.2016    source источник
comment
Именно для этого был создан доступ по SSH, поэтому подумайте об использовании ключа SSH!   -  person zmo    schedule 03.06.2016


Ответы (1)


Я не уверен, что вы имеете в виду под:

Я даже пытался использовать свой пароль, но не смог заставить его работать.

Установка вашего имени пользователя и пароля в URL-адресе должна работать:

Repo.clone_from("https://myself%40example.net:[email protected]/username/repo.git", to_path)

Кроме того, вместо того, чтобы хранить пароли в исходном коде, вам следует подумать о клонировании ваших репозиториев с помощью SSH или с использованием учетных данных вспомогательная система.

person ZeWaren    schedule 22.04.2016
comment
Это на самом деле работает с логином/паролем, если у вас нет пароля какой-то дерьмовой компании с @ внутри. - person Rbtnk; 22.04.2016