GitHub GraphQL API 使用来自 GithubAuthProvider 的访问令牌时禁止返回

GitHub GraphQL API returning forbidden when using access token from GithubAuthProvider

我正在使用 GithubAuthProvider 添加范围 repo 来获取用户的访问令牌,该令牌稍后用于访问 GitHub GraphQL API(GitHub应用将内容和元数据的权限设置为只读。

问题出在我尝试列出私有存储库时。 API returns 一个空数组,就好像我没有所需的权限一样。此外,当我尝试列出用户回购的分支时,它 returns 类型为 FORBIDDEN 的错误。

查询:

query {
    viewer { 
    repository(name: "some-repo") {
      refs(refPrefix: "refs/heads/", first: 10) {
        nodes {
          name
        }
      }
    }
  }
}

回复:

{
    "data": {
        "viewer": {
            "repository": {
                "refs": null
            }
        }
    },
    "errors": [
        {
            "type": "FORBIDDEN",
            "path": [
                "viewer",
                "repository",
                "refs"
            ],
            "extensions": {
                "saml_failure": false
            },
            "locations": [
                {
                    "line": 7,
                    "column": 7
                }
            ],
            "message": "Resource not accessible by integration"
        }
    ]
}

我错过了什么?

对于 GitHub GraphQL API,仅范围 repo 可能不够。

以下是请求参考的范围。 Authenticating with GraphQL

user
public_repo
repo
repo_deployment
repo:status
read:repo_hook
read:org
read:public_key
read:gpg_key

The API returns an empty array as if I don't have the required permissions.
不知你是不是在viewer下查询。 viewer 可以获得私人仓库 he/she 拥有 。对于其他人拥有的 repos,您可以尝试

repository(name: "repo-name", owner: "login") {
  name
}

如果您没有所需的权限,它将 return NOT_FOUND 错误。


你的查询对我来说没问题:)

事实证明,我阅读 Firebase 说明的速度太快,因此创建了一个 Github 应用程序而不是 OAuth 应用程序。

它现在正常工作。