Azure DevOps API ile proje deposu için izinleri olan grupları / kullanıcıları nasıl listeleyebilirim?
REST API aracılığıyla projedeki bazı depolara erişim izni olanları kontrol etmek istiyorum. Belgelere atıfta bulundum ama her şeyi bulabildim.
Yanıtlar
Kullanılması AzurePipelinesPS PowerShell modülü aşağıdaki komutları çalıştırabilir bir izin rapor oluşturmak ve dosyayı yerel olarak kaydedin. _YourSessionName_, oturumunuzun adıdır. AzurePipelinesPS ile oturum yönetimi hakkında daha fazla bilgi için, belgeleri inceleyebilir burada .
Raporu Oluşturun
_MyTeamProjectName_, ekip projenizin adı ve _myRepoName_, deponuzun adı olduğu bir ekip projesinde bir havuz için bir rapor oluşturur. Bu girdi nesnesi, her türlü izin raporu oluşturmak için değiştirilebilir. Buradaki belgelere bakın .
New-APPermissionReport -Session '_yourSessionName_' -InputObject @{
descriptors = @()
reportName = 'myFirstPermissionReport'
resources = @(
@{
resourceId = '_myTeamProjectName_/_myRepoName_'
resourceName = '_myRepoName_'
resourceType = 'repo'
}
)
}
Rapor Durumunu Döndür
Listedeki ilk raporun rapor bilgilerini verir
$session = '_yourSessionName_' $reports = Get-APPermissionReportList -Session $session Get-APPermissionReport -Session $session -ReportId $reports[0].id
Raporu Kaydedin
Listedeki ilk raporu c: \ temp \ myReport.json konumunda bulunan bir dosyaya kaydeder
$session = '_yourSessionName_'
$reports = Get-APPermissionReportList -Session $session
Save-APPermissionReport -Session $session -ReportId $reports[0].id -OutputPath C:\temp\myReport.json
Modülle ilgili herhangi bir sorununuz varsa lütfen AzurePipelinesPS Github projesinde bir sorun açmaktan çekinmeyin
Azure DevOps API ile proje deposu için izinleri olan grupları / kullanıcıları nasıl listeleyebilirim?
Şimdilik, korkarım her Kullanıcı / Grup için git repo izinlerini almak için böyle bir Rest API yok.
Yöntemler önizleme sürümü REST API İzinleri Raporu - Listesinde listelenmesine rağmen, böyle bir REST API henüz tam olarak uygulanmamış gibi görünüyor:

Bu REST API umarız yakında piyasaya sürülecektir.
Bazı ayrıntılar için bu benzer konuyu ve bu konuyu kontrol edebilirsiniz .
Bu, şu raporları almak için 3 bölümden oluşan bir alıştırmadır: #Raporu isteyin:
$uri= -join("https://dev.azure.com/", $Account, "/_apis/permissionsreport?api-version=6.1-preview.1")
$Report=Invoke-RestMethod -Method Post -Uri $uri -Headers @{Authorization=("Basic {0}" -f $auth)} -ContentType "application/json" -Body $body
$fileUri=-join($Report[0]._Link.href, "?api-version=6.0-preview.1")
do{
#Now wait for it to complete:
sleep -Seconds 45
$ReportObj=Invoke-RestMethod -Method get -Uri $Fileuri -Headers @{Authorization=("Basic {0}" -f $auth)} -ContentType "application/json" }while($ReportObj.reportStatus -ne "completedSuccessfully" -and $ReportObj.error -eq $null)
#Now get the report
$fileUri=-join($Report[0]._downloadLink.href, "?api-version=6.0-preview.1")
$ReportObj=Invoke-RestMethod -Method get -Uri $Fileuri -Headers @{Authorization=("Basic {0}" -f $auth)} -ContentType "application/json" #because this isn't designed to be read directly like I've done, you have to clean it up: $ReportObj=$ReportObj.Replace("", "") | ConvertFrom-Json
Amaçlarım için çok yavaş buldum. Tek tek kontrol edilmesi gereken 1300 maddeden oluşan bir projem var, şu ana kadar 27 saattir çalışıyor ve bu hafta sonuna kadar tamamlanmasını bekliyorum. Kaynak verileri yalnızca bir olabilir. Tanımlayıcı gibi katları desteklemez. Tanımlayıcı 70'ten fazlasını işleyemez. Bunların hiçbiri belgelenmemiştir.