前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SonarQube 项目总览状态导出工具

SonarQube 项目总览状态导出工具

作者头像
AlphaHinex
发布2024-04-09 19:40:04
1050
发布2024-04-09 19:40:04
举报
文章被收录于专栏:周拱壹卒周拱壹卒

随着 SonarQube[1] 上的项目越来越多,我们希望能够对这些项目按照一定的指标进行筛选,比如:

  • SizeLDuplications5% - 10% 之间的项目
  • Coverage60% 以上的项目

Sonar 界面中提供的筛选功能,只能按照指定的范围进行筛选,并且每个指标除了第一个和最后一个范围,中间的范围都是包含下面范围的。例如 Coverage 指标提供的范围是:

  • ≥ 80%
  • 70% - 80%
  • 50% - 70%
  • 30% - 50%
  • < 30%

选择 50% - 70% 这个范围时,是包含下面 30% - 50%< 30% 两个范围的,即只能过滤覆盖率在 70% 以下的项目,无法更加精细的进行过滤。

Sonar 中也没找到能够将项目总览信息导出的方式,所以就有了这样一个小工具:

sonar-exp

  • 源码:https://github.com/AlphaHinex/go-toolkit/tree/main/sonar-exp
  • Release 页面:https://github.com/AlphaHinex/go-toolkit/releases/tag/v2.3.0
  • 预编译二进制包括:
代码语言:javascript
复制
sonar-exp_darwin_amd64
sonar-exp_darwin_arm64
sonar-exp_linux_amd64
sonar-exp_linux_arm64
sonar-exp_win_amd64.exe

导出工具使用了 Sonar Web API[2] 中的两个内部接口:

  1. GET api/components/search_projects INTERNAL SINCE 6.2
  2. GET api/measures/search INTERNAL SINCE 6.2

并支持按项目名称或 key 进行过滤,项目数据已 csv 格式输出,可以重定向至文件,如:

代码语言:javascript
复制
$ ./sonar-exp -host http://localhost:9000 -t xxxxx -q ds-3 > ds3.csv
$ cat ds3.csv
Project,Bugs,Vulnerabilities,Hotspots Reviewed,Code Smells,Coverage,Duplications,Lines,NCLOC Language Distribution,Size,Duplications*Lines,Bug/Lines*1k%,Code Smells/Lines*1k%
ds-305-master,10,4,0.0,3396,0.0,20.0,60080,java=59046;xml=1034,M,12016.000000,0.166445,56.524635
ds-317-dev,78,11,0.0,4256,0.0,35.7,98510,java=97850;xml=660,M,35168.070312,0.791798,43.203735

Project

Bugs

Vulnerabilities

Hotspots Reviewed

Code Smells

Coverage

Duplications

Lines

NCLOC Language Distribution

Size

Duplications*Lines

Bug/Lines*1k%

Code Smells/Lines*1k%

ds-305-master

10

4

0.0

3396

0.0

20.0

60080

java=59046;xml=1034

M

12016.000000

0.166445

56.524635

ds-317-dev

78

11

0.0

4256

0.0

35.7

98510

java=97850;xml=660

M

35168.070312

0.791798

43.203735

screenshot

拿到 csv 格式数据后,即可自由进行过滤条件设置了。

参考资料

[1]

SonarQube: https://www.sonarsource.com/products/sonarqube

[2]

Web API: http://localhost:9000/web_api?deprecated=true&internal=true

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 周拱壹卒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sonar-exp
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档