如何以编程方式在VSTS团队中添加成员?

时间:2017-10-25 13:25:47

标签: tfs azure-devops azure-devops-rest-api

我想以编程方式在特定团队(在特定项目下)添加用户/成员(已经拥有VSTS帐户)。从门户网站我们可以做同样的事情。但是,我正在寻找一些可以为我做同样的REST服务。

在下面的文档来自Microsoft,我们得到了几个与团队相关的api。但它没有提供任何与“如何将现有VSTS帐户持有者”添加到团队相关的内容'

https://www.visualstudio.com/en-us/docs/integrate/api/tfs/teams

提前致谢。

1 个答案:

答案 0 :(得分:0)

选项1:REST API(暂时不可用)

目前,没有这样的REST API可以将成员添加到团队项目中。 但是有一个用户语音add rest api for adding members to a team建议为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方法获取项目团队,然后通过匹配给定的团队名称来获取团队ID。