Làm cách nào để liệt kê các nhóm / người dùng có quyền đối với kho dự án với API Azure DevOps?

Aug 17 2020

Tôi muốn kiểm tra xem ai có quyền truy cập một số kho lưu trữ trong dự án thông qua API REST. Tôi đã tham khảo các tài liệu, nhưng có thể tìm thấy bất cứ điều gì.

Trả lời

Dejulia489 Aug 17 2020 at 15:30

Sử dụng mô-đun AzurePipelinesPS PowerShell, bạn có thể chạy các lệnh sau để tạo báo cáo quyền và lưu tệp cục bộ. Trong đó _yourSessionName_ là tên phiên của bạn. Để tìm hiểu thêm về quản lý phiên với AzurePipelinesPS, bạn có thể xem lại tài liệu tại đây .

Tạo báo cáo

Tạo báo cáo cho kho lưu trữ trong dự án nhóm trong đó _myTeamProjectName_ là tên dự án nhóm của bạn và _myRepoName_ là tên kho lưu trữ của bạn. Đối tượng đầu vào này có thể được sửa đổi để tạo tất cả các loại báo cáo quyền. Xem tài liệu tại đây .

New-APPermissionReport -Session '_yourSessionName_' -InputObject @{
        descriptors = @()
        reportName = 'myFirstPermissionReport'
        resources = @(
            @{
                resourceId = '_myTeamProjectName_/_myRepoName_'
                resourceName = '_myRepoName_'
                resourceType = 'repo'
            }
        )
    }

Trả lại Trạng thái Báo cáo

Trả về thông tin báo cáo cho báo cáo đầu tiên trong danh sách

$session = '_yourSessionName_' $reports = Get-APPermissionReportList -Session $session Get-APPermissionReport -Session $session -ReportId $reports[0].id 

Lưu báo cáo

Lưu báo cáo đầu tiên trong danh sách vào tệp đặt tại c: \ temp \ myReport.json

$session = '_yourSessionName_'
$reports = Get-APPermissionReportList -Session $session
Save-APPermissionReport -Session $session -ReportId $reports[0].id -OutputPath C:\temp\myReport.json

Nếu bạn có bất kỳ vấn đề nào với mô-đun, vui lòng mở vấn đề trên dự án AzurePipelinesPS Github

1 LeoLiu-MSFT Aug 18 2020 at 03:32

Làm cách nào để liệt kê các nhóm / người dùng có quyền đối với kho dự án với API Azure DevOps?

Hiện tại, tôi e rằng không có API Rest như vậy để nhận quyền git repo cho từng Người dùng / Nhóm.

Mặc dù các phương pháp được liệt kê trong Danh sách - Báo cáo quyền REST API phiên bản xem trước , có vẻ như một API REST như vậy vẫn chưa được triển khai đầy đủ:

API REST này hy vọng sẽ sớm được phát hành.

Bạn có thể kiểm tra chủ đề tương tự này và chủ đề này để biết một số chi tiết.

user2197169 Oct 22 2020 at 20:50

Đây là bài tập gồm 3 phần để nhận các báo cáo này: # Yêu cầu báo cáo:

 $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

Tôi thấy nó quá chậm so với mục đích của tôi. Tôi có một dự án với 1300 hạng mục phải được kiểm tra riêng lẻ, cho đến nay, nó đã chạy trong 27 giờ và tôi dự kiến ​​nó sẽ không được hoàn thành cho đến cuối tuần này. Dữ liệu tài nguyên chỉ có thể là một. nó không hỗ trợ bội số như Bộ mô tả Bộ mô tả không thể xử lý bất kỳ quá 70. Không có cái nào trong số đó được ghi lại.