【问题标题】:How to get all commits for a certain release in GitHub?如何在 GitHub 中获取某个版本的所有提交?
【发布时间】:2026-02-11 03:55:01
【问题描述】:

我知道我可以使用GET /repos/:owner/:repo/commits

获得项目中的所有提交

现在我想获取该项目的某个发布的所有提交

我该怎么办?

【问题讨论】:

  • 定义什么将提交与发布相关联?您想要发布之间的提交还是发布标记之前的所有提交?
  • 嗨 sigmavirus24,比如这些提交:github
  • 所以你想要提交因为某个版本?

标签: java github github-api


【解决方案1】:

从你对我问题的回答来看,你希望提交因为一些标签。这需要几个步骤才能完成,首先您需要获取相关标签的 SHA。您需要使用git references APIget a specific reference。在您链接的具体示例中,您会想要这样做

GET /repos/nasa/mct/git/refs/tags/v1.8b3

你会想要从存储在响应对象的'object'属性中的对象中获取'sha'属性。使用 'sha' 属性,您需要使用 commits APIlist commits starting with that 'sha',因此您的请求将如下所示:

GET /repos/nasa/mct/commits?sha=%(sha_from_first_request)s

默认情况下,这将为您每页提供 30 次提交(如果我没记错的话),所以您应该看看在末尾添加 &per_page=100 是否有帮助。我无法确切告诉您如何在 Java 中执行此操作,但我希望您能够使用 libraries written to interact with the API 之一来简化操作。

【讨论】:

  • 我很欣赏你的方法,这应该是一个解决方案。谢谢!
最近更新 更多