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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
python的一些加密方法及python 加密模块
Jul 11 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
Python实现为PDF去除水印的示例代码
Apr 03 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 intval的测试代码发现问题
2008/07/27 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python如何从文件读取数据及解析
2019/09/19 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
在python中使用nohup命令说明
2020/04/16 Python
Python如何执行系统命令
2020/09/23 Python
英语硕士生求职简历的自我评价
2013/10/15 职场文书
旅游文化节策划方案
2014/06/06 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
安全守法证明
2015/06/23 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
六年级作文之预言作文
2019/10/25 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书