Sonaqube API处理程序
sonarqube_api的Python项目详细描述
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.csv和rules.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 参数,比如xpathquery,message,format…任何东西。你 也可以使用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