用于排队构建的Invoke-RestMethod的Body需要包含什么? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于排队构建的Invoke-RestMethod的Body需要包含什么? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我应该能够使用Rest API对构建进行排队

POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0-preview.5

Builds API

我只是无法弄清楚应该包含在请求体中的内容以及如何组装它。

我正在使用powershell并修改我用来查询DevOps的脚本,它运行得很好:

function Queue-Build
{
    param (
        [string] $BuildUri,
        [Hashtable] $Headers
    )

    # Can't figure out how to assemble body    
    $build = Invoke-RestMethod -Uri $BuildUri -Headers $Headers -Method Post -Body $body

    return $build
}

function Set-AuthHeaders
{
    [CmdletBinding()]
    param (
        [string] $UserName = "",
        [string] $AccessToken
    )

    $basicAuth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $UserName,$AccessToken)))
    return @{ Authorization = "Basic $basicAuth" }
}

# Azure DevOps settings
$AccessToken = 'my_access_token'
$vstsProjectUri = 'https://org.visualstudio.com/project'
$vstsApiVersion = "5.0-preview.5"
$headers = Set-AuthHeaders -AccessToken $AccessToken

# Queue a new build
$buildDefinitionUri = "$vstsProjectUri/_apis/build/builds?api-version=$vstsApiVersion"
$buildQueueResult = Queue-Build -BuildUri $buildDefinitionUri -Headers $headers
$buildQueueResult
答案

放入体内最重要的是构建ID。

您可以通过以下方式在PowerShell中创建主体:

$BuildDefinitionId = 5345
$body = @{ definition = @{id = $BuildDefinitionId}}
$json = $body | ConvertTo-Json

现在在你的休息电话中,-Body $json将采取身体并将队列建立5345。

以上是关于用于排队构建的Invoke-RestMethod的Body需要包含什么? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Invoke-RestMethod:发送到标头时找不到请求的身份验证数据

Invoke-RESTMethod PowerShell

无法使用 Invoke-RestMethod 更新工作项历史记录

格式化 Invoke-RestMethod 或 ConvertFrom-Json 返回的 [pscustomobject] 实例

Powershell Invoke-Restmethod不能将生成的Authtoken用作变量

powershell 使用REST-API的PowerShell V3 Multipart / formdata示例(Invoke-RestMethod)