Python操作Sonqube API获取检测结果并打印过程解析


Posted in Python onNovember 27, 2019

这篇文章主要介绍了Python操作Sonqube API获取检测结果并打印过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.需求:每次Sonqube检查完毕后,需要登陆才能看到结果无法通过Jenkins发布后直接看到bug 及漏洞数量。

2.demo:发布后,可以将该项目的检测结果简单打印出来显示,后面还可以集成钉钉发送到群里。

# -*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')

'''
@author:jmmei
@file: SonarQubeDingtalk.py
@time: 2019/7
'''
import requests,json,jenkins,os,time,datetime




#通过jenkins变量JOB_NAME传入第一个参数projectName

projectName=sys.argv[1]

def notification(projectName):
  # sonar API
  sonar_Url = 'http://www.baidu.com:9000/sonar/api/measures/search?projectKeys='+ projectName +'&metricKeys=alert_status%2Cbugs%2Creliability_rating%2Cvulnerabilities%2Csecurity_rating%2Ccode_smells%2Csqale_rating%2Cduplicated_lines_density%2Ccoverage%2Cncloc%2Cncloc_language_distribution'
  resopnse = requests.get(sonar_Url).text
  result = json.loads(resopnse)
  bug = 0
  leak = 0
  code_smell = 0
  coverage = 0
  density = 0
  status = ''
  statusStr = ''

  for item in result['measures']:
    if item['metric']=="bugs":
      bug = item['value']
    elif item['metric']=="vulnerabilities":
      leak = item['value']
    elif item['metric']=='code_smells':
      code_smell = item['value']
    elif item['metric']=='coverage':
      coverage = item['value']
    elif item['metric']=='duplicated_lines_density':
      density = item['value']
    elif item['metric']=='alert_status':
      status = item['value']
    else:
      pass

  if status == 'ERROR':
    messageUrl = 'http://www.iconsdb.com/icons/preview/soylent-red/x-mark-3-xxl.png'
    statusStr = '失败'
  elif status == 'OK':
    statusStr = '成功'
    messageUrl = 'http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png'

  code_reslut= "Bug数:" + bug + "个," + \
         "漏洞数:" + leak + "个," + \
         "可能存在问题代码:"+ code_smell + "行," + \
         "覆盖率:" + coverage + "%," + \
         "重复率:" + density + "%"
  print("静态代码扫描统计:"+"状态:"+ status +","+code_reslut)
  if int(bug)>=3:
    print("bug 数量太多,请尽快修复再发布项目!")
    sys.exit(1)
  else:
    print("代码质量非常好")
if __name__=="__main__":
  #sonarQube刷新结果
  #time.sleep(10)
  notification(projectName)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
python字符串与url编码的转换实例
May 10 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
python 修改本地网络配置的方法
Aug 14 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
python利用dlib获取人脸的68个landmark
Nov 27 #Python
python随机数分布random均匀分布实例
Nov 27 #Python
python取均匀不重复的随机数方式
Nov 27 #Python
python中栈的原理及实现方法示例
Nov 27 #Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 #Python
python队列原理及实现方法示例
Nov 27 #Python
Python numpy.zero() 初始化矩阵实例
Nov 27 #Python
You might like
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
js实现常用排序算法
2016/08/09 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
python常用排序算法的实现代码
2019/11/08 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
python接口自动化框架实战
2020/12/23 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
社区优秀志愿者先进事迹
2014/05/09 职场文书
行政二审代理词
2015/05/25 职场文书
埃及王子观后感
2015/06/16 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS