git clone使用GitPython库

时间:2015-07-23 08:23:14

标签: ssl gitpython

如何使用GitPython库克隆已禁用的SSL检查。以下代码......

import git
x = git.Repo.clone_from('https://xxx', '/home/xxx/lala')

...产生此错误:

Error: fatal: unable to access 'xxx': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

我知道"导出GIT_SSL_NO_VERIFY = 1",但是如何在python库中实现它?

2 个答案:

答案 0 :(得分:2)

以下两种方法已经使用GitPython 2.0.8进行了测试,但至少应该从1.0.2开始(来自doc)。

正如@Byron所建议的那样:

git.Repo.clone_from(
  'https://example.net/path/to/repo.git',
  'local_destination',
  branch='master', depth=1,
  env={'GIT_SSL_NO_VERIFY': '1'},
)

正如@Christopher所建议的那样:

git.Repo.clone_from(
  'https://example.net/path/to/repo.git',
  'local_destination',
  branch='master', depth=1,
  config='http.sslVerify=false',
)

答案 1 :(得分:0)

GIT_SSL_NO_VERIFY环境变量传递给所有git调用似乎最简单。不幸的是Git.update_environment(...)只能在现有实例上使用,这就是为什么你必须像这样操纵python的环境:

import git
import os

os.environ['GIT_SSL_NO_VERIFY'] = "1"
repo = git.Repo.clone_from('https://xxx', '/home/xxx/lala')