Azure-Devops 通过 Rest API 从 projectContributor 中删除用户

Azure-Devops remove user from projectContributor via Rest API

我正在尝试使用 PowerShell 从 groupType projectContributor 中删除用户,以便将他移至项目团队。我可以完成添加到项目团队,但是我已经尽我所能使用 PATCH 删除此用户权利但没有成功。仅供参考,为了避免评论,正在传递 OrgUrl、projectId 和 userId。

    $b= @"
[
    {
        "op": "remove",
        "path": "/projectEntitlements",
        "value": {
            "projectRef": {
                "id": "$projectID"
            },
            "group": {
                "groupType": "projectContributor"
            }
        }
    }
]
"@

$uri = "$orgURL/_apis/userentitlements/$userId`?api-version=5.1-preview.2"
Invoke-RestMethod -Uri $uri -ContentType "application/json-patch+json" -Body $b -Method PATCH -Headers @{ Authorization = ("Basic {0}" -f $base64AuthInfo)}

我得到的错误是:

projectId","typeName":"System.ArgumentException, mscorlib","typeKey":"ArgumentException","errorCode":0,"eventId":0}
At line:20 char:1
+ Invoke-RestMethod -Uri $uri -ContentType "application/json-patch+json ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

感谢任何帮助/示例。 我已经阅读了 Azure DevOps API 的所有 API 文档 API。

请试试这个:

$b= @"
[
    {
        "op": "remove",
        "path": "/projectEntitlements/$projectID",
        "value": {
            "projectRef": {
                "id": "$projectID"
            },
            "group": {
                "groupType": "projectContributor"
            }
        }
    }
]
"@

并且由于您正在删除这条路径下的价值,我不确定您是否需要价值,所以这应该为您提供相同的价值:

$b= @"
[
    {
        "op": "remove",
        "path": "/projectEntitlements/$projectID",
        "value": ""
    }
]
"@

我在使用 User Entitlement rest api 时遇到了同样的错误。

它对我有用 Remove Member From Group 休息 api。

DELETE https://vsaex.dev.azure.com/{organization}/_apis/GroupEntitlements/{groupId}/members/{memberId}?api-version=5.1-preview.1

当用户作为项目参与者添加到项目时。此用户将被添加到此项目的 [ProjectName]\Contributors 组。

然后您可以使用 Group List rest api 获取 [ProjectName]\Contributors 的组 ID。上面Remove Member From Groupapi的{memberId}是用户的userId。然后你可以调用上面的 api 将用户从项目贡献者组中删除。