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 代码效率的方法
Jul 03 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
浅谈python3中input输入的使用
Aug 02 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
如何获取Python简单for循环索引
Nov 21 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
python numpy--数组的组合和分割实例
Feb 24 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
Python模块zipfile原理及使用方法详解
Aug 04 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动态生成JavaScript代码
2009/03/09 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
Python编程修改MP3文件名称的方法
2017/04/19 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python中partial()基础用法说明
2018/12/30 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
通过代码实例了解Python异常本质
2020/09/16 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
Java面试题及答案
2012/09/08 面试题
20年同学聚会感言
2014/02/03 职场文书
服务承诺书格式
2014/05/21 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
大学毕业生个人总结
2015/02/28 职场文书
谢师宴学生致辞
2015/07/27 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏