所以我正在努力熟悉GitHub API。我使用cURL命令来实现它们的一些基本功能。我可以获得基本授权&正确创建存储库。目前,我正在尝试使用他们的API&我面临“message”:“Not Found”错误作为响应。
他们的
documentation
建议如下:
PUT /repos/:owner/:repo/contents/:path
我将此作为cURL等效项:
curl -H 'Authorization: <token>' -d '{"path": "test.txt", "message": "Initial Commit", "committer": {"name": "<name>", "email": "<email>"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "note":"Test Commit"}' https://api.github.com/repos/InViN-test/test_repo1/contents/test.txt
我认为问题出在我最后使用的API URL上,但我似乎无法弄清楚URL应该是什么样子。
这是我用来创建存储库的方法:
curl -i -H 'Authorization: <token>' -d '{"name": "test_repo1", "message": "Initial Commit", "committer": {"name": "<name>", "email": "<email>"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "note":"Test Commit"}' https://api.github.com/user/repos
我使用的存储库创建URL如下:user/repos作为语法。
同样,我也尝试过使用user/repos/repo,但没有成功。
有人能解释一下吗?
我已经完成了各种StackOverflow问题&许多人看起来很相似,但没有一个真正提供了一个例子,所以我可以找出错误所在。
编辑:感谢TimWolla的回答。
使用GitHub API在存储库中创建文件的工作命令语法:
curl -i -X PUT -H 'Authorization: token <token_string>' -d '{"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": "<Base64 Encoded>", "branch": "master"}' https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>
我的例子:
curl -i -X PUT -H 'Authorization: token f94ce61613d5613a23770b324521b63d202d5645' -d '{"path": "test4.txt", "message": "Initial Commit", "committer": {"name": "Neil", "email": "neil@abc.com"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "branch": "master"}' https://api.github.com/repos/InViN-test/test_repo1/contents/test4.txt