构建完成后,VSTS不再向全局列表添加内部版本号?

时间:2017-05-23 07:15:44

标签: azure-devops-rest-api

我正在使用VSTS build&发布功能以构建.net项目。在构建项目之后,我希望在全局列表中更新内部版本号,以便我可以选择相同的内部版本号来解决缺陷(在Build中集成)以及通过MTM执行测试用例。

当我们使用内部部署TFS 2013时,会出现此功能。

如果有办法更新版本号,请告诉我。在使用VSTS Rest API的全局列表中。

先谢谢!!

1 个答案:

答案 0 :(得分:0)

没有Rest API来更新全局列表,您可以使用VSTS / TFS客户端API(WorkItemStore.ImportGlobalLists方法)或witadmin commands更新全局列表。

使用PowerShell的示例:Get TfsCollection and TFS ServicesAdding to a GlobalList

function Add-TfsGlobalListItem {
    Param(
        [parameter(Mandatory=$true)][Microsoft.TeamFoundation.Client.TfsTeamProjectCollection] $TfsCollection,
        [parameter(Mandatory=$true)][String] $GlobalListName,
        [parameter(Mandatory=$true)][String] $GlobalEntryValue
        )
    # Get Global List
    $store = Get-TfsWorkItemStore $TfsCollection
    [xml]$export = $store.ExportGlobalLists();

    $globalLists = $export.ChildNodes[0];
    $globalList = $globalLists.SelectSingleNode("//GLOBALLIST[@name='$GlobalListName']")

    # if no GL then add it
    If ($globalList -eq $null)
    {
        $globalList = $export.CreateElement("GLOBALLIST");
        $globalListNameAttribute = $export.CreateAttribute("name");
        $globalListNameAttribute.Value = $GlobalListName
        $globalList.Attributes.Append($globalListNameAttribute);
        $globalLists.AppendChild($globalList);
    }

    #Create a new node.
    $GlobalEntry = $export.CreateElement("LISTITEM");
    $GlobalEntryAttribute = $export.CreateAttribute("value");
    $GlobalEntryAttribute.Value = $GlobalEntryValue
    $GlobalEntry.Attributes.Append($GlobalEntryAttribute);

    #Add new entry to list
    $globalList.AppendChild($GlobalEntry)
    # Import list to server
    $store.ImportGlobalLists($globalLists)

另一方面,您可以参考本文更新构建的相关工作项:Build association with work Items in vNext

更新

连接到VSTS的简单代码:

param(
    [string]$address,
    [string]$username,
    [string]$password
    )
$credentials = New-Object System.Net.NetworkCredential($username, $password)
$tfsCollection = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection((New-Object System.URI($address)))
    $wis = $tfsCollection.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])

然后,您可以在PowerShell任务(构建或发布)Arguments文本框-address XXX -username XXX -password XXX中指定参数。 (用户名可以为空,并使用个人访问令牌作为密码)

另一方面,您可以导入Microsoft Team Foundation Server Extended Client package

中的程序集文件