如何使用 github api 获取原始分叉存储库?

How to get original forked repository with the github api?

我想知道如何从我的分叉存储库中获取原始存储库。

我正在使用 https://api.github.com/users/:user/repos?type=forks 获取分叉存储库列表。它 returns 分支上的各种链接,但我找不到如何获取原始存储库。

有什么想法吗?

注意:还有一些循环 https://api.github.com/users/:user/events

您可以仅使用您提到的端点加载分叉存储库列表:

curl https://api.github.com/users/:user/repos?type=forks

这将 return 像下面的 JSON 提要(省略无关信息):

[
  {
    "id": 24328834,
    "name": "repo_name",
    "full_name": ":user/repo_name",
    "owner": {
    }
    ...
    "url": "https://api.github.com/repos/:user/repo_name",
    ...
  }
  {
    "id": 24328835,
    "name": "repo_name_2",
    "full_name": ":user/repo_name_2",
    "owner": {
      ...
    }
    ...
    "url": "https://api.github.com/repos/:user/repo_name_2"
    ...
  }
]

根据@jasonrudolph 的建议编辑

然后,从列表 returned 中取出 repo_name name 下的 repo_name元素键并使用它来构建存储库 url,或者仅引用 url 元素来发出 GET请求如下:

curl https://api.github.com/repos/:user/repo_name

在 return 中将为您提供请求的用户存储库信息(请注意,这是最简单的查询 urls),您可以从中检索:

  • 保存存储库的parentJSON元素,从中发行的是分叉的,信息包括它的 id / name / url...
  • sourceJSON元素,其中包含原始存储库信息,如果发布的存储库是另一个分支的分支。

类似于以下内容(这里的父级只是源代码,即存储库是从原始存储库分叉出来的):

{
  "id": 24328834,
  "name": "repo_name",
  "full_name": "user/repo_name",
  "owner": {
    ...
  },
  ...
  "parent": {
    "id": 354448,
    "name": "repo_name",
    "full_name": "real_owner_name/repo_name",
    "owner": {
      ...
    }
  }
  "source": {
    "id": 354448,
    "name": "repo_name",
    "full_name": "real_owner_name/repo_name",
    "owner": {
      ...
    }
  }
}