【问题标题】:How to list all repositories for a given topic with REST API in GitHub?如何在 GitHub 中使用 REST API 列出给定主题的所有存储库?
【发布时间】:2019-01-25 12:40:04
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: git rest api github


    【解决方案1】:

    您可以通过以下两种方式实现这一目标:

    1.卷曲:

    curl -H "Accept: application/vnd.github.mercy-preview+json" "https://api.github.com/search/repositories\?q\=topic:XYZ"
    

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

    2。蟒蛇:

    有一个库 PyGithub,它基本上使用了大多数 githhub 开发人员 API 并将它们转换为 python 函数。

    PyGithub

    这里有一些代码:

    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)
    

    我写了一个很长的函数,它也做了很多其他检查,但这是基本的函数,可以得到你想要的(你显然可以修剪返回的 repos 的名称等等)

    希望这会有所帮助。干杯。

    【讨论】:

      【解决方案2】:

      首先,我找到了pagination 的帮助来爬取多个页面。

      【讨论】:

        猜你喜欢
        • 2019-12-18
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 2012-10-04
        • 2015-08-30
        • 2022-07-30
        • 2018-11-21
        • 2020-12-10
        相关资源
        最近更新 更多