有没有办法使用 GitHub 的 GraphQL API 来检索存储库的默认分支名称?我可以构建一个查询来获取所有分支名称,但我看到的属性都没有引用默认分支名称。我处理的一些存储库的默认名称是“master”,而其他存储库的默认名称是“main”。
我知道我可以在某些命令中使用 HEAD 来解决此问题。例如“HEAD:README.md”用于获取 README.md 文件,如下面的示例查询所示。这个存储库的默认分支是“main”,我只是通过手动尝试和错误才知道这一点。
query {
repository(owner: "newrelic", name: "newrelic-ruby-agent") {
object(expression: "HEAD:README.md") {
... on Blob {
text
}
}
}
}
但是当我检查该存储库的本地克隆副本时,
.git/HEAD
文件指向ref: refs/heads/dev
。所以看来我实际上是从 dev
分支而不是默认分支中提取 README.md 文件?
那么有没有一种好方法可以使用 GraphQL API 获取 GitHub 存储库的默认分支的名称?
存储库对象上有一个字段
defaultBranchRef
:
query {
repository(owner: "newrelic", name: "newrelic-ruby-agent") {
defaultBranchRef {
name
}
}
}