目标是
git reference
,在这种情况下,它可以指向
Tag
或A
Commit
对象。当它指向
提交
,查询返回预期结果,因为
...on Commit
不是空的。得到
标签
也可以试试
...on Tag
提取标记符或它指向的提交,具体取决于您想要什么。下面是一个例子:
{
repository(owner: "spring-projects", name: "spring-framework") {
releases(last: 100) {
edges {
node {
url
releaseAssets(last: 100) {
edges {
node {
downloadUrl
}
}
}
tag {
...refInfo
}
}
}
}
tags: refs(refPrefix: "refs/tags/", last: 30) {
edges {
node {
...refInfo
}
}
}
}
}
fragment refInfo on Ref {
name
target {
sha: oid
commitResourcePath
__typename
... on Tag {
target {
... on Commit {
...commitInfo
}
}
tagger {
name
email
date
}
}
... on Commit {
...commitInfo
}
}
}
fragment commitInfo on Commit {
zipballUrl
tarballUrl
author {
name
email
date
}
}
Try it in the explorer
注意在上面的例子中,我使用了
fragments
减小查询大小并提高可读性
我猜如果裁判指的是
标签
对象是
annotated tag
它可以保存一条消息、一个特定的标记日期和标记信息。如果它指向
提交
对象,它是
lightweight tag
只是链接到一个提交