使用脚本克隆私有Github存储库

时间:2014-08-29 11:03:31

标签: python gitpython

如何使用python从Github克隆私有存储库?

我找到了一些关于git和python的好信息,但几天前我开始学习python。

4 个答案:

答案 0 :(得分:5)

只需使用subprocess.check_call运行git命令:

import subprocess
subprocess.check_call(["git", "clone", ...])

答案 1 :(得分:3)

有一个库libgit2,它可以将git用作共享库,对你的原因更有帮助的是python绑定pygit

使用pygit来回答您的问题以克隆回购:

>>> from pygit2 import clone_repository
>>> repo_url = 'git://github.com/libgit2/pygit2.git'
>>> repo_path = '/path/to/create/repository'
>>> repo = clone_repository(repo_url, repo_path) # Clones a non-bare repository
>>> repo = clone_repository(repo_url, repo_path, bare=True) # Clones a bare repository

您可以查看基于存储库的文档here

答案 2 :(得分:2)

这是我的两分钱,因为对于回购是私有的还没有答案。我通常的做法是为脚本创建一个特殊的SSH密钥对,并将公共密钥对上载到GitHub(或您正在使用的任何托管服务器)。

您可以通过运行以下命令来使脚本使用私钥:

GIT_SSH_COMMAND='ssh -i private_key_file' git clone git@github.com:user/repo.git

答案 3 :(得分:0)

import pygit2
repo_url = 'git://github.com/libgit2/pygit2.git'
repo_path = '/path/to/create/repository'
callbacks = pygit2.RemoteCallbacks(pygit2.UserPass("<your-personal-token>", 'x-oauth-basic'))
repo = pygit2.clone_repository(repo_url, repo_path, callbacks=callbacks)