0

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

问题是当我试图列出私人回购时。API 返回一个空数组,就好像我没有所需的权限一样。此外,当我尝试列出用户存储库的分支时,它会返回类型错误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"
        }
    ]
}

我错过了什么?

4

2 回答 2

0

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

以下是要求参考的范围。使用 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.
不知你是否在查询下viewerviewer可以获得他/她拥有的私人回购。对于其他人拥有的repos,您可以尝试

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

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


您的查询对我来说很好:)

于 2021-02-02T14:45:57.910 回答
0

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

它现在可以正常工作了。

于 2021-02-04T18:14:56.473 回答