Заметки консультанта

Шамрай Александр Владимирович

Archive for Август 2017

Как получить список команд проекта и их настройки через API

Posted by Shamrai Alexander на Август 9, 2017

Для получения необходимой информации воспользуемся nuget пакетом Microsoft.TeamFoundationServer.ExtendedClient, который обеспечивает необходимые .Net библиотеки для работы как с Team Foundation Server, так и с Team Services. Если говорить о последовательности, который необходимо выполнить, то это можно представить следующими шагами:

  • Подключиться к коллекции проектов через класс TfsTeamProjectCollection:

TfsTeamProjectCollection _tpc = new TfsTeamProjectCollection(new Uri(«http://server:8080/Collection»))

  • Получить сервис работы с рабочими элементами для выбранной коллекции:

WorkItemStore _wistore = _tpc.GetService<WorkItemStore>();

  • Получить сервис для работы с командами для выбранной коллекции:

TfsTeamService _teamService = _tpc.GetService<TfsTeamService>();

  • Набор все команд можно запросить через метод QueryTeams() сервиса работы с командами. Команды реализуются через класс TeamFoundationTeam:

var _teams = _teamService.QueryTeams(pProject.Uri.ToString());

  • Список участников команды можно получить через метод GetMembers класса TeamFoundationTeam.
  • Для работы с настройками команды (итерации, пути области и т.д.) используется также отдельный сервис TeamSettingsConfigurationService:

var _teamConfig = _tpc.GetService<TeamSettingsConfigurationService>();

  • В свою очередь настройки для команды можно получить через метод GetTeamConfigurations сервиса работы с настройками команд:

var _configs = _teamConfig.GetTeamConfigurations(new Guid[] {pTeam.Identity.TeamFoundationId});

Полный пример кода можно посмотреть ниже:

static List<TeamFoundationTeam> ListTeams(TfsTeamProjectCollection pTpc, Project pProject)

{

TfsTeamService _teamService = pTpc.GetService<TfsTeamService>();

var _teams = _teamService.QueryTeams(pProject.Uri.ToString());

return (from t in _teams select t).ToList();

}

static bool GetTeamsSettings(TfsTeamProjectCollection pTpc, TeamFoundationTeam pTeam)

{

try

{

var _teamConfig = pTpc.GetService<TeamSettingsConfigurationService>();

var _configs = _teamConfig.GetTeamConfigurations(new Guid[] { pTeam.Identity.TeamFoundationId });

Console.WriteLine(«============={0}==================», pTeam.Name);

Console.WriteLine(«Team Members: «);

foreach (var _member in pTeam.GetMembers(pTpc, MembershipQuery.Expanded))

Console.WriteLine(«Display Name: » + _member.DisplayName + » || Is active: » + _member.IsActive);

foreach( var _config in _configs)

{

Console.WriteLine(«Team current iteration: » + _config.TeamSettings.CurrentIterationPath);

Console.WriteLine(«Team selected iterations:»);

foreach (var _iteration in _config.TeamSettings.IterationPaths)

Console.WriteLine(_iteration);

Console.WriteLine(«Team selected areas:»);

foreach (var _area in _config.TeamSettings.TeamFieldValues)

Console.WriteLine(«Area path: » + _area.Value + » || Include children: » + _area.IncludeChildren.ToString());

}

Console.WriteLine(«===============================»);

}

catch (Exception)

{

return false;

}

return true;

}

static void Main(string[] args)

{

string _teamProject = «VSTSAgile»;

try

{

TfsTeamProjectCollection _tpc = new TfsTeamProjectCollection(new Uri(«http://server:8080/Collection&#187;));

WorkItemStore _wistore = _tpc.GetService<WorkItemStore>();

var _teams = ListTeams(_tpc, _wistore.Projects[_teamProject]);

foreach (var _team in _teams) GetTeamsSettings(_tpc, _team);

}

catch (Exception ex)

{

Console.WriteLine(«Error: » + ex.Message);

Console.WriteLine(ex.StackTrace);

}

}

Реклама

Posted in Microsoft, Team Foundation Server, Visual Studio, visual studio team services | Отмечено: , , , , | Leave a Comment »

 
%d такие блоггеры, как: