通过 APIv4 获取 GitHub 上的 public 个存储库列表

Get list of public repositories on GitHub via APIv4

使用 GitHub 的 API v3,easy 检索包含所有 public 可用存储库的列表。我正在寻找一种使用 API v4.

执行相同操作的方法

基于API v4 reference我想出了两个尝试:

  1. 使用存储库字段。但是此字段需要 ownername 参数。

    query {
      repository(owner: "", name: "") {
        name
      }
    }
    
  2. 搜索所有存储库。 但是 search 字段需要 query 参数。

    query {
      search(type: REPOSITORY, query: "") {
        repositoryCount
      }
    }
    

这两个示例都需要额外的信息,这限制了结果,因此不适合我的目的。有没有办法使用 API v4 获取所有 public 存储库的(分页)列表?

您引用的 "API v4" 不是 GitHub,而是 GraphQL。它不是"the next GitHub API version",而是一种完全不同的查询方式。

请参阅“An Introduction to GraphQL via the GitHub API", which uses skevy/graphiql-app,用于使用 GraphiQL 编辑和测试 GraphQL queries/mutations 的选项卡式界面。

This gist as well as the official documentation 建议查询“repositories”可用于列出所有回购协议。默认情况下,它仅限于用户存储库。

一个可能的线索是,如 in this example,搜索用户,然后为每个用户列出“repositories”。

developer.github.com/v4/explorer (used for "Building a Useful Query")

中进行测试