【问题标题】:How to order GitHub forks by stars, watchers, commits using the GitHub API?如何使用 GitHub API 按星号、观察者、提交排序 GitHub 分叉?
【发布时间】:2021-03-13 03:40:56
【问题描述】:

对于给定的存储库,我们可以通过替换以下 URL 中的“用户名”和“存储库”来查看其分支:

https://github.com/username/repo/network/members

示例:https://github.com/veracrypt/VeraCrypt/network/members

问题

使用 GitHub API,我们如何订购存储库的分叉

  1. 星星
  2. 观察者
  3. 提交(因为分叉)

注意:可访问的包装器很好(例如,为 GitHub API 使用 python 库)

到目前为止我所知道的

我们可以编写一个脚本来单独检索大约 500 个分叉的指标。这可能是最好/最简单的解决方案,尽管我知道 GitHub 有很多内置(隐藏)功能,所以我想知道 GitHub 是否考虑过收集最活跃的分叉并将其内置到 API 中。迭代成百上千个分叉也可能会调用 GitHub API 的速率限制,所以使用这种方法时请注意。

【问题讨论】:

    标签: github github-api git-fork


    【解决方案1】:

    不是一个完整的答案,但可以使用 GraphQL API 由观星者订购(尝试GitHub GraphQL API Explorer 快速入门!):

    {
      repository(owner: "vuejs", name: "vue") {
        forks(orderBy: {field: STARGAZERS, direction: DESC}, first: 3) {
          nodes {
            nameWithOwner
            stargazerCount
          }
        }
      }
    }
    

    结果:

    {
      "data": {
        "repository": {
          "forks": {
            "nodes": [
              {
                "nameWithOwner": "SmallComfort/react-vue",
                "stargazerCount": 1198
              },
              {
                "nameWithOwner": "supergaojian/vue",
                "stargazerCount": 20
              },
              {
                "nameWithOwner": "developedbyed/vue",
                "stargazerCount": 13
              }
            ]
          }
        }
      }
    }
    

    可能的字段是:

    enum RepositoryOrderField {
      """
      Order repositories by creation time
      """
      CREATED_AT
    
      """
      Order repositories by name
      """
      NAME
    
      """
      Order repositories by push time
      """
      PUSHED_AT
    
      """
      Order repositories by number of stargazers
      """
      STARGAZERS
    
      """
      Order repositories by update time
      """
      UPDATED_AT
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2010-12-13
      • 2012-08-23
      • 1970-01-01
      • 2012-01-12
      • 2018-11-22
      • 2017-05-09
      • 2022-01-18
      相关资源
      最近更新 更多