如果您是通过
应用程序页面创建正在使用的令牌,则此令牌将具有以下
作用域:
user
、
public_repo
、
repo
、
gist
。您可以通过使用该令牌进行API请求并查看响应HTTP标头来验证这一点:
curl -v -H 'Authorization: token xxx' https://api.github.com
查找X-OAuth-Scopes
响应标头,其中将列出作用域列表:
X-OAuth-Scopes: user, public_repo, repo, gist
但是,要删除存储库,令牌需要具有delete_repo
权限。
因此,您需要具有不同作用域的令牌。您可以使用授权API创建这样的令牌:
curl -v -u 用户名 -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错误的原因是为了防止信息泄漏。
github.com/foo/bar
,那么:owner
是foo
,:repo
是bar
。 - user247702`curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/foo/bar`
不起作用。 - Pavel Tankov$ curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/foo/bar { "message": "凭据无效", "documentation_url": "http://developer.github.com/v3" }
- user247702