如何使用GitHub API根据明星、观众、提交数对GitHub分叉进行排序? [英] How to order GitHub forks by stars, watchers, commits using the GitHub API?

查看:19
本文介绍了如何使用GitHub API根据明星、观众、提交数对GitHub分叉进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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的速率限制,因此使用此方法时请注意。

推荐答案

不是一个完整的答案,但可以使用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
}

这篇关于如何使用GitHub API根据明星、观众、提交数对GitHub分叉进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆