当前位置: 首页 > news >正文

java获取jenkins发布版本信息

一.需求:

系统cicd发布时首页需要展示jenkins发布的版本和优化内容

二.思路:

1.jenkins创建用户和秘钥

2.找到对应构建任务信息的api

3.RestTemplate发起http请求

三.实现:

1.创建用户和token

2.查找jenkins API

创建 Job
POST http://localhost:8080/createItem/api/json?name=xxx更新 Job
POST http://localhost:8080/job/{job_name}/config.xml/api/json获取 Job
GET http://localhost:8080/job/{job_name}/api/json获取 JobXml
GET http://localhost:8080/job/{job_name}/config.xml/api/json创建 Build
POST http://localhost:8080/job/{job_name}/build/api/json获取 QueueItem
GET http://localhost:8080/queue/item/17/api/json获取 Build信息
GET http://localhost:8080/job/test/6/api/json获取TXT日志
GET http://localhost:8080/job/test/{build_number}/logText/progressiveText/api/json获取 Html 日志
GET http://localhost:8080/job/test/{build_number}/logText/progressiveHtml/api/json

3.java发起请求

HttpHeaders requestHeaders = new HttpHeaders();requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));requestHeaders.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");HttpEntity<HttpHeaders> entity = new HttpEntity<>(requestHeaders);String url = "http://localhost:8080/job/finance-admin/lastSuccessfulBuild/api/json?pretty=true";RestTemplate restTemplate = new RestTemplate();restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor("deployer", "xxxxxxxxxxxxxxxxxxxxxxx"));JSONObject result = restTemplate.exchange(url, HttpMethod.GET, entity, JSONObject.class).getBody();List<LinkedHashMap<String, Object>> data = (List<LinkedHashMap<String, Object>>) result.get("actions");List<LinkedHashMap<String, Object>> restList = (List<LinkedHashMap<String, Object>>) data.get(0).get("parameters");

http://www.lryc.cn/news/157555.html

相关文章:

  • java八股文面试[数据库]——可重复读怎么实现的(MVCC)
  • cl 和 “clangtidy“分别是什么?是同一样东西吗?
  • ubuntu22.04开机自启动Eureka服务
  • 【 OpenGauss源码学习 —— 列存储(analyze)(三)】
  • Element Plus table formatter函数返回html内容
  • c++ mutable
  • element-plus 踩的坑
  • Python、Rust中的协程
  • Vuepress样式修改内容宽度
  • Vue2电商前台项目——项目的初始化及搭建
  • 递归算法学习——N皇后问题,单词搜索
  • 【SpringBoot】mockito+junit 单元测试
  • webserver 同步 I/O 模拟 Proactor 模式的工作流程
  • mysql8-基于docker搭建主从同步
  • 智能水表远程控制系统:引领节水新时代
  • 【FusionInsight 迁移】HBase从C50迁移到6.5.1(03)6.5.1上准备Loader
  • redis多线程操作
  • OpenCV(十七):拉普拉斯图像金字塔
  • OpenCL编程指南-10.2使用C++包装器API的矢量相加示例
  • mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘
  • [华为云云服务器评测] 华为云耀云服务器 Java、node环境配置
  • 中企绕道突破封锁,防不胜防 | 百能云芯
  • 动手实践:从栈帧看字节码是如何在 JVM 中进行流转的
  • PEX装机
  • 异地远程访问内网BUG管理系统【Cpolar内网穿透】
  • 论文笔记:一分类及其在大数据中的潜在应用综述
  • 下单时如何保证数据一致性?
  • 【C++ Core Guidelines解析】深入理解现代C++的特性和原理
  • Go语言高阶:Reflection反射与Files操作 详细示例教程
  • 谷歌seo技术流