是否可以从 Azure DevOps 中的所有 Artifact Feed 中搜索包?
Is it possible to search a package from all Artifact Feeds in Azure DevOps?
我知道可以使用下面的 link 获取单个 Artifact Feed 中包含的所有包:
https://feeds.dev.azure.com/{organization}/{project}/_apis/packaging/Feeds/{feedId}/packages?api-version=6.0-preview.1
我在 Azure DevOps 中注意到搜索栏能够查看项目内的所有提要。因此,我的问题是:是否有可能通过 API 实现相同的功能,并从所有提要而不是一个提要中获取所有包。
Is it possible to achieve the same functionality through the API, and get all packages from all feeds instead of one.
据我所知,这是可以实现的。
您可以使用 Rest API -Feed Management - Get Feeds 获取项目级别的所有提要。
然后您可以使用 Rest API 来获取软件包。你可以通过powershell同时执行这两个api。
这是 Powershell 示例:
$token = "PAT"
$url="https://feeds.dev.azure.com/{Organization Name}/{Project Name}/_apis/packaging/feeds?api-version=6.0-preview.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $feedid in $response.value.id )
{
echo $feedid
$url1="https://feeds.dev.azure.com/{Organization Name}/{Project Name}/_apis/packaging/Feeds/$($feedid)/packages?api-version=6.0-preview.1"
$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
Write-Host "Package = $($response1 | ConvertTo-Json -Depth 100)"
}
在这种情况下,您可以获取项目中项目范围的所有提要,然后获取其中的所有包。
顺便说一句,如果你想获取所有组织范围的提要,你只需要删除 URL 中的项目参数。
我知道可以使用下面的 link 获取单个 Artifact Feed 中包含的所有包:
https://feeds.dev.azure.com/{organization}/{project}/_apis/packaging/Feeds/{feedId}/packages?api-version=6.0-preview.1
我在 Azure DevOps 中注意到搜索栏能够查看项目内的所有提要。因此,我的问题是:是否有可能通过 API 实现相同的功能,并从所有提要而不是一个提要中获取所有包。
Is it possible to achieve the same functionality through the API, and get all packages from all feeds instead of one.
据我所知,这是可以实现的。
您可以使用 Rest API -Feed Management - Get Feeds 获取项目级别的所有提要。
然后您可以使用 Rest API 来获取软件包。你可以通过powershell同时执行这两个api。
这是 Powershell 示例:
$token = "PAT"
$url="https://feeds.dev.azure.com/{Organization Name}/{Project Name}/_apis/packaging/feeds?api-version=6.0-preview.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $feedid in $response.value.id )
{
echo $feedid
$url1="https://feeds.dev.azure.com/{Organization Name}/{Project Name}/_apis/packaging/Feeds/$($feedid)/packages?api-version=6.0-preview.1"
$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
Write-Host "Package = $($response1 | ConvertTo-Json -Depth 100)"
}
在这种情况下,您可以获取项目中项目范围的所有提要,然后获取其中的所有包。
顺便说一句,如果你想获取所有组织范围的提要,你只需要删除 URL 中的项目参数。