Python操作Sonqube API獲取檢測結果并打印過程解析
這篇文章主要介紹了Python操作Sonqube API獲取檢測結果并打印過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.需求:每次Sonqube檢查完畢后,需要登陸才能看到結果無法通過Jenkins發(fā)布后直接看到bug 及漏洞數(shù)量。
2.demo:發(fā)布后,可以將該項目的檢測結果簡單打印出來顯示,后面還可以集成釘釘發(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傳入第一個參數(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 + "個," + \ "漏洞數(shù):" + leak + "個," + \ "可能存在問題代碼:"+ code_smell + "行," + \ "覆蓋率:" + coverage + "%," + \ "重復率:" + density + "%" print("靜態(tài)代碼掃描統(tǒng)計:"+"狀態(tài):"+ status +","+code_reslut) if int(bug)>=3: print("bug 數(shù)量太多,請盡快修復再發(fā)布項目!") sys.exit(1) else: print("代碼質(zhì)量非常好") if __name__=="__main__": #sonarQube刷新結果 #time.sleep(10) notification(projectName)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
pandas 實現(xiàn)將重復表格去重,并重新轉換為表格的方法
下面小編就為大家分享一篇pandas 實現(xiàn)將重復表格去重,并重新轉換為表格的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python實戰(zhàn)基礎之Pandas統(tǒng)計某個數(shù)據(jù)列的空值個數(shù)
我們在處理數(shù)據(jù)的時候,經(jīng)常需要檢查數(shù)據(jù)的質(zhì)量,也需要知道出問題的數(shù)據(jù)在哪個位置,下面這篇文章主要給大家介紹了關于Python實戰(zhàn)基礎之利用Pandas統(tǒng)計某個數(shù)據(jù)列空值個數(shù)的相關資料,需要的朋友可以參考下2022-08-08Python實現(xiàn)提取給定網(wǎng)頁內(nèi)的所有鏈接
這篇文章主要和大家分享一個實用的Python腳本,可以實現(xiàn)從給定的網(wǎng)頁中檢索所有鏈接,并將其保存為txt文件,需要的小伙伴可以收藏一下2023-05-05Python利用三層神經(jīng)網(wǎng)絡實現(xiàn)手寫數(shù)字分類詳解
這篇文章主要介紹了如何設計一個三層神經(jīng)網(wǎng)絡模型來實現(xiàn)手寫數(shù)字分類。本文給大家介紹的非常詳細,感興趣的小伙伴快來跟小編一起學習一下2021-11-11一文搞懂Python讀取text,CSV,JSON文件的方法
文件處理是一種用于創(chuàng)建文件、寫入數(shù)據(jù)和從中讀取數(shù)據(jù)的過程,Python 擁有豐富的用于處理不同文件類型的包,從而使得我們可以更加輕松方便的完成文件處理的工作,本文將來為大家詳細講講2022-06-06