GitHub API - 如何获取一个fork仓库对象是从哪个仓库fork过来的?

18
GitHub API -
对于getRepos操作,您将获得用户存储库的列表。
返回的存储库对象中包含一些信息。但是,它们似乎没有关于“我从哪个存储库fork来”的任何信息?
我该如何获取这个信息?
1个回答

16
代码库 API 的 “获取” 部分中,你可以看到两个字段来回答你的问题:

当仓库是 fork 时,会出现 parentsource 对象:

  • parent 是这个 repo 被 fork 的源头,
  • source 是网络的最终源头。

当我获取 git 仓库的 fork 时,我会看到:

curl -s "https://api.github.com/repos/VonC/git"

  "parent": {
    "id": 36502,
    "name": "git",
    "full_name": "git/git",
    "owner": {
      "login": "git",
      "id": 18133,

您可以通过阅读parent字段的内容来获得分叉的repo信息。


5
我希望他们在 API 调用“getAuthUser”返回的仓库中包含那个信息。他们把一堆没人关心的东西都包括了进去,却漏掉了那个重要的信息。 - Nicholas DiPiazza
@NicholasDiPiazza 我同意:这会强制你为每个仓库进行单独的查询。但考虑到parentsource字段的大小,GitHub可能已经将它们从列出给定用户的所有仓库的API调用中排除在外。 - VonC
从getAuthUser调用返回的Repo列表中,是否有一种方法可以在单个调用中获取多个{parent} {source}元素,以获取多个repo? - Nicholas DiPiazza
从我上一条评论来看,我不这么认为(尽管没有完全测试)。 - VonC
我的使用情况是:我正在使用API获取GitHub统计信息,以查看用户是否是热衷于GitHub的用户。在这样的报告中,您想要看到的其中一件事是他们贡献给开源社区的存储库。鉴于许多用户拥有50多个存储库,查询很快就会失控,我的API限制也会很快耗尽。 - Nicholas DiPiazza
2
@NicholasDiPiazza,也许需要采用另一种方法?https://dev59.com/qGox5IYBdhLWcg3wkk-E#9128958 或许可以考虑使用http://developer.github.com/v3/activity/events/types/#forkevent? - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接