如何获得与标签的实际代码关联的 SHA?
How do I get the SHA associated with the actual code for a tag?
我想获取与标签关联的实际代码的 SHA。这可能吗? API 提供的似乎是用于创建标签的 SHA,对我来说用处不大。
如果我访问
https://github.com/:owner/:repo/releases/tag/:tag
https://github.com/ramda/ramda/releases/tag/v0.12.0
我可以在 .tag-references li:eq(1) a
中找到用于构建标签的最新提交的 link。 (或者我假设它就是这样。)它的形式是
https://github.com/:owner/:repo/commit/:sha
https://github.com/ramda/ramda/commit/e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074
我 可以 提取此 SHA 并使用它来构建 link 从我的文档到源文件的文件(这就是全部内容。)但是涉及屏幕抓取。我更愿意使用 API.
但据我所知,API 通过以下调用为我提供了标签列表:
https://api.github.com/repos/:owner/:repo/git/refs/tags
https://api.github.com/repos/ramda/ramda/git/refs/tags
包括这样的条目:
{
"ref": "refs/tags/v0.12.0",
"url": "https://api.github.com/repos/ramda/ramda/git/refs/tags/v0.12.0",
"object": {
"sha": "c71639093b1a433fa68d4df2056be32a635a56d5",
"type": "tag",
"url": "https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5"
}
}
虽然我在解析响应以找到正确条目时没有问题,但生成的 SHA 似乎与我要引用的代码无关。
有没有什么方法可以通过 API 找到显示在标签页上的 SHA?
如果您转到 URL 标签对象 (https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5) 包含在标签引用的 json 响应中,您会得到:
{
"sha": "c71639093b1a433fa68d4df2056be32a635a56d5",
"url": "https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5",
"tagger": {
"name": "buzzdecafe",
"email": "m_hur@yahoo.com",
"date": "2015-03-21T22:25:46Z"
},
"object": {
"sha": "e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074",
"type": "commit",
"url": "https://api.github.com/repos/ramda/ramda/git/commits/e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074"
},
"tag": "v0.12.0",
"message": "Version 0.12.0\n"
}
它具有您要查找的提交对象的 SHA1 (e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074
) 作为 object.sha
Git其实有两种标签:轻量标签和注释标签。轻量级的只是直接指向提交 sha 的引用。带注释的标签实际上是一个对象,它有自己的 sha,它有一个指向提交 sha 的指针。这是第二种标签的示例。 (有关更多详细信息,请参阅 man git-tag
)
我想获取与标签关联的实际代码的 SHA。这可能吗? API 提供的似乎是用于创建标签的 SHA,对我来说用处不大。
如果我访问
https://github.com/:owner/:repo/releases/tag/:tag
https://github.com/ramda/ramda/releases/tag/v0.12.0
我可以在 .tag-references li:eq(1) a
中找到用于构建标签的最新提交的 link。 (或者我假设它就是这样。)它的形式是
https://github.com/:owner/:repo/commit/:sha
https://github.com/ramda/ramda/commit/e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074
我 可以 提取此 SHA 并使用它来构建 link 从我的文档到源文件的文件(这就是全部内容。)但是涉及屏幕抓取。我更愿意使用 API.
但据我所知,API 通过以下调用为我提供了标签列表:
https://api.github.com/repos/:owner/:repo/git/refs/tags
https://api.github.com/repos/ramda/ramda/git/refs/tags
包括这样的条目:
{
"ref": "refs/tags/v0.12.0",
"url": "https://api.github.com/repos/ramda/ramda/git/refs/tags/v0.12.0",
"object": {
"sha": "c71639093b1a433fa68d4df2056be32a635a56d5",
"type": "tag",
"url": "https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5"
}
}
虽然我在解析响应以找到正确条目时没有问题,但生成的 SHA 似乎与我要引用的代码无关。
有没有什么方法可以通过 API 找到显示在标签页上的 SHA?
如果您转到 URL 标签对象 (https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5) 包含在标签引用的 json 响应中,您会得到:
{
"sha": "c71639093b1a433fa68d4df2056be32a635a56d5",
"url": "https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5",
"tagger": {
"name": "buzzdecafe",
"email": "m_hur@yahoo.com",
"date": "2015-03-21T22:25:46Z"
},
"object": {
"sha": "e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074",
"type": "commit",
"url": "https://api.github.com/repos/ramda/ramda/git/commits/e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074"
},
"tag": "v0.12.0",
"message": "Version 0.12.0\n"
}
它具有您要查找的提交对象的 SHA1 (e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074
) 作为 object.sha
Git其实有两种标签:轻量标签和注释标签。轻量级的只是直接指向提交 sha 的引用。带注释的标签实际上是一个对象,它有自己的 sha,它有一个指向提交 sha 的指针。这是第二种标签的示例。 (有关更多详细信息,请参阅 man git-tag
)