通过Github版本/标签获取所有提交或更改

时间:2019-08-20 17:20:42

标签: git api github fetch

我一直在尝试通过Github发行版/标签获取所有Github提交或更改,我确实获得了标签api,但是我需要获取每个commit.url来查看所有提交,但需要保持获取以获取数据返回,我想知道是否可以通过release / tag API调用获取更改/提交?

我还认为也许我拉提交API GET /repos/:owner/:repo/commits得到shanode_id来过滤标签API,但它们的编号都不匹配。

当前工作流程:

  1. GET /repos/:owner/:repo/tags

  2. 响应

[
  {
    "name": "v0.1",
    "commit": {
      "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc",
      "url": "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc"
    },
    "zipball_url": "https://github.com/octocat/Hello-World/zipball/v0.1",
    "tarball_url": "https://github.com/octocat/Hello-World/tarball/v0.1"
  }
]
  1. 我使用该commit.url来获取提交,但是有时parents会嵌套提交,每个单独的url都会提交更多。

示例:

 "parents": [
      {
        "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
        "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e"
      }
    ]

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您要尝试的操作称为“修订步行”,而GitHub API并不是实现此目的的好方法。正如您所发现的,询问每个提交及其父对象等等的效率非常低。

如果您需要进行修订修订或其他任何类型的提交挖掘,则最好的方法是在本地克隆存储库并在本地系统上执行操作。这样会更快,更高效,并且不会导致您受到GitHub API的速率限制。