使用Python脚本中的私有令牌从Gitlab社区私有仓库中克隆

时间:2016-04-22 09:05:58

标签: python gitlab gitpython

我希望能够克隆在Gitlab社区版上托管的私有git存储库,提供我的私有令牌。 我尝试使用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脚本中的令牌。

我将采用任何解决方案,让我使用Login / private_token或登录/密码克隆存储库而无需交互式身份验证。

1 个答案:

答案 0 :(得分:0)

我不确定你的意思:

  

我甚至试图使用我的密码,但也无法使用它。

在网址中设置用户名和密码应该有效:

Repo.clone_from("https://myself%40example.net:password@gitlab.example.com/username/repo.git", to_path)

此外,您应该考虑使用SSH或使用credential helper系统克隆您的存储库,而不是将密码存储在源代码中。