[アプリケーション] ページで使用しているトークンを作成した場合、このトークンには次のスコープがあります: user
、public_repo
、。これを確認するには、そのトークンを使用して API 要求を行い、応答の HTTP ヘッダーを調べます。repo
gist
curl -v -H 'Authorization: token xxx' https://api.github.com
X-OAuth-Scopes
スコープのリストを含む応答ヘッダーを探します。
X-OAuth-Scopes: user, public_repo, repo, gist
ただし、リポジトリを削除するには、トークンにdelete_repo
スコープが必要です。
そのため、所有しているスコープとは異なるスコープを持つトークンが必要です。Authorizations APIを使用して、このようなトークンを作成できます。
curl -v -u username -X POST https://api.github.com/authorizations -d '{"scopes":["delete_repo"], "note":"token with delete repo scope"}'
これにより、リポジトリの削除に使用できる新しいトークンを含む JSON ドキュメントが返されます。
{
"id": XXXXX,
"url": "https://api.github.com/authorizations/XXXXX",
"app": {
"name": "GitHub API",
"url": "http://developer.github.com/v3/oauth/#oauth-authorizations-api",
"client_id": "00000000000000000000"
},
"token": "XXXXXX",
"note": "token with delete repo scope",
"note_url": null,
"created_at": "2013-10-11T20:34:49Z",
"updated_at": "2013-10-11T20:34:49Z",
"scopes": [
"delete_repo"
]
}
もちろん、この方法でトークンを作成する場合、スコープだけでなく、複数のスコープを要求できますdelete_repo
。
また、補足として、適切な権限がない場合に API が 404 エラーを返すのは、情報漏えいを防ぐためです。