使用 VSTS REST API 创建带有标题的版本

Posted

技术标签:

【中文标题】使用 VSTS REST API 创建带有标题的版本【英文标题】:Create release with title using 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)

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

请求正文(不包括前面在脚本和函数中为 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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

以上是关于使用 VSTS REST API 创建带有标题的版本的主要内容,如果未能解决你的问题,请参考以下文章

使用 VSTS Rest API 设置 git repo 权限

VSTS 发布:使用 c# NuGet 包创建发布

VSTS:如何使用 REST API 获取由构建触发的发布 ID

如何检索在 VSTS 中触发构建时使用的构建参数(使用 REST API)?

无法通过REST API为punlisherId = tfs和eventId tfvc.checkin创建VSTS webhook订阅

VSTS REST API 缓存