VSTS REST API不接受POST请求

时间:2018-03-14 20:50:26

标签: rest azure-devops

我正在尝试使用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,所以我真的很困惑。

提前致谢。

1 个答案:

答案 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:

  1. 转到代码页面>的文件
  2. 选择存储库和分支
  3. 选择根级别(存储库名称)>的记录
  4. 点击首次提交>的 ... 复制完整SHA
  5. enter image description here