Como listar os grupos / usuários que têm permissões para o repositório do projeto com a API do Azure DevOps?
Quero verificar quem tem permissão para acessar alguns dos repositórios no projeto por meio da API REST. Eu me referi às documentações, mas não consegui encontrar nada.
Respostas
Usando o módulo AzurePipelinesPS PowerShell, você pode executar os comandos a seguir para criar um relatório de permissão e salvar o arquivo localmente. Onde _yourSessionName_ é o nome da sua sessão. Para saber mais sobre o gerenciamento de sessão com AzurePipelinesPS, você pode revisar a documentação aqui .
Crie o relatório
Cria um relatório para um repositório em um projeto de equipe onde _myTeamProjectName_ é o nome do seu projeto de equipe e _myRepoName_ é o nome do seu repositório. Este objeto de entrada pode ser modificado para criar todos os tipos de relatórios de permissões. Veja a documentação aqui .
New-APPermissionReport -Session '_yourSessionName_' -InputObject @{
descriptors = @()
reportName = 'myFirstPermissionReport'
resources = @(
@{
resourceId = '_myTeamProjectName_/_myRepoName_'
resourceName = '_myRepoName_'
resourceType = 'repo'
}
)
}
Retornar o status do relatório
Retorna as informações do relatório para o primeiro relatório da lista
$session = '_yourSessionName_' $reports = Get-APPermissionReportList -Session $session Get-APPermissionReport -Session $session -ReportId $reports[0].id
Salve o relatório
Salva o primeiro relatório da lista em um arquivo localizado em c: \ temp \ myReport.json
$session = '_yourSessionName_'
$reports = Get-APPermissionReportList -Session $session
Save-APPermissionReport -Session $session -ReportId $reports[0].id -OutputPath C:\temp\myReport.json
Se você tiver qualquer problema com o módulo, sinta-se à vontade para abrir um problema no projeto AzurePipelinesPS Github
Como listar os grupos / usuários que têm permissões para o repositório do projeto com a API do Azure DevOps?
Por enquanto, infelizmente não existe uma API Rest para obter permissões de repo do git para cada usuário / grupo.
Embora os métodos estejam listados no Relatório de permissões da API REST da versão de visualização - Lista , parece que essa API REST ainda não foi totalmente implementada:

Esperamos que esta API REST seja lançada em breve.
Você pode verificar este tópico semelhante e este tópico para alguns detalhes.
Este é um exercício de 3 partes para obter estes relatórios: # Solicite o relatório:
$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
Descobri que é muito lento para meus propósitos. Tenho um projeto com 1300 itens que precisam ser verificados individualmente, até o momento está em execução há 27 horas e espero que não seja concluído até este final de semana. Os dados do recurso só podem ser um. ele não suporta múltiplos como o Descritor O descritor não pode lidar com mais de 70. Nada disso está documentado.