我试图使用Github API创建一个回购,但它总是返回这个JSON:
{"message":"Not Found"}
但是只有当我尝试在请求头中使用OAuth访问令牌创建时才出现此错误,如果我使用用户名和密码,API创建repo并返回成功消息。
有人对这个API端点有问题吗?
您可以使用Python库PyGithub创建一个新的存储库。
from github import Github
g = Github("your username", "your password")
g = Github("your token") # safer alternative, if you have an access token
u = g.get_user()
repo = u.create_repo("name-of-your-repo")
我有一个不同的消息来这个
curl -i -d '{"name":"NAME"}' https://api.github.com/orgs/:ORG/repos?access_token=XXX
{
"message": "Must be an owner or admin of Organization."
}
但仍然不确定为什么我不能创建
好吧
This works for me
创建认证令牌
curl -u 'iwarner' -d '{"scopes":["repo"],"note":":NAME"}' https://api.github.com/authorizations
创建Repo -需要包含"Authorization: token"
curl -i -H 'Authorization: token TOKENHERE' -d '{"name":":NAME"}' https://api.github.com/user/repos
这个可以,试一下。
curl -F 'login=c00kiemon5ter' -F 'token=s3cr3t' https://github.com/api/v2/json/repos/create -F 'name=testapi' -F 'public=0'
我们讨论的是API v2还是v3 ? 我不知道你用的是什么技术。但就iOS而言,你可以使用这个演示应用程序,它描述了3种与GitHub API交互的简单方法。
注意:这个演示程序只提供一些选定的功能。
GitHub-Interaction
希望这有帮助!!
截至目前,GitHub v3 API文档明确指出:
编辑:创建
为经过身份验证的用户创建一个新的存储库。(当前未启用集成)
"not enabled for Integrations"的意思是,如果你通过你的OAuth应用程序之一(这是一个"集成")获得你的OAuth令牌,GitHub API将拒绝用该功能创建一个存储库。
然而,如果你使用其他访问令牌(例如,你自己添加的个人访问令牌,见下文),那么GitHub API将很乐意为你创建一个具有相同API调用的存储库。
curl -u your_username -d '{"scopes":["repo"], "note":"Description of personal token"}' https://api.github.com/authorizations
这就是为什么Ian Warner提出的解决方案有效的原因。PyGithub的解决方案也会受到同样的限制。只有令牌有区别!
EDIT:不完全正确:使用OAuth,您可以指定作用域以在身份验证(OAuth应用流程)时附加特定权限到您的OAuth令牌。要创建存储库,您需要具有'repo'
作用域。(参见:Github v3 API -创建REPO)