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

Azure Devops Server无需遍历项目查询集合24小时全部发布记录

Azure DevOps Server 2021 集合级发布记录查询方案

方案1:通过代理池作业关联查询(适配所有发布共用同一代理池的场景,无需遍历全部项目)

Azure DevOps Server 2021 原生未提供公开的集合级发布查询API,但你可以通过代理池作业接口间接实现需求,步骤如下:

  • 第一步:获取目标代理池ID(已知可跳过),调用接口:
    GET https://{你的服务域名}/{集合名称}/_apis/distributedtask/pools?poolName={代理池名称}&api-version=7.1-preview.1
  • 第二步:拉取代理池24小时内的所有作业记录,调用接口:
    GET https://{你的服务域名}/{集合名称}/_apis/distributedtask/pools/{上一步获取的poolId}/jobs?minFinishTime={24小时前的UTC时间}&api-version=7.1-preview.1
    返回结果中planType字段值为Release的条目即为发布作业,条目内已经包含对应项目ID、发布ID、发布管道ID等核心信息
  • 第三步(可选):如果需要获取发布的完整信息,仅需对作业记录中存在的对应项目调用项目级发布查询接口即可,无需遍历全量团队项目,查询效率远高于全量遍历

方案2:集合库直接查询(仅限有数据库只读权限的内部场景)

如果你有权限访问Azure DevOps Server对应的SQL Server集合数据库,可以直接执行SQL查询获取结果,速度最快:

SELECT 
  r.ReleaseId,
  r.ReleaseName,
  r.CreatedDate,
  p.ProjectName 团队项目名称,
  rd.DefinitionName 发布管道名称
FROM [你的集合库名].[dbo].[tbl_Release] r
INNER JOIN [你的集合库名].[dbo].[tbl_Project] p 
  ON r.ProjectId = p.ProjectId
INNER JOIN [你的集合库名].[dbo].[tbl_ReleaseDefinition] rd 
  ON r.DefinitionId = rd.DefinitionId
WHERE r.CreatedDate >= DATEADD(HOUR, -24, GETUTCDATE())
ORDER BY r.CreatedDate DESC

注意:仅可执行只读查询,禁止修改数据库内任何数据,避免造成Azure DevOps Server服务异常,该方案不建议用于对外业务对接场景,仅适合内部统计、运维排查使用


方案选型建议

  • 无数据库权限、需要对接外部业务系统时,优先选择代理池作业方案
  • 仅内部使用、有数据库只读权限时,优先选择数据库查询方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:45:03