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创建日历实例
Aug 21 Python
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
django 外键model的互相读取方法
Dec 15 Python
python和JavaScript哪个容易上手
Jun 23 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
python 如何将office文件转换为PDF
Sep 22 Python
python定义具名元组实例操作
Feb 28 Python
Python办公自动化之Excel(中)
May 24 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数据库操作面向对象的优点
2006/10/09 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
工作表扬信的范文
2014/01/10 职场文书
小学数学国培感言
2014/03/10 职场文书
法制宣传月活动总结
2014/04/29 职场文书
酒店员工培训方案
2014/06/02 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android