到目前为止 ,接受的答案和投票最多的答案现在都已过时。密码身份验证已弃用,并将于 2020 年 11 月 13 日 16:00 UTC 删除。
现在使用 GitHub API 的方式是通过个人访问令牌。
您需要(替换所有大写关键字):
- 通过网站创建个人访问令牌。是的,您必须使用浏览器,但对于以后的所有访问,它只有一次。安全地存储令牌。
- 通过创建 repo
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