Windows命令提示符curl POST以运行Azure DevOps管道

ni65a41a  于 2022-11-13  发布在  Windows
关注(0)|答案(1)|浏览(119)

我正在尝试使用curl从Windows命令提示符运行Azure DevOps管道。根据Microsoft文档(Runs - Run Pipeline),我应该能够通过发布以下内容来运行管道:
https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1
我可以使用以下命令执行GET:

curl -u :<PAT> https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1

但是,我不知道如何使用curl运行管道来为DevOps执行POST。
我已尝试以下方法:

curl -s -X POST -L https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1 -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <PAT>"

但这会返回错误

HTTP Error 411. The request must be chunked or have a content length
ogsagwnx

ogsagwnx1#

我设法解决了我的问题,其中包括许多步骤:
1.从DevOps网站记录API调用,以获取json-body(See this question)的正确格式。
1.请使用额外的双引号来格式化json-body。
1.使用{project}-id而不是ascii-name,因为它包含一个特殊字符,命令提示符会错误解释该字符。
因此,完整的curl命令为:

curl -X POST -u :<PAT> "https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1" -H "Content-Type: application/json" -d "{""stagesToSkip"": ""[]"", ""resources"": {""repositories"": {""self"": {""refName"": ""refs/heads/master""}}}}"

相关问题