18

我想知道如何使用 github-api 来获取项目的所有当前版本或标签。我已经在 github-api 中看到了标签的文档,但我没有看到列出所有标签或列出所有版本的方法,而只列出了 :sha 的特定标签。

4

5 回答 5

43

这是可能的,但文档可能不在您期望的位置。

http://developer.github.com/v3/git/refs/

您还可以请求子命名空间。例如,要获取所有标签引用,您可以调用:

GET /repos/:owner/:repo/git/refs/tags
于 2013-09-25T08:28:31.247 回答
12

今天早上,我收到了对我发布给 github 支持团队的同一个问题的答案。不知道如何正确地归因于答案,但这是他们的回应。

引用来自 Github 支持团队的 Ivan Žužak

您可以使用此 API 调用获取存储库的所有标签的列表:

http://developer.github.com/v3/repos/#list-tags

因此,例如,发出以下 cURL 请求将返回 libgit2/libgit2 存储库的标签列表:

$ curl -v " https://api.github.com/repos/libgit2/libgit2/tags "

于 2013-09-26T01:44:39.907 回答
9

注意:对于专门针对 GitHub 存储库的版本,您现在拥有(自 2013 年 9 月 25 日起),一个列出所有版本的 api

列出存储库的版本

  • 对存储库具有推送访问权限的用户将收到所有版本(即,已发布的版本和草稿版本)。
  • 具有拉取访问权限的用户将仅收到已发布的版本。

    GET /repos/:owner/:repo/releases
    

回复

Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999

[
  {
    "url": "https://api.github.com/repos/octocat/Hello-World/releases/1",
    "html_url": "https://github.com/octocat/Hello-World/releases/v1.0.0",
    "assets_url": "https://api.github.com/repos/octocat/Hello-World/releases/1/assets",
    "upload_url": "https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name}",
    "id": 1,
    "tag_name": "v1.0.0",
    "target_commitish": "master",
    "name": "v1.0.0",
    "body": "Description of the release",
    "draft": false,
    "prerelease": false,
    "created_at": "2013-02-27T19:35:32Z",
    "published_at": "2013-02-27T19:35:32Z"
  }
]

获取单个版本

GET /repos/:owner/:repo/releases/:id
于 2013-09-26T12:51:30.513 回答
4

在 v4,graphQL,你可以使用这个查询https://developer.github.com/v4/object/tag/

query {
  repository(owner: "onmyway133", name: "Scale") {
    refs(refPrefix: "refs/tags/", last: 2) {
      edges {
        node {
          name
        }
      }
    }
  }
}
于 2017-10-12T12:20:39.273 回答
1

这将列出您在 Github 上的所有版本(标签)。可能需要grep根据您的标签命名约定来调整零件:

curl -s 'https://github.com/username/reponame/tags/'|grep -o "$Version v[0-9].[0-9][0-9]"

如果从“克隆回购”部分剪切-n-粘贴 URL,请记住.git在构建上述 URL-HTH-Terrence Houlahan 时在地址末尾砍掉

于 2019-02-09T18:12:41.637 回答