Есть ли способ использовать tf.exe для установки разрешений git для нескольких репозиториев в репозитории Azure? - PullRequest
0 голосов
/ 08 января 2019

Я недавно перешел на DevOps Azure из Teamcity, вчера я перенес около 60 репозиториев.

Я установил некоторые разрешения для нашего репозитория основного проекта, используя tf.exe и эту команду

tf git permission /deny:CreateBranch 
              /group:[FabrikamProject]\Contributors 
              /collection:https://dev.azure.com/fabrikam-fiber/ 
              /teamproject:FabrikamProject 
              /repository:FabrikamRepo

В идеале мне нужно применить те же разрешения к другим репозиториям.

Мне интересно, есть ли способ использовать tf.exe для принятия символов подстановки для параметра хранилища, таких как:

/repository:* - это не работает

Я действительно не хочу проходить их вручную, но придется иначе.

1 Ответ

0 голосов
/ 09 января 2019

Я не знаю, работает ли подстановочный знак, но вы повторяете репозитории и запускаете команду с небольшим сценарием PowerShell (используя Rest API):

$reposJson = Invoke-RestMethod -Method Get -Uri https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=5.0-preview.1 -ContentType application/json

$repos = $reposJson | ConvertFrom-Json

$tfExe = "path/to/exe"

$repos.value.ForEach({

& $txExe git permission /deny:CreateBranch /group:[FabrikamProject]\Contributors /collection:{collection} /teamproject:{project} /repository:$_.name

})

Вам просто нужно пройти аутентификацию, вы можете использовать -Credential {email}Invoke-RestMethod), и окно предложит ввести пароль или использовать PAT следующим образом:

$personalAccessToken = "your-personal-access-token-here"
$header = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)"))}

И добавьте -Headers $header в Invoke-RestMethod.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...