Как программно добавить участника в команду VSTS?
Я хочу добавить пользователя / участника (у которого уже есть учетная запись VSTS) в определенной команде (в рамках конкретного проекта) программно. С портала мы всегда можем сделать то же самое. Но я ищу REST-сервис, который будет делать то же самое для меня.
В приведенной ниже документации от Microsoft мы получаем несколько API, связанных с командой. Но это не обеспечивает ничего, связанного с тем, "как добавить существующего владельца учетной записи VSTS в команду"
https://www.visualstudio.com/en-us/docs/integrate/api/tfs/teams
Заранее спасибо.
1 ответ
Вариант 1: REST API (пока недоступно)
На данный момент нет такого API REST для добавления участников в командный проект. Но есть голос пользователя add rest api для добавления участников в команду, которые предлагают добавить эту функцию для REST API, вы можете проголосовать и продолжить.
Когда REST API станет доступным, вы можете программно использовать REST API для добавления члена в команду.
Вариант 2: API
Вы также можете сослаться на соответствующий код под голосом пользователя в части комментариев (пример добавления участников в команду по умолчанию):
public Task<TeamProject> GetProjectAsync(string projectId)
{
var projectClient = this.Connection.GetClient<ProjectHttpClient>();
return projectClient.GetProject(projectId);
}
public async Task GrantProjectAccessAsync(string projectId, string email)
{
var project = await this.GetProjectAsync(projectId);
var client = this.Connection.GetClient<IdentityHttpClient>();
var identities = await client.ReadIdentitiesAsync(Microsoft.VisualStudio.Services.Identity.IdentitySearchFilter.MailAddress, email);
if (!identities.Any() || identities.Count > 1)
{
throw new InvalidOperationException("User not found or could not get an exact match based on email");
}
var userIdentity = identities.Single();
var groupIdentity = await client.ReadIdentityAsync(project.DefaultTeam.Id);
await client.AddMemberToGroupAsync(
groupIdentity.Descriptor,
userIdentity.Id
);
}
Чтобы добавить участников для другой команды, вы можете использовать метод teamClient.GetTeamsAsync, чтобы получить команды для проекта, а затем получить идентификатор команды, сопоставив его с указанным именем команды.