如何通过Jenkins REST API获取节点列表、插件及版本信息?
Jenkins REST API 端点解决方案
一、代理节点列表(名称、标签、IP、在线状态、操作系统)
可以使用/computer/api/json端点,通过**tree参数精准过滤所需字段**,比单纯调整depth更高效,示例请求:
GET /computer/api/json?tree=computer[displayName,assignedLabels[name],offline,os[name,arch,version],launcher[hostName]]
返回的核心字段对应关系:
displayName:节点名称assignedLabels[].name:节点标签(返回数组,包含所有标签)offline:在线状态(false表示节点在线,true为离线)os.name/os.arch/os.version:操作系统名称、架构、版本launcher.hostName:节点的IP地址或主机名
默认该端点会返回所有节点(包括主节点master),若只想获取代理节点,可结合需求调整参数过滤。
二、插件列表(名称、简短描述、版本、可升级状态)
使用/pluginManager/plugins/api/json端点,结合tree参数指定字段即可获取完整所需信息,示例请求:
GET /pluginManager/plugins/api/json?tree=plugins[shortName,displayName,version,shortDescription,hasUpdate]
核心字段说明:
shortName:插件内部标识名称displayName:插件显示名称version:当前安装版本shortDescription:插件简短描述hasUpdate:可升级状态(true表示有可用更新版本)
你之前用?depth=1解决空对象问题,是因为默认depth=0只返回基础框架,depth=1会拉取插件基础信息,但用tree参数可以更精准地只获取所需字段,减少数据传输量。
注意事项
- 调用这些API需要具备Jenkins的
Overall/Read权限,否则会返回403权限错误。 - 部分老版本Jenkins的字段结构可能略有差异,若遇到字段缺失,可通过访问
/computer/api/json?depth=3或/pluginManager/plugins/api/json?depth=2查看完整字段结构,再调整tree参数。
内容的提问来源于stack exchange,提问作者Alistair Hardy
相关产品推荐
相关产品推荐

