Я загрузил отчет, содержащий информацию о разрешениях в формате JSON, с помощью PowerShell. Мне нужно извлечь из этого отчета сведения о команде и пользователе, а также разрешения, настроенные для каждого пользователя.
Конечная точка API, используемая для извлечения отчета о разрешениях каждого репозитория: "https://dev.azure.com/organizationname/_apis/permissionsreport?api-version=7.1-preview.1"
Как извлечь данные о команде и пользователе, а также разрешения, настроенные для каждого репозитория, из загруженного отчета и создать на его основе таблицу данных?
Запустите Отчет о разрешениях — Список, чтобы получить идентификатор отчета для каждого репозитория.
GET https://dev.azure.com/{organization}/_apis/permissionsreport?api-version=7.1-preview.1
Запустите Загрузка отчета о разрешениях — Загрузить, чтобы загрузить отчет.
GET https://dev.azure.com/{organization}/_apis/permissionsreport/{id}/download?api-version=7.1-preview.1
Запустите следующие сценарии PowerShell, чтобы создать таблицу.
# Load the JSON file
$report = Get-Content -Path '{Path to your json file}' | ConvertFrom-Json
# Create an empty array to hold the result
$result = @()
foreach ($item in $report) {
$displayName = $item.DisplayName
foreach ($permission in $item.Permissions) {
# Create a custom object for each permission
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $displayName
$obj | Add-Member -MemberType NoteProperty -Name "PermissionName" -Value $permission.PermissionName
$obj | Add-Member -MemberType NoteProperty -Name "EffectivePermission" -Value $permission.EffectivePermission
# Add the custom object to the result array
$result += $obj
}
}
# Output the result as a table
$result | Format-Table -AutoSize | Out-File -FilePath "output.txt"
Выходной файл выглядит следующим образом:
Для нескольких репозиториев поместите все файлы Json в папку и прочитайте каждый файл Json внутри папки в самом внешнем цикле. Вы можете фильтровать пользователей или группы, отображаемые в таблице, в соответствии с вашими фактическими потребностями.
Вы можете запустить REST API Команды — Получить членов команды с расширенными свойствами, чтобы получить список участников конкретной команды по названию или идентификатору команды.
Спасибо, это очень помогло. Не могли бы вы помочь мне узнать, как отображать членов команд в DisplayName для каждого репозитория?