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 Group
api的{memberId}
是用户的userId
。然后你可以调用上面的 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 Group
api的{memberId}
是用户的userId
。然后你可以调用上面的 api 将用户从项目贡献者组中删除。