Devops server 2019 - 是否有 REST api 来向项目和团队添加成员
Devops server 2019 - Is there an REST api to add members to project and team
我正在寻找使用 REST 将成员添加到 Project API。
我能够使用 API 创建项目:
POST https://{instance}/{collection}/_apis/projects?api-version=5.0
此外,我能够使用 REST 在项目中创建团队 API:
POST https://{instance}/{collection}/_apis/projects/{projectId}/teams?api-version=5.0
但是,我无法获得 REST API 来向团队和项目添加成员。
你能帮忙吗?
Devops server 2019 - Is there an REST api to add members to project
and team
对于这个问题,我认为没有开箱即用的方法 api 可以实现。 Members - Add 其余 api 目前不适用于 Azure DevOps Server 2019。
作为一种解决方法,我们可以通过在浏览器中按 F12
然后 select Network
.
来跟踪此休息 api
样品请求 url :
https://collectionName/DefaultCollection/projectId/_api/_identity/AddIdentities?__v=5
示例请求正文:
{
"newUsersJson": "[]",
"existingUsersJson": "[\"55b98726-c6f5-48d2-976b-xxxxxx\"]",
"groupsToJoinJson": "[\"7283653f-54b2-4ebf-86c3-xxxxxxx\"]",
"aadGroupsJson": "[]"
}
这一步需要将要添加的成员名称和团队名称转换为json,然后添加到请求体中。这是 说明如何在 C# 中将字符串转换为 JSON。
从这个记录中,我们可以得到请求url和请求正文。
我用postman测试了一下,可以成功添加成员到项目组。
这里有两个案例( , case2)有类似的问题。你也可以参考一下。
上述案例中的使用语音实例不再可用。您可以向我们的 main forum 提交新的产品建议。我们的 PM 和产品组正在定期审查这些建议,并考虑将其作为计划。
用于向项目和团队添加成员的 REST API 未记录。正如 Hugh 提到的,我们可以使用开发工具跟踪 REST API(在浏览器中按 F12),但是正如我们所见,我们只能在请求 json 正文中使用用户和 team/group GUID .
Post https://wsicads2019/DefaultCollection/{project}/_api/_identity/AddIdentities?api-version=5.0
Request Body:
{
"newUsersJson": "[]",
"existingUsersJson": "[\"55b98726-c6f5-48d2-976b-xxxxxx\"]",
"groupsToJoinJson": "[\"7283653f-54b2-4ebf-86c3-xxxxxxx\"]",
"aadGroupsJson": "[]"
}
对于特定的 team/group,我们可以使用 REST APIs Projects 和团队来获取他们的 GUID。
对于用户来说,实际上是使用了TeamFoundationId
,唯一的TeamFoundationId
是在用户添加到Azure DevOps Server时自动生成的。我们无法使用外部工具生成 ID。
因此,要使用该 REST API,我们需要获取要将其添加到 projects/teams.
的特定用户的 TeamFoundationId
目前,没有 REST API 列出 Azure DevOps Server 2019 中的 TeamFoundationId
用户,但是我们可以通过客户端 API 获取它:
以下示例供您参考以获取特定用户的 TeamFoundationId
:(它还会将用户列表及其 TeamFoundationId
导出到 userlist.txt
)
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
using System.Linq;
using System.IO;
namespace Getuserlist
{
class Program
{
static void Main(string[] args)
{
TfsConfigurationServer tcs = new TfsConfigurationServer(new Uri("https://wsicads2019"));
IIdentityManagementService ims = tcs.GetService<IIdentityManagementService>();
TeamFoundationIdentity tfi = ims.ReadIdentity(IdentitySearchFactor.AccountName, "[DefaultCollection]\Project Collection Valid Users", MembershipQuery.Expanded, ReadIdentityOptions.None);
TeamFoundationIdentity[] ids = ims.ReadIdentities(tfi.Members, MembershipQuery.None, ReadIdentityOptions.None);
using (StreamWriter file = new StreamWriter("userlist.txt"))
foreach (TeamFoundationIdentity id in ids)
{
if (id.Descriptor.IdentityType == "System.Security.Principal.WindowsIdentity" && id.UniqueName == "Domain\User")
{ Console.WriteLine("[{0},{1}]", id.UniqueName, id.TeamFoundationId); }
file.WriteLine("[{0},{1}]", id.UniqueName, id.TeamFoundationId);
}
var count = ids.Count(x => ids.Contains(x));
Console.WriteLine(count);
Console.ReadLine();
}
}
}
我正在寻找使用 REST 将成员添加到 Project API。
我能够使用 API 创建项目:
POST https://{instance}/{collection}/_apis/projects?api-version=5.0
此外,我能够使用 REST 在项目中创建团队 API:
POST https://{instance}/{collection}/_apis/projects/{projectId}/teams?api-version=5.0
但是,我无法获得 REST API 来向团队和项目添加成员。
你能帮忙吗?
Devops server 2019 - Is there an REST api to add members to project and team
对于这个问题,我认为没有开箱即用的方法 api 可以实现。 Members - Add 其余 api 目前不适用于 Azure DevOps Server 2019。
作为一种解决方法,我们可以通过在浏览器中按 F12
然后 select Network
.
样品请求 url :
https://collectionName/DefaultCollection/projectId/_api/_identity/AddIdentities?__v=5
示例请求正文:
{
"newUsersJson": "[]",
"existingUsersJson": "[\"55b98726-c6f5-48d2-976b-xxxxxx\"]",
"groupsToJoinJson": "[\"7283653f-54b2-4ebf-86c3-xxxxxxx\"]",
"aadGroupsJson": "[]"
}
这一步需要将要添加的成员名称和团队名称转换为json,然后添加到请求体中。这是
从这个记录中,我们可以得到请求url和请求正文。
我用postman测试了一下,可以成功添加成员到项目组。
这里有两个案例(
上述案例中的使用语音实例不再可用。您可以向我们的 main forum 提交新的产品建议。我们的 PM 和产品组正在定期审查这些建议,并考虑将其作为计划。
用于向项目和团队添加成员的 REST API 未记录。正如 Hugh 提到的,我们可以使用开发工具跟踪 REST API(在浏览器中按 F12),但是正如我们所见,我们只能在请求 json 正文中使用用户和 team/group GUID .
Post https://wsicads2019/DefaultCollection/{project}/_api/_identity/AddIdentities?api-version=5.0
Request Body:
{
"newUsersJson": "[]",
"existingUsersJson": "[\"55b98726-c6f5-48d2-976b-xxxxxx\"]",
"groupsToJoinJson": "[\"7283653f-54b2-4ebf-86c3-xxxxxxx\"]",
"aadGroupsJson": "[]"
}
对于特定的 team/group,我们可以使用 REST APIs Projects 和团队来获取他们的 GUID。
对于用户来说,实际上是使用了TeamFoundationId
,唯一的TeamFoundationId
是在用户添加到Azure DevOps Server时自动生成的。我们无法使用外部工具生成 ID。
因此,要使用该 REST API,我们需要获取要将其添加到 projects/teams.
的特定用户的TeamFoundationId
目前,没有 REST API 列出 Azure DevOps Server 2019 中的 TeamFoundationId
用户,但是我们可以通过客户端 API 获取它:
以下示例供您参考以获取特定用户的 TeamFoundationId
:(它还会将用户列表及其 TeamFoundationId
导出到 userlist.txt
)
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
using System.Linq;
using System.IO;
namespace Getuserlist
{
class Program
{
static void Main(string[] args)
{
TfsConfigurationServer tcs = new TfsConfigurationServer(new Uri("https://wsicads2019"));
IIdentityManagementService ims = tcs.GetService<IIdentityManagementService>();
TeamFoundationIdentity tfi = ims.ReadIdentity(IdentitySearchFactor.AccountName, "[DefaultCollection]\Project Collection Valid Users", MembershipQuery.Expanded, ReadIdentityOptions.None);
TeamFoundationIdentity[] ids = ims.ReadIdentities(tfi.Members, MembershipQuery.None, ReadIdentityOptions.None);
using (StreamWriter file = new StreamWriter("userlist.txt"))
foreach (TeamFoundationIdentity id in ids)
{
if (id.Descriptor.IdentityType == "System.Security.Principal.WindowsIdentity" && id.UniqueName == "Domain\User")
{ Console.WriteLine("[{0},{1}]", id.UniqueName, id.TeamFoundationId); }
file.WriteLine("[{0},{1}]", id.UniqueName, id.TeamFoundationId);
}
var count = ids.Count(x => ids.Contains(x));
Console.WriteLine(count);
Console.ReadLine();
}
}
}