Python调取Sonar API获取对应数据

简介: Python调取Sonar API获取对应数据

找了很多Sonar的Python封装,发现都不好用,因此自己做了小封装。具体如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@File    :   sonar_snapshot.py
@Time    :   2021/12/14 14:27:42
@Author  :   CrissChan 
@Version :   1.0
@Site    :   https://blog.csdn.net/crisschan
@Desc    :   for the sonarqube's Measures
'''
# here put the import lib
import requests
from requests.models import HTTPBasicAuth
import json
class SonarSnapshot(object):
    def __init__(self,usrname,pwd,sonar_uri) -> None:
        super().__init__()
        # self.usrname = usrname
        # self.pwd = pwd
        self.auth = HTTPBasicAuth(usrname,pwd)
        self.sonar_uri = sonar_uri
        # self.sonar_authon = self.sonar_uri+'/api/authentication/login'
    def get_issues(self,componentskey,types='BUG,VULNERABILITY'):
        '''
        des 查询指定项目的 issues
        params:
            componentskey:查询的项目
            types:CODE_SMELL,BUG,VULNERABILITY 一个或者多个,多个用英文都号分割。
        '''
        issue_url =  self.sonar_uri+'/api/issues/search?componentKeys='+componentskey+'&types='+types
        res = requests.get(issue_url,auth = self.auth)
        res_json = json.loads(res.text)
        page_size= res_json['paging']['pageSize']
        total= res_json['paging']['total']
        page_count = total/page_size+1
        page_number = 0
        issue_list=[]
        while page_number<page_count:
            purl = issue_url+'&p='+str(page_number+1)
            res_issue = requests.get(purl,auth = self.auth)
            # print(res_issue.text)
            issue_list=issue_list+json.loads(res_issue.text)['issues']
            page_number=page_number+1
        return (issue_list)
        # return res_json
    def get_measures(self,componentskey,metirc_keys='alert_status,bugs,reliability_rating,vulnerabilities,security_rating,code_smells,sqale_rating,duplicated_lines_density,coverage,ncloc,ncloc_language_distribution,complexity'):
        '''
        des 查询指定项目的metrics
        params:
            componentskey:查询的项目
            metirc_keys:度量结果
        return: 
            项目当前的度量metrics,json格式
        '''
        measure_url = self.sonar_uri+'/api/measures/component?component='+componentskey+'&metricKeys='+metirc_keys
        res = requests.get(measure_url,auth = self.auth)
        res_json = json.loads(res.text)
        return res_json
    def get_projects(self):
        '''
        按照一页100条的默认参数分页
        return 如下结构的list
        {
    "key": componentskey也是projectkey,
    "name":项目名称,
    "qualifier":TRK - for projects;APP - for applications
    "isFavorite": 是否收藏,
    "analysisDate": 最近一次分析时间
    "tags": [],
    "visibility": "public",
    "needIssueSync": false
        '''
        projects_url = self.sonar_uri+'/api/components/search_projects'
        res = requests.get(projects_url,auth = self.auth)
        res_json = json.loads(res.text)
        page_size= res_json['paging']['pageSize']
        total= res_json['paging']['total']
        page_count = total/page_size+1
        page_number = 0
        project_list=[]
        while page_number<page_count:
            purl = projects_url+'?p='+str(page_number+1)
            res_projects = requests.get(purl,auth = self.auth)
            project_list=project_list+json.loads(res_projects.text)['components']
            page_number=page_number+1
        return (project_list)
目录
相关文章
|
1月前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
1月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
234 2
|
1月前
|
JSON 监控 API
小红书笔记评论API:一键获取分层评论与用户互动数据
小红书笔记评论API可获取指定笔记的评论详情,包括内容、点赞数、评论者信息等,支持分页与身份认证,返回JSON格式数据,适用于舆情监控、用户行为分析等场景。
|
1月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
1057 1
|
1月前
|
数据采集 JSON API
微店API使用指南:高效获取商品列表数据
本文介绍如何使用Python爬虫调用微店item_search接口,根据关键词搜索商品并获取商品列表数据,涵盖请求方式、JSON数据解析、分页参数设置及筛选排序功能,适用于电商数据分析与竞品研究。
|
1月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
1月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
1月前
|
XML JSON API
苏宁商品详情API秘籍!轻松获取商品详情数据
苏宁商品详情API基于RESTful架构,支持JSON/XML格式,通过AppKey、AppSecret与签名三重认证,结合OAuth 2.0实现安全调用。开发者可获取商品名称、价格、销量、库存、促销等实时数据,适用于电商分析与商业智能。接口强制使用HTTPS协议,支持POST/GET请求,统一采用UTF-8编码,确保数据传输安全可靠。
|
1月前
|
自然语言处理 监控 API
速卖通商品详情API秘籍!轻松获取SKU属性数据
速卖通商品详情API(aliexpress.item.get)支持通过编程获取商品标题、价格、SKU、库存、销量、物流模板、评价及店铺信息,适用于价格监控、选品分析等场景。接口支持多语言返回,采用AppKey+AppSecret+Token认证,需签名验证,确保安全调用。
|
1月前
|
安全 API
亚马逊商品详情 API 秘籍!轻松获取 SKU 属性数据
亚马逊商品详情API是官方接口,通过ASIN获取商品标题、价格、库存、评价等50余项数据,支持多站点查询。包含Product Advertising API与MWS两类,分别用于商品信息获取和卖家店铺管理,采用AWS4-HMAC-SHA256认证,保障请求安全。

推荐镜像

更多
下一篇
oss云网关配置