Mar*_* An 4 github github-api github-api-v3 github-api-v4
我正在尝试使用个人访问令牌来访问存储库的内容。
如果存储库是公共的,我可以使用 v3 和 v4 api 来实现这一点。以下两个请求都返回内容:
v3:
curl https://api.github.com/repos/w3c/webappsec/contents/
Run Code Online (Sandbox Code Playgroud)
v4:
query {
repository(owner: "w3c", name: "webappsec") {
object(expression: "master:") {
... on Tree {
entries{
name
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我已经生成了一个个人访问令牌,用于在我的一个私人存储库中执行此操作,但它永远不会返回任何内容:
v3(带有授权令牌):
curl -H "Authorization: bearer myauthorizationtoken" https://api.github.com/repos/myusername/myrepo/contents/
Run Code Online (Sandbox Code Playgroud)
结果:
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3/repos/contents/#get-contents"
}
Run Code Online (Sandbox Code Playgroud)
v4(带有授权令牌):
query {
repository(owner: "myusername", name: "myrepo") {
object(expression: "master:") {
... on Tree {
entries{
name
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
{
"data": {
"repository": {
"object": null
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试read
在生成令牌时检查所有复选框,但没有任何结果。我究竟做错了什么?
小智 5
看起来,要获取此信息,repo
需要令牌的所有访问权限。
对我有用:
[x] repo Full control of private repositories
[x] repo:status Access commit status
[x] repo_deployment Access deployment status
[x] public_repo Access public repositories
[x] repo:invite Access repository invitations
Run Code Online (Sandbox Code Playgroud)
权利复选框
API v3 用法:
[x] repo Full control of private repositories
[x] repo:status Access commit status
[x] repo_deployment Access deployment status
[x] public_repo Access public repositories
[x] repo:invite Access repository invitations
Run Code Online (Sandbox Code Playgroud)