Sonaqube API处理程序

sonarqube_api的Python项目详细描述


https://img.shields.io/github/license/kako-nawao/python-sonarqube-api.svghttps://img.shields.io/pypi/pyversions/sonarqube-api.svghttps://img.shields.io/pypi/v/sonarqube-api.svghttps://img.shields.io/travis/kako-nawao/python-sonarqube-api.svghttps://img.shields.io/codecov/c/github/kako-nawao/python-sonarqube-api.svg

SonarQube Web服务的API处理程序,提供基本身份验证(其中 似乎是sonarqube唯一支持的类型)和一些获取 度量和规则,以及创建规则和(很快)配置文件的方法。

安装

从pypi安装:

pip install sonarqube-api

兼容性

这个包兼容python版本2.7、3.4、3.5和3.6。 可能是其他人,但这些正是我们所反对的(由特拉维斯ci)。

用法

api处理程序很容易使用,您只需要使用 连接参数(默认情况下,localhost在端口9000上 验证)并使用任何方法获取所需信息或 创建规则。

示例获取具有覆盖率和问题度量的项目:

from sonarqube_api import SonarAPIHandler

h = SonarAPIHandler(user='admin', password='admin')
for project in h.get_resources_full_data(metrics=['coverage', 'violations']):
    # do something with project data...

由于SonarQube服务器的实际响应数据通常是分页的,所以 方法返回生成器以优化 第一项。

您还可以指定要获取的单个资源,但请记住 返回生成器,因此仍然需要获取下一个对象

proj = next(h.get_resources_full_data(resource='some:example'))

声纳认证令牌也可以用来代替用户名和密码, 这在从ci服务器访问sonarqube api时特别有用, 由于令牌在意外暴露时很容易被撤销:

h = SonarAPIHandler(token='f052f55b127bb06f63c31cb2064ea301048d9e5d')

支持的方法

SonaraPihandler支持的方法有:

  • activate_rule:激活服务器中给定配置文件的规则
  • create_rule:在服务器中创建规则
  • get_metrics:产量指标定义
  • get_rules:生成活动规则
  • get_resources_debt:按类别产生技术债务项目
  • get_resources_metrics:生成具有一些通用度量的项目
  • get_resources_full_data:按类别生成具有通用度量和技术债务的项目(前两种方法的合并)
  • validate_authentication:验证身份验证凭据

命令

该包还提供了一些命令,您可以从shell中使用这些命令导出 或者在sonarqube服务器中迁移规则。

导出规则

命令export-sonarqube-rules读取SonarQube服务器中的规则并 使用数据创建两个文件。一个是带有规则快照的csv。 (包括键、名称、状态等),另一个是一个html 信息,包括描述和示例。

该命令使用合理的默认值,因此如下所示:

export-sonarqube-rules

将在localhost:9000运行的服务器上的所有规则导出到文件中 rules.csvrules.html在主目录中。

但您可以更改主机、身份验证或使用数字筛选规则 可用选项:

export-sonarqube-rules --host=http://sonar.example.com --user=admin --active-only --languages=py,js

对于完整的导出选项集,请运行:

export-sonarqube-rules -h

激活规则

命令activate-sonarqube-rules读取输入csv文件并激活 根据 文件上的定义。

该命令需要配置文件密钥和文件名:

activate-sonarqube-rules py-test-18349 active-rules.csv

像往常一样,您可以自定义所有服务器连接参数,您可以 使用帮助命令查看:

activate-sonarqube-rules -h

文件可以非常简单:文件中唯一需要的字段是key(对于 规则键),但也可以定义severity并自定义any 参数,比如xpathquerymessageformat…任何东西。你 也可以使用reset(它接受值true/yes)强制使用默认值 对于所有值–对于该规则,将忽略所有其他参数。

迁移规则

命令migrate-sonarqube-rules读取SonarQube中的自定义规则 服务器(源)并尝试在另一个sonarqube服务器中重新创建它们 (目标)。因为默认情况下,它对源和目标都使用localhost, 您需要指定至少一个主机。

例如,将服务器sonar.from.com中定义的所有自定义规则复制到 服务器sonar.to.com,您将执行:

migrate-sonarqube-rules --source-host=http://sonar.from.com --target-host=http://sonar.to.com

与前面的命令一样,可以指定所有连接选项 (--source-port--target-port--source-user等)。

对于完整的导出选项集,请运行:

migrate-sonarqube-rules -h

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用哪个地图/集合?   bluej Java:计算税   由于性能问题,java双精度字符串替代方案   java Eclipse CDT生成设置因重新启动而丢失   如何在java控制台中显示字节流值   java获取url地址,其中是包含我的页面的iframe   java 403禁止的spring启动API调用错误?   如果一个方法返回true,java将停止计时器   使用JavaNIO获取文件创建日期   在Java中从整数转换为二进制时保留整个字节的字符串   java AspectJ&Maven警告:“未应用……中定义的建议?”   java为什么我得到3,我不应该得到+7   java当一个方法包含多个返回的if语句时,如何从该方法中获取返回值?   在运行时循环java(scan.nextLine()!="$")   java配置休眠。cfg。春天的xml   java使用HtmlUnit模拟用户,错误   java CLI如何持续检查更改   java最大素因子(返回)