如何从默认分支上的 github apiv4 获取文件内容?

How do I get file contents from github apiv4 on the default branch?

我从 中找到的 github v4 语法中提取 README.md 内容取得了很多成功,如下所示:

{
  repository(owner: "gitpoint", name: "git-point") {
    defaultBranchRef {
      name
    }
    object(expression: "master:README.md") {
      ... on Blob {
        text
      }
    }
  }
}

当 defaultBranchRef.name 不是 master 时,我的问题就出现了。随着人们出于各种原因放弃该命名约定,我们可以预期这种情况会更频繁地向前发展。

如果我在查询之前不知道它,如何更改表达式以引用存储库的默认分支名称?或者我必须对每个回购进行 2 次查询?

您可以使用 HEAD:[path] 作为表达式来获取默认分支:

{
  repository(owner: "gitpoint", name: "git-point") {
    object(expression: "HEAD:README.md") {
      ... on Blob {
        text
      }
    }
  }
}