3

我是 python 新手。我要做的是在我的 GitHub 帐户上创建一个远程 git 存储库,然后能够在本地克隆它。我想在 python 程序中完成所有这些。如果创建本地 git 存储库然后将其推送到我的 GitHub 帐户更容易,那也可以。我现在能做的就是创建一个本地 git repo,并且只需要 2 行代码。

import git
import os
repo_dir = os.path.join("testrepo")
r = git.Repo.init(repo_dir)

我现在需要做的就是将此本地存储库推送到我的 GitHub 帐户中,以便同时拥有一个远程存储库。正如我所说,如果反过来做更好/更容易,那也可以。我阅读了很多关于所提供的不同 API(Pygithub、Github)的信息,但文档让我头疼。我很难理解这些方法返回什么以及如何使用它们。目标是能够自动化创建项目的过程并使用 python 脚本将其推送到 GitHub,然后我将从命令行运行该脚本。另外,这是我第一次在 StackOverflow 上发帖,所以如果我没有遵守任何约定,我深表歉意。再次感谢您的明确解释,因为我开始使用 python 仅 3 天。

4

1 回答 1

0

我建议创建一个远程存储库,然后将其克隆到您的本地计算机。

然后要创建远程存储库,您必须向GitHub API发出 API 请求,但首先,您需要来自 GitHub 的访问令牌。您可以从他们的 Web UI 中制作其中之一。

然后我们将使用Requests: HTTP for Humans向 GitHub API 发出 POST 请求:

import subprocess
import requests
import sys

# Notice that you username and token are required here
r = requests.post(
  "https://api.github.com/users/<username>/repos?access_token=<generated token>", 
  data={
  "name": "Hello-World",
  "description": "This is your first repository",
  "homepage": "https://github.com",
  "private": false,
  "has_issues": true,
  "has_projects": true,
  "has_wiki": true
})

if r.status_code != 200:
  sys.exit()

现在已经创建了远程存储库,您可以将其克隆到您的机器上

clone_url = r.text.clone_url
subprocess.check_output(['git', 'clone', clone_url], cwd=repo_dir)

我实际上并没有运行这段代码,但我认为它应该让你非常接近,祝你好运!

于 2019-07-01T18:39:28.043 回答