1

显然github3模块确实需要您提供 github 组织和存储库名称,因为无法根据您当前的存储库猜测它们。

我还检查了https://pypi.org/project/GitPython/但我无法识别正确的调用,以便识别组织名称和存储库名称。

我确实怀疑我需要以某种方式调查遥控器,但文档有点让我失望。

4

2 回答 2

0

您也可以简单地从远程配置中获取存储库 URL,如果您不想使用外部库,则只是一些简单的文件读取和解析。

阅读文件.git/config,您将在其中找到url格式的配置子标题[remote <remote name>]。一旦获得存储库的正确 url 并检查源属于 github,就可以使用 Github 公共 REST API 来获取组织。API 文档:https ://developer.github.com/v3/repos/#get 。如果 repo 属于某个组织,则 API json 响应将包含一个organization包含该组织完整详细信息的密钥。

于 2020-02-29T14:57:14.850 回答
0

您始终可以使用subprocess内置命令来调用 git 命令。请参阅这个问题:如何在某个 Git 存储库中获取 Git 存储库的名称?.

import subprocess
import basename
import os
output = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'])
repo = os.path.basename(output)

显然你可以在 pygithub 中做到这一点。Python - 如何检查路径是否在 git repo 下?并提取 repo 名称

该答案中的代码示例(将打印更改为 python3):

import git 

# Raises InvalidGitRepositoryError when not in a repo 
repo = git.Repo(".", search_parent_directories=True) 
print("Location "+ repo.working_tree_dir) 
print("Remote: " + repo.remote("origin").url)

您可以查看他们的源代码并查看他们正在运行的命令。

于 2020-02-29T14:43:10.640 回答