如何解决如何使用Azure DevOps API列出有权访问项目存储库的组/用户?
我想检查谁有权通过REST API访问项目中的某些回购协议。我参考了文档,但是什么都找不到。
解决方法
如何使用Azure DevOps API列出有权访问项目存储库的组/用户?
目前,恐怕还没有这样的Rest API来获取每个用户/组的git repo权限。
尽管这些方法在预览版本REST API Permissions Report - List中列出,但似乎尚未完全实现这样的REST API:
该REST API有望很快发布。
您可以检查similar thread和this thread以获得一些详细信息。
,使用AzurePipelinesPS PowerShell模块,您可以运行以下命令来创建权限报告并将文件保存在本地。其中_yourSessionName_是会话的名称。要了解有关使用AzurePipelinesPS进行会话管理的更多信息,可以查看文档here。
创建报告
为团队项目中的存储库创建一个报告,其中_myTeamProjectName_是您的团队项目的名称,而_myRepoName_是您的存储库的名称。可以修改此输入对象以创建各种权限报告。请参阅文档here。
New-APPermissionReport -Session '_yourSessionName_' -InputObject @{
descriptors = @()
reportName = 'myFirstPermissionReport'
resources = @(
@{
resourceId = '_myTeamProjectName_/_myRepoName_'
resourceName = '_myRepoName_'
resourceType = 'repo'
}
)
}
返回报告状态
返回列表中第一个报告的报告信息
$session = '_yourSessionName_'
$reports = Get-APPermissionReportList -Session $session
Get-APPermissionReport -Session $session -ReportId $reports[0].id
保存报告
将列表中的第一个报告保存到位于c:\ temp \ myReport.json的文件中
$session = '_yourSessionName_'
$reports = Get-APPermissionReportList -Session $session
Save-APPermissionReport -Session $session -ReportId $reports[0].id -OutputPath C:\temp\myReport.json
如果您对模块有任何疑问,请随时在AzurePipelinesPS Github project
上打开一个问题。 ,这是获取这些报告的3个步骤: #请求报告:
$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
对于我的目的,我发现它太慢了。我有一个项目,其中有1300个项目需要单独检查,到目前为止,该项目已经运行了27个小时,我希望直到本周末才能完成。 资源数据只能是一个。它不支持Descriptor之类的倍数 描述符最多只能处理70个。 没有记录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。