Групповое разрешение для Azure DevOps через CLI - PullRequest
0 голосов
/ 21 апреля 2020

Я хотел бы удалить разрешение УДАЛИТЬ (Удалить проект) из роли Администратор проекта для каждого проекта в Azure DevOps. Вот команды CLI, которые я выполняю. Все идет без ошибок. Однако, когда вы go вернулись и проверили в Интернете, разрешения не затрагиваются. Есть идеи?

$org = "myOrg"
$orgUrl = "https://dev.azure.com/$org"

$projName = "myProject"
$group = "Project Administrators"

$projId = az devops project list --org "$orgURl" -o json --query "value[?@.name == '$projName'].id | [0]"
$projToken = '$PROJECT:vstfs///Classification/TeamProject/'+$projId
$projToken = $projToken -Replace '"', ""

$subject = az devops security group list --org "$orgUrl" --scope organization -o json --subject-types vssgp --query "graphGroups[?@.principalName == '[$projName]\$group'].descriptor | [0]"

$namespaceId = az devops security permission namespace list -o json --org "$orgUrl" --query "[?@.name == 'Project'].namespaceId | [0]"

$bit = az devops security permission namespace show -o json --namespace-id $namespaceId --org "$orgUrl" --query "[0].actions[?@.name == 'DELETE'].bit | [0]" 

az devops security permission update --id $namespaceId --subject $subject --token $projToken --deny-bit $bit --org "$orgUrl" --merge true

Вывод: PS Скриншот

Есть идеи, что я делаю не так?

Заранее спасибо, Джейк

1 Ответ

1 голос
/ 22 апреля 2020

Есть идеи, что я делаю неправильно?

Группе администраторов проекта принадлежат права наивысшие на уровне командного проекта. Таким образом, разрешения проекта («Настройки проекта»> «Разрешения») для этой группы недоступны для редактирования:

enter image description here

Предполагается, что администраторы проекта всегда будут иметь разрешение чтобы удалить командный проект.

За исключением группы Project Administrators, разрешения других групп доступны для редактирования, см .:

enter image description here

1.So если вы хотите добавить одного участника в группу Project Administrator, он не может удалить разрешение на удаление проекта.

(Независимо от того, каким образом мы используем, веб-страницу, Azure Devops Rest Api, команда az devops cli или что, ни один из них не будет работать, так как это предусмотрено)

2.И если вы хотите предоставить одному члену большинство разрешений, которые должен иметь администратор проекта, но кроме разрешения «Удалить командный проект», вы можете попробовать создать новую группу («В настройках проекта => страница разрешений») и дать группе все разрешения, кроме разрешения «Удалить командный проект», что-то вроде этого:

enter image description here

Вам также нужно проделать дополнительную работу, чтобы дать группе необходимые разрешения в безопасности конвейера (см. pi c ниже), Разрешения на повторное использование (настройки проекта => repos => repos) ...

enter image description here

Затем добавьте участника в эту пользовательскую группу вместо значения по умолчанию Project Administrators Группа.

...