我在使用curl
在我的GitHub.com帐户上创建回购时遇到问题(没有ssh)。
我使用Jekyll创建了一个基本的静态本地站点,我想将其推送到GitHub.com仓库(我希望在<username>.github.io
上托管该站点,并根据GitHub页面上的说明repo必须与包含本地站点的文件夹同名。
我为GitHub登录启用了双因素身份验证,因此在this post之后,我传递了一个OTP /令牌(使用选项-H "X-GitHub-OTP":<token>
在请求标头中的Applications settings上生成。我可以登录(此帖子之前提出了一个关于Github登录无法正常工作的问题,这是因为没有正确关闭字符串"X-GitHub-OTP"
),但现在登录工作正常,但我现在收到一个带有400代码的响应。这是我使用的curl
命令:
$username="<username>"
$reponame="$username.github.io"
$token="<token>"
$apidom="https://api.github.com/user/repos/"
$curl -u $username -H '{"X-GitHub-OTPOTP":$token}' -d '{"name":$reponame,"description":$repodesc}' $apidom
和回复消息:
<p><strong>We didn't receive a proper request from your browser.</strong></p>
<p>Sorry about that. Please try refreshing and contact us if the problem persists.</p>
<div id="suggestions">
<a href="https://github.com/contact">Contact Support</a> —
<a href="https://status.github.com">GitHub Status</a> —
<a href="https://twitter.com/githubstatus">@githubstatus</a>
</div>
答案 0 :(得分:0)
由于您启用了双因素身份验证,因此您需要send a special HTTP header:
除基本身份验证凭据外,您还必须在
X-GitHub-OTP
标头中发送用户的身份验证代码(即一次性密码)。由于这些身份验证代码很快就会过期,因此我们建议您使用授权API create an access token并将该令牌用于authenticate via OAuth以获取大多数API访问权限。或者,您可以从application settings page的个人访问令牌部分创建访问令牌。
答案 1 :(得分:0)
两因素验证
curl -u "YOUR_USERNAME_HERE" \
-H "X-Github-OTP:YOUR_OTP_CODE_HERE" \
https://api.github.com/user/repos
-d '{"name": "test"}'
普通身份验证
curl -u "YOUR_USERNAME_HERE" \
-H https://api.github.com/user/repos \
-d '{"name":"Your repo name here"}'