Azure devops rest api returns 只有 100 个项目
Azure devops rest api returns only 100 projects
我正在尝试从我的组织中检索所有项目
我有 300 个项目,但 api 调用 returns 只有 100
我尝试将 $top 与 api 一起使用,然后它 returns 什么都没有
这是我的脚本,可用于获取 100 个项目并转换为 csv 文件,但我需要此 csv 文件中所有 300 个项目的详细信息 -
connectionToken = ""
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?api-
versions=5.0"
$base64AuthInfo =
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes
(":$($connectionToken)"))
$ProjectInfo = Invoke-RestMethod -Uri $BaseUrl -Headers @{authorization =
"Basic $base64AuthInfo"} - Method Get
$ProjectDetails = $ProjectInfo | ConvertTo-Json -Depth 100 | out-file
"/list.json"
$ProjectList = Get-Content "/list.json" -Raw | ConvertFromJson | select -
Expand value | Export-CSV "list.csv"
我也试过使用 invoke-webrequest 它也 returns 没什么
谢谢
Azure devops rest api returns only 100 projects
答案是使用指定的 $top
参数。
但是在powershell中使用这个参数的时候需要注意把$
转义成`而不是&.
那是因为在powershell中,单引号''
无论如何都只代表引号内的字符。也就是说,单引号内的内容不会被替换为变量和转义字符。在双引号""
中,允许变量替换和字符转义。
当你用双引号加上BaseUrl
时:
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?api-versions=5.0"
如果我们在 URL.
中添加 $top=300
而不是 &
,我们需要转义字符 $
所以,BaseUrl
应该是:
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?`$top=300&api-version=5.0"
或者您可以对 URL:
使用单引号
$BaseUrl = 'https://dev.azure.com/{organization_name}/_apis/projects?$top=300&api-version=5.0'
The PowerShell escape character is the backtick "`" character.
下面是我的测试结果:
我正在尝试从我的组织中检索所有项目 我有 300 个项目,但 api 调用 returns 只有 100
我尝试将 $top 与 api 一起使用,然后它 returns 什么都没有
这是我的脚本,可用于获取 100 个项目并转换为 csv 文件,但我需要此 csv 文件中所有 300 个项目的详细信息 -
connectionToken = ""
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?api-
versions=5.0"
$base64AuthInfo =
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes
(":$($connectionToken)"))
$ProjectInfo = Invoke-RestMethod -Uri $BaseUrl -Headers @{authorization =
"Basic $base64AuthInfo"} - Method Get
$ProjectDetails = $ProjectInfo | ConvertTo-Json -Depth 100 | out-file
"/list.json"
$ProjectList = Get-Content "/list.json" -Raw | ConvertFromJson | select -
Expand value | Export-CSV "list.csv"
我也试过使用 invoke-webrequest 它也 returns 没什么
谢谢
Azure devops rest api returns only 100 projects
答案是使用指定的 $top
参数。
但是在powershell中使用这个参数的时候需要注意把$
转义成`而不是&.
那是因为在powershell中,单引号''
无论如何都只代表引号内的字符。也就是说,单引号内的内容不会被替换为变量和转义字符。在双引号""
中,允许变量替换和字符转义。
当你用双引号加上BaseUrl
时:
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?api-versions=5.0"
如果我们在 URL.
中添加$top=300
而不是 &
,我们需要转义字符 $
所以,BaseUrl
应该是:
$BaseUrl = "https://dev.azure.com/{organization_name}/_apis/projects?`$top=300&api-version=5.0"
或者您可以对 URL:
使用单引号$BaseUrl = 'https://dev.azure.com/{organization_name}/_apis/projects?$top=300&api-version=5.0'
The PowerShell escape character is the backtick "`" character.
下面是我的测试结果: