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实现控制台进度条功能
Jan 04 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Pycharm中import torch报错的快速解决方法
Mar 05 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 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
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python线程、进程和协程详解
2016/07/19 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
工程师自我评价怎么写
2013/09/19 职场文书
电脑租赁公司创业计划书
2014/01/08 职场文书
求职信标题怎么写
2014/05/26 职场文书
环保志愿者活动总结
2014/06/27 职场文书
文案策划专业自荐信
2014/07/07 职场文书
课程设计的心得体会
2014/09/03 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
军训新闻稿范文
2015/07/17 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
导游词之日月潭
2019/11/05 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python