欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過程解析

 更新時(shí)間:2019年11月27日 11:17:58   作者:Jame-Mei  
這篇文章主要介紹了Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1.需求:每次Sonqube檢查完畢后,需要登陸才能看到結(jié)果無法通過Jenkins發(fā)布后直接看到bug 及漏洞數(shù)量。

2.demo:發(fā)布后,可以將該項(xiàng)目的檢測(cè)結(jié)果簡單打印出來顯示,后面還可以集成釘釘發(fā)送到群里。

# -*- 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傳入第一個(gè)參數(shù)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數(shù):" + bug + "個(gè)," + \
         "漏洞數(shù):" + leak + "個(gè)," + \
         "可能存在問題代碼:"+ code_smell + "行," + \
         "覆蓋率:" + coverage + "%," + \
         "重復(fù)率:" + density + "%"
  print("靜態(tài)代碼掃描統(tǒng)計(jì):"+"狀態(tài):"+ status +","+code_reslut)
  if int(bug)>=3:
    print("bug 數(shù)量太多,請(qǐng)盡快修復(fù)再發(fā)布項(xiàng)目!")
    sys.exit(1)
  else:
    print("代碼質(zhì)量非常好")
if __name__=="__main__":
  #sonarQube刷新結(jié)果
  #time.sleep(10)
  notification(projectName)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論