Я не думаю, что есть встроенная функция, подобная этой.
То, что вы можете сделать, - это создать строковое поле, которое берет значения из gloabllist, в globallist create в первомвремя для глобалиста с именем проекта, например:
<GLOBALLIST name="MyProject-builds">
</GLOBALLIST>
Теперь вы можете использовать PowerShell, чтобы получить определения сборки для этого проекта, и обновить этого глобалиста со значениями:
Param(
[string]$collection = "http://tfs-server:8080/tfs/collection",
[string]$project = "MyProject",
[string]$filePath = "C:\Globallist.xml"
)
$url = "$collection/$project/_apis/build/definitions?api-version=4.0"
$builds = (Invoke-RestMethod -Uri $url -Method Get -UseDefaultCredentials -ContentType application/json).value.name
witadmin exportgloballist /collection:$collection /f:$filePath
[xml]$gloabllist = Get-Content $filePath
$gloabllist.GLOBALLISTS.GLOBALLIST.Where({ $_.name -eq "$project-builds" }).LISTITEM | %{ $_.ParentNode.RemoveChild($_) | Out-Null }
$node = $gloabllist.GLOBALLISTS.GLOBALLIST.Where({ $_.name -eq "$project-builds" })
$builds.ForEach({
$child = $gloabllist.CreateElement("LISTITEM")
$att = $gloabllist.CreateAttribute("value")
$child.Attributes.Append($att)
$child.value = "$_"
$node.AppendChild($child)
})
$gloabllist.Save($filePath)
witadmin importgloballist /collection:$collection /f:$filePath
Вы можете установить запланированную сборку, которая будет настраивать этот скрипт каждый день, чтобы он постоянно обновлялся.
Вы также можете улучшить сценарий, чтобы получить все проекты, создать их заново, получить имена определений сборки и обновить глобалистфайл.