我正在尝试使用VSTS的REST API在存储库中创建新文件。我使用过Microsoft的文档https://www.visualstudio.com/en-us/docs/integrate/api/git/pushes#add-a-text-file,但我一直收到错误消息:
请求的资源不支持http方法'POST'。
以下是我发送给API的请求:
POST https://company.visualstudio.com/DefaultCollection/project_ID/_apis/git/repositories/repository_ID/pushes?api-version=1.0
我的凭据已正确配置,因为它正在访问资源(使用PAT进行基本身份验证)。使用类似的GET请求收集项目和repo ID,该请求工作正常。
我已经使用POSTMAN测试了这个请求,它消除了上面提到的错误。我已确保将标头配置为application/json
,但它什么也没做。
还尝试了不同版本的API,总是出现同样的错误。
有什么我想念的吗?文档明确指出这应该使用POST,所以我真的很困惑。
提前致谢。
答案 0 :(得分:1)
请注意,project_ID
不应包含在网址中。
试试下面的REST API:
POST https://company.visualstudio.com/_apis/git/repositories/{repository ID}/pushes?api-version=4.1-preview.2
Content-Type: application/json
{"refUpdates":[{"name":"refs/heads/Dev","oldObjectId":"53e349753ff5a081346babe32255eb6c5da63a5a"}],"commits":[{"changes":[{"changeType":1,"item":{"path":"/test.txt"},"newContent":{"content":"123test","contentType":0}}],"comment":"Added file test.txt"}]}
请注意,每次运行时都需要使用最新的提交SHA作为oldObjectId
,否则会响应409 Conflict
错误。
按照以下步骤获取最新提交SHA: