我正在创建一个连接到 Azure Devops API 服务的 powershell 脚本,以获取所有项目、团队和团队成员。然而,我在团队分页方面遇到了一些问题,因为 API 只返回 1000 个结果。我使用查询的顶部和跳过参数来解决这个问题,但这对我的脚本不起作用,这是我所拥有的:
$Members = @()
$Organization = 'org'
$PAT = 'pat'
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($PAT)")) }
$UriOrganization = "https://dev.azure.com/$($Organization)/"
$top_param=1000
$skip_param=0
$uriProject = $UriOrganization + "_apis/projects"
$ProjectsResult = Invoke-RestMethod -Uri $uriProject -Method get -Headers $AzureDevOpsAuthenicationHeader
Foreach ($project in $ProjectsResult.value)
{
do
{
$uriTeams = $UriOrganization + "_apis/projects/$($project.id)/teams?$top=$($top_param)&$skip=$($skip_param)"
$TeamsResult = Invoke-RestMethod -Uri $uriTeams -Method get -Headers $AzureDevOpsAuthenicationHeader
Foreach ($team in $TeamsResult.value)
{
$uriTeamMembers = $UriOrganization + "_apis/projects/$($project.id)/teams/$($team.id)/members?$top=$($top_param)&$skip=$($skip_param)"
$TeamMembersResult = Invoke-RestMethod -Uri $uriTeamMembers -Method get -Headers $AzureDevOpsAuthenicationHeader
Foreach ($teamMember in $TeamMembersResult.value)
{
$Members += New-Object -TypeName PSObject -Property @{
ProjectID=$project.id
ProjectName=$project.name
TeamID=$team.id
TeamName=$team.name
TeamDescription=$team.description
MemberID=$teamMember.identity.id
MemberName=$teamMember.identity.displayName
MemberEmail=$teamMember.identity.uniqueName
}
}
}
$Members | ConvertTo-Csv | Out-File -FilePath "filepath\file.csv" -Append
$top_param=$top_param+1000
$skip_param=$skip_param+1000
}
while (1000 -lt $TeamsResult.count)
}
问题是我的脚本一遍又一遍地返回相同的结果,分页不起作用。 我正在使用以下文档:
最佳答案
检查此 PowerShell 模块 https://github.com/MethodsAndPractices/vsteam
Set-VSTeamAccount -Account <account> -PersonalAccessToken <PAT>
Get-VSTeamProject | % {
Set-VSTeamDefaultProject -Project $_
$_.name
Get-VSTeam | % {
Get-VSTeamMember -teamId $_.id
}
}
关于Azure Devops API 使用 powershell 脚本获取所有项目、团队和成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69531575/