如何使用GraphQL获取GitHub存储库默认分支名称?

问题描述 投票:0回答:1

有没有办法使用 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 存储库的默认分支的名称?

github graphql
1个回答
2
投票

存储库对象上有一个字段

defaultBranchRef
:

query { repository(owner: "newrelic", name: "newrelic-ruby-agent") { defaultBranchRef { name } } }
    
© www.soinside.com 2019 - 2024. All rights reserved.