为Azure DevOps团队添加成员

问题描述 投票:-1回答:1

我可以得到团队或团队成员,但我无法找到添加用户到团队的方法,请问是否有RESt_API、命令行或API可以让我使用域名 "domain\user "添加用户到团队?是否有RESt_API、命令行或API可以让我使用域名 "domain/user "添加用户到团队。请告知。非常感谢

最良好的祝愿。

powershell command-line tfs azure-devops
1个回答
0
投票

如果你使用Azure DevOps服务(https:/dev.azure.comxxxx。),您可以使用 成员 - 添加 REST API。

如果您使用 Azure DevOps Server,则没有记录用于向项目和团队添加成员的 REST API。作为一种变通方法,我们可以通过按压 F12 在浏览器中选择 Network.

样品。

POST http://TFS2019:8080/tfs/{Collection}/{project}/_api/_identity/AddIdentities?api-version=5.0

Request Body:

        {
            "newUsersJson": "[]",
            "existingUsersJson": "[\"55b98726-c6f5-48d2-976b-xxxxxx\"]",
            "groupsToJoinJson": "[\"7283653f-54b2-4ebf-86c3-xxxxxxx\"]",
            "aadGroupsJson": "[]"
        }

然而,正如我们所看到的,我们只能在请求json体中使用用户和团队组GUID。对于特定的团队组,我们可以在请求中使用 REST APIs项目 和团队来获取他们的GUID.对于用户来说,其实它是用了 TeamFoundationId,独特的 TeamFoundationId 是在将用户添加到 Azure DevOps Server 时自动生成的。我们无法使用外部工具生成ID。

因此,要使用该 REST API,我们需要获取该 REST API 的 TeamFoundationId 的特定用户的名字,您可以将其添加到项目团队中。

目前,没有REST API来列出 TeamFoundationId 的用户在Azure DevOps Server 2019,不过我们可以通过客户端API来获取。

以下示例供您参考,以获得 TeamFoundationId 的用户:(它还将导出用户列表和他们的 TeamFoundationIduserlist.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();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.