簡體   English   中英

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 文檔。

我在使用用戶授權rest api 時遇到了同樣的錯誤。

從組 rest 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 將用戶從項目貢獻者組中刪除。

請試試這個:

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

而且由於您要在這條路徑下刪除價值,我不確定您是否需要價值,所以這應該為您提供相同的:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM