【问题标题】:Create release with title using VSTS REST API使用 VSTS REST API 创建带有标题的版本
【发布时间】:2018-06-12 04:39:44
【问题描述】:

我正在使用 4.1-preview.6 版本来调用 VSTS 的 Release API,看起来每当它创建新版本时,版本的标题都不会是预期的标题“Release-#”,而是像“-1”这样的负数。我正在使用 PowerShell。我可以在 Web UI 中看到 Release 名称格式为 $(Build.BuildNumber)-$(rev:r)

  1. 是否有其他版本的 REST API 可以解决此问题?
  2. 还是我在正文中缺少一个参数?

请求正文(不包括前面在脚本和函数中为 Invoke-RestMethod 设置的变量):

    $uri = "https://$($accountName).vsrm.visualstudio.com/$($projectName)/_apis/release/releases?api-version=4.1-preview.6"

    $body = @{
        "definitionId" = "$($releaseDefinitionId)"
        "description" = "Creating automated release"
    }
    $body.Add("artifacts", @())
    $artifact = @{
        "alias" = "$($buildDefinitionName)"
        "instanceReference" = @{
            "id" = "$($buildId)"
            "name" = $null
        }
    }
    $body.artifacts += $artifact

    $jsonBody = $body | ConvertTo-Json -Depth 5

    $response = Invoke-RestCommand -uri $uri -commandType "POST" -jsonBody $jsonBody -personalAccessToken $personalAccessToken

回复:

id                         : 4
name                       : -4
status                     : active
createdOn                  : 2018-06-12T04:27:18.237Z
modifiedOn                 : 2018-06-12T04:27:18.237Z

【问题讨论】:

    标签: powershell azure-devops azure-devops-rest-api


    【解决方案1】:

    您需要检查您在定义中如何定义发布名称格式:

    【讨论】:

    • 我实际上之前克隆了这个发布定义(使用另一组 REST 调用),我可以看到在发布名称格式字段中它显示的发布名称格式与您截取的屏幕截图相同:$( Build.BuildNumber)-$(rev:r).
    • 如果你使用$(Build.BuildNumber)-$(rev:r),你会得到一个像“-1”这样的负数。正如我的屏幕截图所示,您必须将其更改为 Release-$(rev:r)
    • 嗯,看起来确实修复了它,我想知道如果发布是从 API 调用创建的,那么它不会识别像 Build.BuildNumber 这样定义的变量。我想现在这个谜团已经解决了,谢谢!
    猜你喜欢
    • 2023-04-04
    • 2018-08-23
    • 2018-10-28
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2018-10-07
    相关资源
    最近更新 更多