目前公认的答案和投票最多的答案都已经过时了。密码身份验证已弃用,并将于2020年11月13日16:00 UTC移除。
现在使用GitHub API的方式是通过个人访问令牌。
你需要(替换ALL CAPS关键字):
通过网站创建个人访问令牌。是的,您必须使用浏览器,但以后所有访问都只能使用一次。安全地存储令牌。
创建回购通道
curl -H 'Authorization: token MY_ACCESS_TOKEN' https://api.github.com/user/repos -d '{"name":"REPO"}'
或者,从一开始就设置为私有:
curl -H 'Authorization: token MY_ACCESS_TOKEN' https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}'
添加新的原点并将其推入:
git remote add origin git@github.com:USER/REPO.git
git push origin master
这样做的缺点是每次都必须输入令牌,并且它会出现在bash历史记录中。
为了避免这种情况,你可以
将头文件存储在一个文件中(我们称它为HEADER_FILE)
Authorization: token MY_ACCESS_TOKEN
curl从文件中读取了吗
curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO"}' # public repo
curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}' # private repo
为了更加安全,您可以将访问权限设置为400,并将用户设置为root
chmod 400 HEADER_FILE
sudo chown root:root HEADER_FILE
现在需要sudo来访问头文件
sudo curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO"}' # public repo
sudo curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}' # private repo