如何使用GitHub GraphQL API获取分支的zipballUrl?

3
我正在尝试以编程方式下载已经检出到特定分支的存储库的zip文件。为此,我需要通过github graphQL API获得指定分支的head的zipballUrl。 这个答案说明了如何获取默认分支的zipballUrl,但我无法将其修改为符合我的要求。如果有人能帮忙,将不胜感激。
PS:运行git clone命令并检出分支不是一个选项,因为我使用的编程语言(ballerina)尚不支持shell命令。
1个回答

2
你可以使用仓库对象的引用字段。
例如,考虑相同的Google Gson项目。
最初的回答:您可以使用仓库对象的引用字段。例如,考虑相同的Google Gson项目。
{
  repository(owner: "google", name: "gson") {

    ref(qualifiedName: "722"){
      target {
        ... on Commit {
          tarballUrl
          zipballUrl
        }
      }
    }
  }
}

在这个查询中,ref(qualifiedName)基本上会查找具有指定值的引用或分支名称,并返回分支的tar内容。
回复:最初的回答。
{
  "data": {
    "repository": {
      "ref": {
        "target": {
          "tarballUrl": "https://codeload.github.com/google/gson/legacy.tar.gz/2725be440147a71030ece93683b4424e849c59ed",
          "zipballUrl": "https://codeload.github.com/google/gson/legacy.zip/2725be440147a71030ece93683b4424e849c59ed"
        }
      }
    }
  }
}

你可以验证分支引用“722”的sha:https://github.com/google/gson/commit/2725be440147a71030ece93683b4424e849c59ed,这是最初的回答。

1
非常感谢!!!为了避免给读者带来任何困惑,“722”是谷歌Gson存储库中一个分支的名称,尽管它看起来有些奇怪。 - tharinduwijewardane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接