使用GitPython在代理后克隆存储库

3
我目前正在进行一个项目,该项目使用GitPython来克隆存储库。
阅读了文档后,没有关于如何克隆位于http代理后面的存储库的内容。
如果我要使用git命令行,我可以在全局.gitconfig中设置http.proxy选项。
有没有办法通过GitPython来做到这一点?
理想情况下,我不想干扰全局.gitconfig。也许使用git config unset就足够了。

你解决了吗? - Oni1
2个回答

3
从GitPython文档中关于clone方法的说明中,它说:
**kwargs “所有剩余的关键字参数都会传递给 git-clone 命令”
我尝试了以下内容,它对我起作用了。
from git import Repo

Repo.clone_from(GIT_URL, DESTINATION, config="http.proxy='http://proxy_host:proxy_port'")

0

主要思想是不需要使用''

Repo.clone_from(GIT_URL, DESTINATION, config="http.proxy=http://proxy_host:proxy_port")

我的代码示例可以正常工作:

# [PROXY]

proxy_cfg = None

if proxy_list is not None:
    proxy_ip_port = proxy_list[random.randrange(0, len(proxy_list))]
    proxy_cfg = f"http.proxy={proxy_ip_port}"

print(f'\n[debug]: {proxy_cfg}')    

try:
    Repo.clone_from(repo_url, repo_savepath, config=proxy_cfg)
except git.exc.GitError as ex1:
    print(f'\n[EXCEPTION-{self.tot_errs}]: {proc_name}. ErrMsg: {ex1}\n')
except Exception as ex:
    self.tot_errs += 1
    print(f'\n[Error-{self.tot_errs}]: {proc_name}. ErrMsg: {ex}\n')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接