You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps REST API获取artifact内的文件名字符串

问题描述

我想编写脚本统计特定文件在Artifact构建中的出现次数,尝试通过Azure DevOps REST API获取Artifact内的文件名,但没找到合适的API。

目前已实现的步骤:

  • 获取特定Pipeline的所有Build:
    GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs/{runId}?api-version=7.1-preview.1
    
  • 通过Build ID获取对应的Artifact列表:
    GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?api-version=7.0
    

现在能拿到Build对应的所有Artifact,但无法获取Artifact内的文件名字符串。只找到下载特定Artifact文件的API,但这不是我需要的。请问有没有可以获取Artifact内文件信息的REST API?


解决方案

1. 扩展Build Artifact详情API获取文件列表

针对Build Artifact,在获取单个Artifact的请求中添加$expand=contents参数,即可返回该Artifact包含的文件和目录结构:

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts/{artifactName}?api-version=7.1-preview.5&$expand=contents

返回结果的contents数组中,每个元素包含path(文件/目录完整路径)、itemType(区分文件或目录)等字段,可直接提取文件名用于统计。

2. Pipeline Artifact的文件列表查询

如果是Pipeline Artifact,使用以下API并添加$expand=contents参数:

GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs/{runId}/artifacts/{artifactName}?api-version=7.1-preview.1&$expand=contents

返回结构与Build Artifact类似,可从中提取文件信息。

3. 备选:下载Artifact后本地解析

若上述API因Artifact类型(如通用包)或权限限制无法返回文件列表,可先下载Artifact压缩包,再在本地解压后遍历统计:

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts/{artifactName}/content?api-version=7.1-preview.5

该请求会返回Artifact的压缩包,脚本中可自动下载、解压,再遍历文件名称完成统计。

4. 利用GraphQL API查询

通过Azure DevOps GraphQL API也能查询Artifact的文件内容,示例查询语句:

query {
  organization(name: "{organization}") {
    project(name: "{project}") {
      build(buildId: {buildId}) {
        artifacts {
          nodes {
            name
            contents {
              nodes {
                path
                itemType
              }
            }
          }
        }
      }
    }
  }
}

请求地址为https://dev.azure.com/{organization}/{project}/_apis/graphql?api-version=7.1-preview.1,以POST方式发送该查询即可获取文件列表。


内容的提问来源于stack exchange,提问作者Flavio Condemi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:25:21