2016-07-27 5 views
1

Я пытаюсь автоматизировать некоторые процессы с помощью Powershell. Одна из которых, всякий раз, когда мы выполняем ветвление, мы должны вручную обмануть запрос «Текущая версия» на нашем сайте TFS, который ищет Истории пользователей, поэтому он имеет правильную версию Release в параметрах поиска. Пример скриншотов ниже.Как отредактировать запрос на TFS (веб-сайт) с помощью Powershell?

enter image description here

Это где я хотел бы пойти на TFS, чтобы получить доступ к запросу, а затем отредактировать его. Ниже приведен экран редактора, и я заменил бы поля даты там с датой новой версии. Я хочу получить доступ к этим полям через powershell (как бы то ни было объект TFS, я бы подумал) и обновить их.

enter image description here

Я возиться с TFS Power Tools для Powershell, а также некоторые из объекта вещи, когда я получаю сервер $server = New-Object Microsoft.TeamFoundation.Client.TeamFoundationServer($tfsURI). Но через google-fu и просто возиться с ним, я не могу понять, как отредактировать запрос из Powershell. Может ли кто-нибудь помочь?

ответ

0

Это не прямой ответ на ваш вопрос, но ниже, вероятно, достаточно, чтобы вы начали понимать это сами. Я думаю, что вы, вероятно, использовать $version_control_server

## 
# http://blog.majcica.com/2015/11/15/powershell-tips-and-tricks-retrieving-tfs-collections-and-projects/ 
# this will get you a list of tfs projects hosted on a tfs server 
## 

# Add-Type -AssemblyName "Microsoft.TeamFoundation.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
Add-Type -Path 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Client.dll' 

$uri = 'http://host:8080/tfs' 

$tfsConfigurationServer = [Microsoft.TeamFoundation.Client.TfsConfigurationServerFactory]::GetConfigurationServer($uri) 
$tpcService = $tfsConfigurationServer.GetService('Microsoft.TeamFoundation.Framework.Client.ITeamProjectCollectionService') 

$sortedCollections = $tpcService.GetCollections() | Sort-Object -Property Name 

# 

$collection = $sortedCollections[0] 

$collectionUri = $uri + '/' + $collection.Name 
$tfsTeamProject = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($collectionUri) 
$cssService = $tfsTeamProject.GetService('Microsoft.TeamFoundation.Server.ICommonStructureService3') 
$sortedProjects = $cssService.ListProjects() | Sort-Object -Property Name 


## 
# https://lajak.wordpress.com/2013/01/28/tfs-2012-api-find-all-solutions-in-source-control/ 
# this will take your list of projects and get list of solution paths within those projects 
## 


Add-Type -Path 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.VersionControl.Client.dll' 

$version_control_server = $tfsTeamProject.GetService('Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer') 

$solution_items = $version_control_server.getitems(
    '$/*', 
    [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest, 
    [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full, 
    [Microsoft.TeamFoundation.VersionControl.Client.DeletedState]::NonDeleted, 
    [Microsoft.TeamFoundation.VersionControl.Client.ItemType]::File 
) 

$path_array = $solution_items.items | foreach-object { $_.serveritem } 

($path_array -join "`r`n") | out-file 'C:\tfs_paths.txt' 

## 
0

TFS Power Tools не может достичь этой функции. Вы должны либо использовать библиотеки .Net Client Libraries, как указано в this article, либо вызвать API VSTS Rest для этого: Update a query.

 Смежные вопросы

  • Нет связанных вопросов^_^