如何通过ADO API排除含指定System Capabilities的ADO代理?
排除指定System Capabilities的ADO代理查询方案
ADO的分布式任务代理查询API本身不支持直接通过URL参数设置排除条件,你之前尝试的几个参数均为正向筛选(匹配包含指定条件的代理),因此会返回池内全部代理。正确实现需要分两步:
步骤1:获取目标池的全部代理数据
调用基础API获取池111的所有代理:
https://dev.azure.com/org/_apis/distributedtask/pools/111/agents?api-version=5.1
步骤2:本地过滤排除目标代理
遍历返回的代理列表,剔除systemCapabilities属性中包含key=value的代理。示例逻辑(伪代码):
filtered_agents = [] for agent in response['value']: # 检查代理的系统能力是否包含指定key-value if 'key' in agent['systemCapabilities'] and agent['systemCapabilities']['key'] == 'value': continue # 排除该代理 filtered_agents.append(agent)
关于你之前尝试的参数说明
capabilities=key=value:该参数用于筛选包含指定能力的代理,而非排除?key=valueA:API不识别自定义URL参数,直接忽略后返回全部代理demands=SystemCapabilities.key=value:demands用于匹配符合任务执行需求的代理,同样是正向筛选逻辑
内容的提问来源于stack exchange,提问作者sphtd97
相关产品推荐
相关产品推荐

