Токен личного доступа Github для доступа к частному репозиторию: / repos /: user /: repo/contents
Я пытаюсь использовать токен личного доступа для доступа к содержимому репозитория.
Если репозиторий является общедоступным, я могу добиться этого как с v3, так и с v4 api. Оба запроса ниже возвращают содержимое:
v3:
curl https://api.github.com/repos/w3c/webappsec/contents/
v4:
query {
repository(owner: "w3c", name: "webappsec") {
object(expression: "master:") {
... on Tree {
entries{
name
}
}
}
}
}
Теперь я создал токен личного доступа для выполнения этой операции в одном из моих частных репозиториев, но он никогда ничего не возвращает:
v3 (с токеном авторизации):
curl -H "Authorization: bearer myauthorizationtoken" https://api.github.com/repos/myusername/myrepo/contents/
Результат:
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3/repos/contents/#get-contents"
}
v4 (с токеном авторизации):
query {
repository(owner: "myusername", name: "myrepo") {
object(expression: "master:") {
... on Tree {
entries{
name
}
}
}
}
}
результат:
{
"data": {
"repository": {
"object": null
}
}
}
Я пробовал проверить все read
флажки при создании токена, но ничего. Что я делаю неправильно?
1 ответ
Решение
Похоже, чтобы получить эту информацию, все 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
Флажки прав
Использование API v3:
$ curl -H "Authorization: bearer $private_token" https://api.github.com/repos/dmytrohoi/site.source/contents/
[
{
"name": ".github",
"path": ".github",
"sha": "hash",
"size": 0,
"url": "https://api.github.com/repos/dmytrohoi/site.source/contents/.github?ref=master",
"html_url": "https://github.com/dmytrohoi/site.source/tree/master/.github",
"git_url": "https://api.github.com/repos/dmytrohoi/site.source/git/trees/hash",
"download_url": null,
"type": "dir",
"_links": {
"self": "https://api.github.com/repos/dmytrohoi/site.source/contents/.github?ref=master",
"git": "https://api.github.com/repos/dmytrohoi/site.source/git/trees/hash",
"html": "https://github.com/dmytrohoi/site.source/tree/master/.github"
}
},
...
]