所以我试图让自己熟悉 GitHub API。我正在使用 cURL 命令来实现它们的一些基本功能。我可以正确获得基本授权和存储库创建。目前,我正在尝试使用他们的 API 在存储库中创建一个文件,并面临“消息”:“未找到”错误作为响应。
他们的文件表明了这一点:
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