Github标记和发布资产URL列表

Github标记和发布资产URL列表,github,graphql,github-api,github-graphql,Github,Graphql,Github Api,Github Graphql,我正在努力使用github graphql接口来获取所需的数据。我想获得标记和发布的资产URL列表。似乎有些回购协议产生了我想要的结果,而另一些则什么也没有产生 query { repository(owner:"erlang",name:"otp") { releases(last:100) { edges { node { url releaseAssets(last:100) { edge

我正在努力使用github graphql接口来获取所需的数据。我想获得标记和发布的资产URL列表。似乎有些回购协议产生了我想要的结果,而另一些则什么也没有产生

query {
 repository(owner:"erlang",name:"otp") {
    releases(last:100) {
      edges {
        node {
          url
          releaseAssets(last:100) {
            edges {
              node {
                downloadUrl
              }
            }
          }
          tag {
            name
            target {
              ... on Commit {
                zipballUrl
                tarballUrl
              }
            }
          }
        }
      }
    }
    tags:refs(refPrefix:"refs/tags/", last:30) {
      edges {
        tag:node {
          name
          target {
            sha:oid
            commitResourcePath
            ... on Commit {
              zipballUrl
              tarballUrl
              author {
                name
                email
                date
              }
            }
          }
        }
      }
    }
  }
}
该查询按原样生成我想要的结果(或者至少是其中的一些),而所有者:“spring项目”,名称:“spring框架”生成的标记没有tarball。当我看spring框架回购时,它显然有用于发布的资产

为什么它们没有显示在此查询中?当我查看git时,每个版本和标记都有资产,即使在我的查询中,结果也不确定。我遗漏了什么?

目标是一个,在这种情况下,它可以指向一个或一个对象。当它指向一个
提交
时,您的查询将返回预期结果,因为提交时的
…不为空。要获得
标记
,只需尝试使用
…on Tag
并根据需要提取标记器或其指向的提交。以下是一个例子:

{
存储库(所有者:“spring项目”,名称:“spring框架”){
新闻稿(最后:100){
边缘{
节点{
网址
释放资产(最后:100){
边缘{
节点{
下载网址
}
}
}
标签{
…重新提供信息
}
}
}
}
标记:参考(参考前缀:“参考/标记/”,最后:30){
边缘{
节点{
…重新提供信息
}
}
}
}
}
Ref上的片段refInfo{
名称
目标{
沙:好的
提交源路径
__字体名
…在标签上{
目标{
…提交{
…委员会
}
}
标记器{
名称
电子邮件
日期
}
}
…提交{
…委员会
}
}
}
提交时的片段committenfo{
Zipballul
tarballUrl
作者{
名称
电子邮件
日期
}
}

注意,在上面的示例中,我使用了减少查询大小和提高可读性


我的猜测是,如果ref指向一个
标记
对象,该对象可以保存消息、特定的标记日期和标记信息。如果它指向一个
Commit
对象,它就是一个链接到Commit

的对象,这正是我需要的!感谢您花时间创建这一信息丰富的回复。圣诞快乐。