我想获得与标记关联的实际代码的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
指向用于构建标记的最新提交的链接中找到。(或者我认为就是这样。)它的形式
https://github.com/:owner/:repo/commit/:sha
https://github.com/ramda/ramda/commit/e2fad9bc6dd425a00dd98d2fb7ab1a9c52fce074
我可以提取此SHA并用它来建立从我的文档到源文件的链接(这就是全部。)但这涉及屏幕抓取。我更喜欢使用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),包含在标记ref的json响应中,则会得到:
{
"sha": "c71639093b1a433fa68d4df2056be32a635a56d5",
"url": "https://api.github.com/repos/ramda/ramda/git/tags/c71639093b1a433fa68d4df2056be32a635a56d5",
"tagger": {
"name": "buzzdecafe",
"email": "[email protected]",
"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实际上有两种标签:轻量级标签和带注释的标签。轻量级的只是直接指向commit sha的引用。带注释的标签实际上是具有自己的sha的对象,该对象具有指向提交sha的指针。这是第二种标签的示例。(有关man git-tag
更多信息,请参见)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句