4

我正在尝试使用 Github v3 API - 我已经实现了所需的 OAuth 流程并且效果很好。

现在我正在尝试一些 Repos API 端点 (http://developer.github.com/v3/repos/)。

到目前为止,我可以使用以下命令获取我的存储库列表:GET /user/repos 但是,当我尝试使用 POST /user/repos 创建存储库时,我得到一个 404。

有什么想法我可能做错了吗?

茹贝尔

4

4 回答 4

8

你能告诉我们你是如何完成 HTTP 请求的吗?404 听起来您可能使用了错误的路径。但是为了给出一个可靠的答案而不是一个疯狂的猜测,我们需要看到你的请求,包括你是如何发送你的令牌的,只需用 'xxx' 或其他东西掩盖它。

同时,我将向您展示一个示例请求,该请求有效:

curl -XPOST -H 'Authorization: token S3CR3T' https://api.github.com/user/repos -d '{"name":"my-new-repo","description":"my new repo description"}'

您当然需要替换 OAuth 令牌:S3CR3T

于 2011-10-24T03:59:09.633 回答
7

我遇到过同样的问题。您使用 oauth 访问令牌获得 404 的原因是,当您授权给 github 时,您还需要另外传递您想要的范围。例如,在标题中,您应该看到“X-OAuth-Scopes: repo, user”,这意味着该用户具有对其配置文件和存储库的读/写访问权限。一旦你设置了正确的范围,你应该能够很好地执行 POST/PUT 请求。

查看您是否拥有正确的权限。您可以执行以下操作。用您的访问令牌替换 XXXXXXX。

curl -I https://api.github.com/user?access_token=XXXXXXXX
于 2011-10-26T03:57:40.860 回答
3

要以用户身份创建存储库,您可以使用个人访问令牌和基本身份验证,当您在命令行上乱搞并启用 2FA 时,这会更简单。

curl -d '{"name":"test"}' -u githubuser:personaccesstoken https://api.github.com/user/repos

在此处创建个人访问令牌https://github.com/settings/tokens并确保它具有“repo”范围。

于 2016-11-27T10:01:22.820 回答
1

此脚本允许您将令牌和项目名称作为变量读入,以便您可以在脚本中使用它

#!/usr/bin/env bash -u
#

TOKEN=`cat token_file`
PROJECT=myproject

curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d '{"name": "'"$PROJECT"'"}' https://api.github.com/user/repos?access_token=$TOKEN
于 2012-10-08T11:22:29.013 回答