我正在尝试以编程方式下载已签出到特定分支的存储库的 zip 文件。为此,我需要通过github graphQL API获取我指定的分支头部的 zipballUrl 。
此答案指定如何获取默认分支的 zipballUrl,但我无法将其更改为我的要求。感谢有人可以提供帮助。
PS:运行 git clone 命令并签出到分支不是一个选项,因为我使用的编程语言(芭蕾舞女演员)还不支持 shell 命令。
我正在尝试以编程方式下载已签出到特定分支的存储库的 zip 文件。为此,我需要通过github graphQL API获取我指定的分支头部的 zipballUrl 。
此答案指定如何获取默认分支的 zipballUrl,但我无法将其更改为我的要求。感谢有人可以提供帮助。
PS:运行 git clone 命令并签出到分支不是一个选项,因为我使用的编程语言(芭蕾舞女演员)还不支持 shell 命令。
您可以使用存储库对象的引用字段。
例如,考虑同一个 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