Python 에서 Sonqube API 를 조작 하여 검사 결 과 를 가 져 오고 프로 세 스 분석 을 인쇄 합 니 다.

이 글 은 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)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기