如何在 GitHub 中使用 REST API 列出给定主题的所有存储库?

Ama*_*pen 5 git rest github

我想更新 README.md,其中包含某个主题的所有存储库的列表。在编写和更新提交更改(使用脚本自动)之前, 我想获取给定主题的所有带有存储库 URL 的字符串。我将保存脚本每次执行的日期。

我找到了一种方法来获取存储库的所有主题,而不是某个主题的所有存储库:API 中的https://developer.github.com/v3/repos/#list-all-topics-for-a-repository V3

此外,似乎存在“相关主题”或类似主题,但具有同义词或不同的拼写错误。

示例: https://github.com/search?q=abap&type= Topics

如何获取给定主题(及其相关主题)的所有存储库 URL,以便更新 readme.me 文件和(以识别新存储库)?

Sah*_*hah 3

您可以通过以下两种方法来实现此目的:

1. 卷曲:

curl -H "Accept: application/vnd.github.mercy-preview+json" 'https://api.github.com/search/repositories?q=topic:XYZ'
Run Code Online (Sandbox Code Playgroud)

显然,-u如果您的存储库是私有的,您可以使用添加令牌或 github 用户名和密码。

2.Python:

有一个库,PyGithub,它本质上使用了大部分 githhub 开发者 API,并将它们转换为 python 函数。

PyGithub

这里有一些代码供您参考:

from github import Github

g = Github("YOUR_GITHUB_TOKEN")

TOPIC = 'php'
ORGANIZATION = 'your_github_org_name'

repos = g.search_repositories(query=f'topic:{TOPIC} org:{ORGANIZATION}')
for repo in repos:
    print(repo)
Run Code Online (Sandbox Code Playgroud)

我编写了一个相当长的函数,它还执行了很多其他检查,但这是获得您想要的结果的基本函数(您显然可以修剪返回的存储库的名称等等)

希望这可以帮助。干杯。