GitHub API - 如何列出分支中的最新标记

时间:2017-09-04 16:41:48

标签: git rest github-api

通过使用GitHub API V3,如何查找在分支上创建的最新标签? 我正在使用java客户端来调用这些V3 API。

https://developer.github.com/v3/repos/#list-tags API似乎没有列出创建的时间或创建它的分支。

目标是列出在“release”分支中创建最后一个标记之后创建的所有“Pull Requests”。基本上,那些将进入当前版本的PR(下一个要创建的标签)。

因为我正在使用GitHub API,我的方法是

  1. 查找在发布分支

  2. 上创建的最新标记
  3. 比较该标记与当前开发分支之间的提交。

  4. 过滤所有Pull Request合并提交。

  5. 因此,需要一些关于#1的帮助。任何其他更好的方法来实现这一点也会有所帮助。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您可以通过执行与创建标记相关联的提交来执行此操作。从提交信息中我们可以找到提交的日期。然后,我们可以找到在提交日期之后创建的所有PR。例如,

  1. 首先,我们找到与回购相关联的代码 - https://api.github.com/repos/giampaolo/psutil/tags
  2. 根据收到的请求(1)的json响应,我们可以使用["commit"]["url"]字段并请求提交级别信息。在我们的例子中,它是 - "url": "https://api.github.com/repos/giampaolo/psutil/commits/fe0799f98e04b980c3f9aee0dd577567eb932e0b"
  3. 上述请求收到的json响应将包含提交者信息和相应的提交日期。
  4. {   "sha": "fe0799f98e04b980c3f9aee0dd577567eb932e0b",   "commit": {
        "author": {
          "name": "Giampaolo Rodola",
          "email": "xxx@gmail.com",
          "date": "2017-09-01T10:27:38Z"
        },
        "committer": {
          "name": "Giampaolo Rodola",
          "email": "xxx@gmail.com",
          "date": "2017-09-01T10:27:38Z"
        },
        "message": "pre-release",
        "tree": {
          "sha": "00cd23c710c3065cf959a914a74b6062be1e2986",
          "url": "https://api.github.com/repos/giampaolo/psutil/git/trees/00cd23c710c3065cf959a914a74b6062be1e2986"
        },
        "url": "https://api.github.com/repos/giampaolo/psutil/git/commits/fe0799f98e04b980c3f9aee0dd577567eb932e0b",
        "comment_count": 0
    
    1. 使用["commit"]["committer"]["date"]字段,您可以搜索在此日期之后创建的所有拉取请求问题,即type:pr。此请求应类似于此https://api.github.com/search/issues?q=repo:giampaolo/psutil+created:>2017-09-01+type:pr