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

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

Archive for 27.12.2018

Azure DevOps Services Rest Api. 9. Управление командами проекта

Posted by Shamrai Alexander на 27 декабря, 2018

<< Перейти в радел «Azure DevOps Services (TFS/VSTS) Rest Api»

Управление командами выполняется довольно просто через TeamHttpClient. Для управления командами достаточно знать название команды и имя проекта, в котором она находится или будет находится. Классом, который содержит информацию о команде, является класс WebApiTeam со следующими основными свойствами:

  • Id – идентификатор.
  • Name – наименование команды.
  • Description – описание команды.
  • ProjectName – наименование проекта, в которую входит команда.
  • ProjectId – идентификатор проекта, в которую входит команда.

Для получения информации о команде используется метод GetTeamAsync, который использует только два параметра имя проекта и имя команды или их идентификаторы. Получить список всех команд можно через GetTeamsAsync, указав на вход только наименование проекта:

List<WebApiTeam> teams = TeamClient.GetTeamsAsync(TeamProjectName).Result;

Console.WriteLine(«Project Teams:»);

foreach (WebApiTeam team in teams) Console.WriteLine(team.Name);

Если необходимо получить информацию об участниках команды, то можно выполнить метод GetTeamMembersWithExtendedPropertiesAsync, в который передаются все те же имя проекта и имя команды. Участник команды описывается классом TeamMember, который содержит два свойства:

  • IsTeamAdmin – является ли участник команды администратором.
  • Identity – информация об учетной записи пользователя.

Пример изучения состава команды:

List<TeamMember> teamMembers = TeamClient.GetTeamMembersWithExtendedPropertiesAsync(TeamProjectName, TeamName).Result;

string teamAdminName = (from tm in teamMembers where tm.IsTeamAdmin == true
select tm.Identity.DisplayName).FirstOrDefault();

if (teamAdminName != null) Console.WriteLine(«Team Administrator:» + teamAdminName);

Console.WriteLine(«Team members:»);

foreach (TeamMember teamMember in teamMembers)

if (!teamMember.IsTeamAdmin) Console.WriteLine(teamMember.Identity.DisplayName);

 

Для создания и обновления команды используются методы CreateTeamAsync и UpdateTeam соответственно. Основные параметры это:

  • team – объект WebApiTeam, в котором устанавливаются наименование и описание команды.
  • projectId – наименование проекта команды
  • teamId – идентификатор существующей команды, который используется только при обновлении наименования или описания.

Пример обновления команды:

WebApiTeam team = TeamClient.GetTeamAsync(TeamProjectName, TeamName).Result;

WebApiTeam updatedTeam = new WebApiTeam {

Name = team.Name + » updated»,

Description = team.Description.Replace(«Created», «Updated»)

};

updatedTeam = TeamClient.UpdateTeamAsync(updatedTeam, team.ProjectName, team.Name).Result;

Console.WriteLine(«The team ‘{0}’ has been updated in the team project ‘{1}'», updatedTeam.Name, updatedTeam.ProjectName);

 

Для удаления команды используется метод DeleteTeamAsync с наименованием проекта и удаляемой команды:

TeamClient.DeleteTeamAsync(TeamProjectName, TeamName).SyncResult();

Пример тестового приложения можно посмотреть здесь:

https://github.com/ashamrai/TFRestApi/tree/master/09.TFRestApiAppManageTeams

English version

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

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