持续集成交付CICD: Sonarqube REST API 查找与新增项目
目录
一、实验
1.SonarQube REST API 查找项目
2.SonarQube REST API 新增项目
一、实验
1.SonarQube REST API 查找项目
(1)Postman测试

转换成cURL代码

(2)Jenkins添加凭证

(3)修改流水线
pipeline {agent { label "build"}stages {stage("Sonar"){steps{script {projectName = "devops03-maven5-service"if (SearchProject(projectName)){println("${projectName} exist")} else {println("${projectName} not fonud")}}}}}
}def SonarRequest(apiUrl,method){withCredentials([string(credentialsId: "855da77c-ad38-4f06-a941-3a5afcf6bbc6", variable: 'SONAR_TOKEN')]) {sonarApi = "http://192.168.204.8:9000/api"response = sh returnStdout: true,script: """curl --location \--request ${method} \"${sonarApi}/${apiUrl}" \--header "Authorization: Basic ${SONAR_TOKEN}""""// json格式化try {response = readJSON text: """ ${response - "\n"} """} catch(e){response = readJSON text: """{"errors" : true}"""}return response}
}//查找项目
def SearchProject(projectName){apiUrl = "projects/search?projects=${projectName}"response = SonarRequest(apiUrl,"GET")if (response.paging.total == 0){return false}return true}
(4)任意项目中回放进行测试

(5)成功

2.SonarQube REST API 新增项目
(1)Postman测试

(2)发送
转换成cURL代码
(3)Sonarqube已新增go项目

(4)修改流水线
pipeline {agent { label "build"}stages {stage("Sonar"){steps{script {
// projectName = "devops03-maven5-service"projectName = "devops03-gradle-service"if (SearchProject(projectName)){println("${projectName} exist")} else {println("${projectName} not fonud")//项目不存在CreateProject(projectName)}}}}}
}def SonarRequest(apiUrl,method){withCredentials([string(credentialsId: "855da77c-ad38-4f06-a941-3a5afcf6bbc6", variable: 'SONAR_TOKEN')]) {sonarApi = "http://192.168.204.8:9000/api"response = sh returnStdout: true,script: """curl --location \--request ${method} \"${sonarApi}/${apiUrl}" \--header "Authorization: Basic ${SONAR_TOKEN}""""// json格式化try {response = readJSON text: """ ${response - "\n"} """} catch(e){response = readJSON text: """{"errors" : true}"""}return response}
}//查找项目
def SearchProject(projectName){apiUrl = "projects/search?projects=${projectName}"response = SonarRequest(apiUrl,"GET")if (response.paging.total == 0){return false}return true}//创建项目
def CreateProject(projectName){apiUrl = "projects/create?name=${projectName}&project=${projectName}"response = SonarRequest(apiUrl,"POST")try{if (response.project.key == projectName ) {println("Project Create success!...")return true}}catch(e){println(response.errors)return false}
}
(5)任意项目中回放进行测试

(6)成功

(7)Sonarqube已新增gradle项目

相关文章:
持续集成交付CICD: Sonarqube REST API 查找与新增项目
目录 一、实验 1.SonarQube REST API 查找项目 2.SonarQube REST API 新增项目 一、实验 1.SonarQube REST API 查找项目 (1)Postman测试 转换成cURL代码 (2)Jenkins添加凭证 (3)修改流水线 pipeline…...
分层网络模型(OSI、TCP/IP)及对应的网络协议
OSI七层网络模型 OSI(Open System Interconnect),即开放式系统互连参考模型, 一般都叫OSI参考模型,是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构,每一层是一个模块,用于完成某种功…...
如何衡量和提高测试覆盖率?
衡量和提高测试覆盖率,对于尽早发现软件缺陷、提高软件质量和用户满意度,都具有重要意义。如果测试覆盖率低,意味着用例未覆盖到产品的所有代码路径和场景,这可能导致未及时发现潜在缺陷,代码中可能存在逻辑错误、边界…...
AWS Ubuntu设置DNS解析(解决resolve.conf被覆盖问题)
众所周知: Ubuntu在域名解析时,最直接使用的是/etc/resolve.conf文件,它是/run/systemd/resolve/resolve.conf的软链接,而对于刚装完的ubuntu系统,该文件的内容如下 ubuntuip-172-31-36-184:/etc$ cat resolv.conf #…...
学会这些可以升职加薪!EXCEL基础函数入门【一】
俗话说得好,Excel用得好,工资涨得高。什么值得买生活家追梦小仙女介绍一些Excel的常用函数吧~ 正文: 今天呢,刚好心血来潮,就EXCEL常用 的函数功能做一些介绍,学excel需要举一反三,楼主从事的…...
kubeadm搭建1.20.7版本k8s
资源 服务器名称ip地址服务master1(2C/4G,cpu核心数要求大于2)192.168.100.10docker、kubeadm、kubelet、kubectl、flannelnode01(2C/2G)192.168.100.30docker、kubeadm、kubelet、kubectl、flannelnode02(…...
LeetCode 力扣: 寻找两个正序数组的中位数 (Javascript)
LeetCode力扣双指针题目 主要提供了力扣热题第四题,使用js,复杂度O(log(mn)),寻找两个正序数组的中位数。 题目解析 题目要求在两个已排序数组 nums1 和 nums2 中找到它们的中位数。为了满足时间复杂度要求 O(log (mn)),可以采…...
第 4 部分 — 增强法学硕士的安全性:对越狱的严格数学检验
一、说明 越狱大型语言模型 (LLM)(例如 GPT-4)的概念代表了人工智能领域的一项艰巨挑战。这一过程需要对这些先进模型进行战略操纵,以超越其预先定义的道德准则或运营边界。在这篇博客中,我的目的是剖析数学的复杂性,并…...
Next.js 中的中间件
Next.js 中的中间件 Next.js 中的中间件是一个功能强大的工具,允许开发人员拦截、修改和控制应用程序中的请求和响应流。无论我们是构建服务器渲染的网站还是成熟的 Web 应用程序,了解如何有效使用中间件都可以显着增强项目进出的数据流。本文将从基础知…...
一、C#笔记
1.注释 /*多行注释*/class HelloWorld{ void Hello(){Console.WriteLine("Hello!");//单行注释}} 2.理解语句 2.1方法、语法、语义 2.2使用标识符 标识符语法规则: 只能使用字母(大写和小写)、数字和下划…...
井盖发生位移怎么办?智能井盖传感器效果
井盖位移是一种严重的安全隐患,因为它可能导致道路受阻并干扰正常的交通,还可能对行人和车辆的安全造成威胁。为了有效应对这一问题,智能井盖传感器的应用提供了一种解决方案。智能井盖传感器可以实时监测井盖的位移情况,并在发现…...
go-zero 开发之安装 goctl 及 go-zero 开发依赖
安装 goctl go 版本在 1.16 及以后执行: GO111MODULEon&&go install github.com/zeromicro/go-zero/tools/goctllatestgo 版本在 1.16 之前执行: GO111MODULEon&&go get -u github.com/zeromicro/go-zero/tools/goctllatest验证是否安…...
win11 CUDA(12.3) + cuDNN(12.x) 卸载
win11 CUDA(12.3) cuDNN(12.x)卸载 信息介绍卸载 信息介绍 本文是对应 win11RTX4070Ti 安装 CUDA cuDNN(图文教程) 的卸载 卸载 控制面板 --> 程序 --> 卸载程序 卸载掉图中红框内的,…...
037.Python面向对象_关于抽象类和抽象方法
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
华为OD机试真题-5G网络建设-2023年OD统一考试(C卷)
题目描述: 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间架设光纤的成本各不相同,且有些节点之间已经存在光纤相连,请你设计算法,计算出能联通这些基站的最小成本…...
【Spring教程25】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC入门案例总结与SpringMVC工作流程分析
目录 1.入门案例总结2. 入门案例工作流程分析2.1 启动服务器初始化过程2.2 单次请求过程 欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Mave…...
设计模式再探——装饰模式
目录 一、背景介绍二、思路&方案三、过程1.装饰模式简介2.装饰模式的类图3.装饰模式代码4.装饰模式,职责父类拆分的奥义5.装饰模式,部件抽象类的无中生有 四、总结五、升华 一、背景介绍 最近公司在做架构模型的时候,涉及到装饰模式的研…...
【Python必做100题】之第一题(求两数相加)
思路:键盘输入两个数字,求出两个数的和并打印 代码如下: num1 int(input("请输入一个数字:")) num2 int(input("再输入一个数字:")) #求两数相加 result num1 num2 print(f"两数相加的…...
java面试-Dubbo和zookeeper运行原理
远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 分布式注册中心和服务调…...
Rsync+Sersync
服务器相关参数 源服务器 192.168.17.101 目标服务器(同步到的服务器) 192.168.17.103 ##目标服务器配置 ###1、配置rsync服务 1、安装rsync yum -y install rsync 2、配置rsync vim /etc/rsyncd.conf 配置文件内容 uid root gid root use c…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
Python爬虫(52)Scrapy-Redis分布式爬虫架构实战:IP代理池深度集成与跨地域数据采集
目录 一、引言:当爬虫遭遇"地域封锁"二、背景解析:分布式爬虫的两大技术挑战1. 传统Scrapy架构的局限性2. 地域限制的三种典型表现 三、架构设计:Scrapy-Redis 代理池的协同机制1. 分布式架构拓扑图2. 核心组件协同流程 四、技术实…...
边缘计算设备全解析:边缘盒子在各大行业的落地应用场景
随着工业物联网、AI、5G的发展,数据量呈爆炸式增长。但你有没有想过,我们生成的数据,真的都要发回云端处理吗?其实不一定。特别是在一些对响应时间、网络带宽、数据隐私要求高的行业里,边缘计算开始“火”了起来&#…...
