在尝试克隆不存在的远程仓库时,防止GitPython请求凭据

时间:2017-06-11 10:52:49

标签: python gitpython

在下面的程序片段中,我从远程位置克隆现有的repo,它可以正常工作。

然后我尝试克隆一个不存在的repo,这次调用git.Repo.clone_from()从键盘请求一个名字和一个密码。

在我的应用程序中非常不希望在等待键盘输入时阻塞,因此如果repo不存在,我希望调用git.Repo.clone_from()来抛出异常。

有没有办法导致这种情况发生,或以某种方式检测在我尝试克隆它之前是否在现有网址上存在git repo?

import git, shutil

DIRECTORY = '/tmp/clone'


def clone(url):
    print(url)
    shutil.rmtree(DIRECTORY, ignore_errors=True)
    git.Repo.clone_from(url=url, to_path=DIRECTORY, b='master')


clone('https://github.com/ManiacalLabs/BiblioPixelAnimations.git/')
clone('https://github.com/ManiacalLabs/NONEXISTENT.git/')

1 个答案:

答案 0 :(得分:2)

使用空的用户名和密码应该可以解决问题

clone('https://:@github.com/ManiacalLabs/BiblioPixelAnimations.git/')
clone('https://:@github.com/ManiacalLabs/NONEXISTENT.git/')

请注意:@之前github.com