如何使用 github graphQL API 获取分支的 zipballUrl?

How to get the zipballUrl of a branch using github graphQL API?

我正在尝试以编程方式下载已签出到特定分支的存储库的 zip 文件。 为此,我需要通过 github graphQL API.

获取我指定的分支头部的 zipballUrl

指定如何获取默认分支的 zipballUrl 但我无法根据我的要求更改它。如果有人可以提供帮助,我们将不胜感激。

PS: 运行 一个 git 克隆命令并检查到分支不是一个选项,因为我使用的编程语言 (ballerina) 不支持 shell尚未命令。

您可以使用存储库对象的引用字段。

例如考虑同一个googlegson项目

{
  repository(owner: "google", name: "gson") {

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

在此查询中,ref(qualifiedName) 基本上会查找具有指定值的引用或分支名称以及 return 分支的 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