6

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

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

4

4 回答 4

5

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

import subprocess
subprocess.check_call(["git", "clone", ...])
于 2014-08-29T11:12:28.300 回答
3

有一个库,libgit2它使 git 可以用作共享库,对您的事业更有帮助的是 python 绑定的pygit.

pygit要使用克隆 repo来回答您的问题:

>>> 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

您可以在此处查看基于存储库的文档

于 2014-08-29T11:07:11.170 回答
2

这是我的两分钱,因为还没有关于回购私有的答案。我通常这样做的方式是为脚本创建一个特殊的 SSH 密钥对并将公共密钥对上传到 GitHub(或您正在使用的任何主机)。

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

GIT_SSH_COMMAND='ssh -i private_key_file' git clone git@github.com:user/repo.git
于 2020-04-01T03:16:48.450 回答
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)
于 2021-07-28T13:29:04.030 回答