【问题标题】:Is it possible to search a package from all Artifact Feeds in Azure DevOps?是否可以从 Azure DevOps 中的所有工件源中搜索包?
【发布时间】:2020-10-15 14:24:09
【问题描述】:

我知道可以使用以下链接获取包含在单个 Artifact Feed 中的所有包:

https://feeds.dev.azure.com/{organization}/{project}/_apis/packaging/Feeds/{feedId}/packages?api-version=6.0-preview.1

我注意到在 Azure DevOps 中,搜索栏能够查看项目中的所有提要。因此,我的问题是:是否可以通过 API 实现相同的功能,并从所有提要中获取所有包而不是一个。

【问题讨论】:

  • 嗨@Styn。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: azure azure-devops azure-devops-rest-api


【解决方案1】:

是否可以通过 API 实现相同的功能,并从所有提要中获取所有包而不是一个。

据我所知,这是可以实现的。

您可以使用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 中的项目参数即可。

【讨论】:

    猜你喜欢
    • 2020-01-08
    • 2021-01-29
    • 1970-01-01
    • 2021-01-11
    • 2016-02-22
    • 1970-01-01
    • 2021-05-05
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多