java读取sonar信息

对于sonar上某个项目里的信息,可以通过以下java方式读取
官方教程:http://docs.sonarqube.org/display/SONARQUBE45/Using+the+Web+Service+Java+client

一、查找要查询信息的key

先看看api,找到你要读取的模块信息的key
http://{sonar address}/api/metrics
如下

<metrics>
<metric>
<key>lines</key>
<name>Lines</name>
<description>Lines</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>generated_lines</key>
<name>Generated Lines</name>
<description>Number of generated lines</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
.....
.....
.....
<metrics>

二、下载jar

如果是maven项目,maven包地址:https://mvnrepository.com/artifact/org.codehaus.sonar/sonar-ws-client/2.11
则在pom.xml里加下面依赖

<dependency>
  <groupId>org.codehaus.sonar</groupId>
  <artifactId>sonar-ws-client</artifactId>
  <!-- It is recommended to use the same version as the requested SonarQube server -->
  <version>2.11</version>
</dependency>

依赖包

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.1.3</version>
</dependency>

如果不是maven,请自行下载sonar-ws-client-2.11.jar包
https://mvnrepository.com/artifact/org.codehaus.sonar/sonar-ws-client/2.11
建议使用2.11版本,高版本可能不适合本样例

三、java代码样例

官方例子
Creating Client

import org.sonar.wsclient.Sonar;
Sonar sonar = Sonar.create("http://localhost:9000");

If the security is enabled, you have to define the credentials:

Sonar sonar = Sonar.create("http://localhost:9000", "login", "password");

When using the lib Commons HttpClient 4.0, the constructor is slightly different:

Sonar sonar = new Sonar(new HttpClient4Connector(new Host("http://localhost:9000")));

Executing Requests
For example to the get the code coverage of the ‘Struts’ project:

Resource struts = sonar.find(ResourceQuery.createForMetrics("org.apache.struts:struts-parent", "coverage", "lines", "violations"));
struts.getMeasure("coverage");

The methods find() and findAll() accept queries to get measures, code source, rule violations, configuration, metric definitions and dependencies between components. See Javadoc for more information.

我自己样例,获取代码覆盖率

//查找要获取信息的Key
String[] coverages = {
                    "overall_coverage",
                    "overall_line_coverage",
                    "overall_branch_coverage"

            };
//创建连接
    Sonar sonar = new Sonar(new HttpClient4Connector(new Host(sonar_home_url, sonar_username, sonar_password)));
//获取信息,sp.getProjectKey()是sonar项目的id,具体看sonar那个项目页面的地址栏就知道了         
    Resource struts = sonar.find(ResourceQuery.createForMetrics(sp.getProjectKey(), coverages));            
    double overallCov = struts.getMeasure(coverages[0]).getValue();
    double lineCov = struts.getMeasure(coverages[1]).getValue();

四、附带部分key表

<metrics>
<metric>
<key>lines</key>
<name>Lines</name>
<description>Lines</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>generated_lines</key>
<name>Generated Lines</name>
<description>Number of generated lines</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>ncloc</key>
<name>Lines of code</name>
<description>Non Commenting Lines of Code</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>ncloc_language_distribution</key>
<name>Lines of code per language</name>
<description>
Non Commenting Lines of Code Distributed By Language
</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>generated_ncloc</key>
<name>Generated lines of code</name>
<description>Generated non Commenting Lines of Code</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>classes</key>
<name>Classes</name>
<description>Classes</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>files</key>
<name>Files</name>
<description>Number of files</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>directories</key>
<name>Directories</name>
<description>Directories</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>packages</key>
<name>Packages</name>
<description>Packages</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>functions</key>
<name>Functions</name>
<description>Functions</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>accessors</key>
<name>Accessors</name>
<description>Accessors</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>statements</key>
<name>Statements</name>
<description>Number of statements</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>public_api</key>
<name>Public API</name>
<description>Public API</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>projects</key>
<name>Projects</name>
<description>Number of projects</description>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>comment_lines</key>
<name>Comment lines</name>
<description>Number of comment lines</description>
<domain>Documentation</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>comment_lines_density</key>
<name>Comments (%)</name>
<description>Comments balanced by ncloc + comment lines</description>
<domain>Documentation</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>comment_blank_lines</key>
<name>Blank comments</name>
<description>Comments that do not contain comments</description>
<domain>Documentation</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>public_documented_api_density</key>
<name>Public documented API (%)</name>
<description>
Public documented classes and functions balanced by ncloc
</description>
<domain>Documentation</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>public_undocumented_api</key>
<name>Public undocumented API</name>
<description>
Public undocumented classes, functions and variables
</description>
<domain>Documentation</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>commented_out_code_lines</key>
<name>Commented-out LOC</name>
<description>Commented lines of code</description>
<domain>Documentation</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>complexity</key>
<name>Complexity</name>
<description>Cyclomatic complexity</description>
<domain>Complexity</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>file_complexity</key>
<name>Complexity /file</name>
<description>Complexity average by file</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>FLOAT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>complexity_in_classes</key>
<name>Complexity in classes</name>
<description>Cyclomatic complexity in classes</description>
<domain>Complexity</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>class_complexity</key>
<name>Complexity /class</name>
<description>Complexity average by class</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>FLOAT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>complexity_in_functions</key>
<name>Complexity in functions</name>
<description>Cyclomatic complexity in functions</description>
<domain>Complexity</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>function_complexity</key>
<name>Complexity /function</name>
<description>Complexity average by function</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>FLOAT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>class_complexity_distribution</key>
<name>Classes distribution /complexity</name>
<description>Classes distribution /complexity</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DISTRIB</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>function_complexity_distribution</key>
<name>Functions distribution /complexity</name>
<description>Functions distribution /complexity</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DISTRIB</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>file_complexity_distribution</key>
<name>Files distribution /complexity</name>
<description>Files distribution /complexity</description>
<domain>Complexity</domain>
<qualitative>true</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DISTRIB</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>tests</key>
<name>Unit tests</name>
<description>Number of unit tests</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>test_execution_time</key>
<name>Unit tests duration</name>
<description>Execution duration of unit tests</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>MILLISEC</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>test_errors</key>
<name>Unit tests errors</name>
<description>Number of unit test errors</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>skipped_tests</key>
<name>Skipped unit tests</name>
<description>Number of skipped unit tests</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>test_failures</key>
<name>Unit tests failures</name>
<description>Number of unit test failures</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>test_success_density</key>
<name>Unit tests success (%)</name>
<description>Density of successful unit tests</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>test_data</key>
<name>Unit tests details</name>
<description>Unit tests details</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>coverage</key>
<name>Coverage</name>
<description>Coverage by unit tests</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_coverage</key>
<name>Coverage on new code</name>
<description>Coverage of new/changed code</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>lines_to_cover</key>
<name>Lines to cover</name>
<description>Lines to cover</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_lines_to_cover</key>
<name>Lines to cover on new code</name>
<description>Lines to cover on new code</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>uncovered_lines</key>
<name>Uncovered lines</name>
<description>Uncovered lines</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_uncovered_lines</key>
<name>Uncovered lines on new code</name>
<description>Uncovered lines on new code</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>line_coverage</key>
<name>Line coverage</name>
<description>Line coverage</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_line_coverage</key>
<name>Line coverage on new code</name>
<description>Line coverage of added/changed code</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>coverage_line_hits_data</key>
<name>Coverage hits by line</name>
<description>Coverage hits by line</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>conditions_to_cover</key>
<name>Conditions to cover</name>
<description>Conditions to cover</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_conditions_to_cover</key>
<name>Conditions to cover on new code</name>
<description>Conditions to cover on new code</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>uncovered_conditions</key>
<name>Uncovered conditions</name>
<description>Uncovered conditions</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_uncovered_conditions</key>
<name>Uncovered conditions on new code</name>
<description>Uncovered conditions on new code</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>branch_coverage</key>
<name>Condition coverage</name>
<description>Condition coverage</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_branch_coverage</key>
<name>Condition coverage on new code</name>
<description>Condition coverage of new/changed code</description>
<domain>Tests</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>conditions_by_line</key>
<name>Conditions by line</name>
<description>Conditions by line</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>covered_conditions_by_line</key>
<name>Covered conditions by line</name>
<description>Covered conditions by line</description>
<domain>Tests</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_coverage</key>
<name>IT coverage</name>
<description>Integration tests coverage</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_it_coverage</key>
<name>Coverage by IT on new code</name>
<description>Integration tests coverage of new/changed code</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_lines_to_cover</key>
<name>IT lines to cover</name>
<description>Lines to cover by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_it_lines_to_cover</key>
<name>Lines to cover by IT on new code</name>
<description>Lines to cover on new code by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_uncovered_lines</key>
<name>IT uncovered lines</name>
<description>Uncovered lines by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_it_uncovered_lines</key>
<name>Uncovered lines by IT on new code</name>
<description>
New lines that are not covered by integration tests
</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_line_coverage</key>
<name>IT line coverage</name>
<description>Line coverage by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_it_line_coverage</key>
<name>Line coverage by IT on new code</name>
<description>
Integration tests line coverage of added/changed code
</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_coverage_line_hits_data</key>
<name>IT coverage hits by line</name>
<description>Coverage hits by line by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_conditions_to_cover</key>
<name>IT conditions to cover</name>
<description>Conditions to cover by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_it_conditions_to_cover</key>
<name>Conditions to cover by IT on new code</name>
<description>New conditions to cover by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>it_uncovered_conditions</key>
<name>IT uncovered conditions</name>
<description>Uncovered conditions by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_it_uncovered_conditions</key>
<name>Uncovered conditions by IT on new code</name>
<description>
New conditions that are not covered by integration tests
</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_branch_coverage</key>
<name>IT condition coverage</name>
<description>Condition coverage by integration tests</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_it_branch_coverage</key>
<name>Condition coverage by IT on new code</name>
<description>
Integration tests condition coverage of new/changed code
</description>
<domain>Tests (Integration)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_conditions_by_line</key>
<name>IT conditions by line</name>
<description>IT conditions by line</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>it_covered_conditions_by_line</key>
<name>IT covered conditions by line</name>
<description>IT covered conditions by line</description>
<domain>Tests (Integration)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_coverage</key>
<name>Overall coverage</name>
<description>Overall test coverage</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_overall_coverage</key>
<name>Overall coverage on new code</name>
<description>Overall coverage of new/changed code</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_lines_to_cover</key>
<name>Overall lines to cover</name>
<description>Lines to cover by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_overall_lines_to_cover</key>
<name>Overall lines to cover on new code</name>
<description>New lines to cover by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_uncovered_lines</key>
<name>Overall uncovered lines</name>
<description>Uncovered lines by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_overall_uncovered_lines</key>
<name>Overall uncovered lines on new code</name>
<description>New lines that are not covered by any tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_line_coverage</key>
<name>Overall line coverage</name>
<description>Line coverage by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_overall_line_coverage</key>
<name>Overall line coverage on new code</name>
<description>Line coverage of added/changed code by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_coverage_line_hits_data</key>
<name>Overall coverage hits by line</name>
<description>Coverage hits by all tests and by line</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_conditions_to_cover</key>
<name>Overall conditions to cover</name>
<description>Conditions to cover by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_overall_conditions_to_cover</key>
<name>Overall conditions to cover on new code</name>
<description>New conditions to cover by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>overall_uncovered_conditions</key>
<name>Overall uncovered conditions</name>
<description>Uncovered conditions by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_overall_uncovered_conditions</key>
<name>Overall uncovered conditions on new code</name>
<description>New conditions that are not covered by any test</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_branch_coverage</key>
<name>Overall condition coverage</name>
<description>Condition coverage by all tests</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_overall_branch_coverage</key>
<name>Overall condition coverage on new code</name>
<description>
Condition coverage of new/changed code by all tests
</description>
<domain>Tests (Overall)</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_conditions_by_line</key>
<name>Overall conditions by line</name>
<description>Overall conditions by all tests and by line</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>overall_covered_conditions_by_line</key>
<name>Overall covered conditions by line</name>
<description>
Overall covered conditions by all tests and by line
</description>
<domain>Tests (Overall)</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplicated_lines</key>
<name>Duplicated lines</name>
<description>Duplicated lines</description>
<domain>Duplication</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplicated_blocks</key>
<name>Duplicated blocks</name>
<description>Duplicated blocks</description>
<domain>Duplication</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplicated_files</key>
<name>Duplicated files</name>
<description>Duplicated files</description>
<domain>Duplication</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplicated_lines_density</key>
<name>Duplicated lines (%)</name>
<description>Duplicated lines balanced by statements</description>
<domain>Duplication</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplications_data</key>
<name>Duplications details</name>
<description>Duplications details</description>
<domain>Duplication</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>duplication_lines_data</key>
<name>duplication_lines_data</name>
<description/>
<domain>Duplication</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>violations</key>
<name>Issues</name>
<description>Issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>blocker_violations</key>
<name>Blocker issues</name>
<description>Blocker issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>critical_violations</key>
<name>Critical issues</name>
<description>Critical issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>major_violations</key>
<name>Major issues</name>
<description>Major issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>minor_violations</key>
<name>Minor issues</name>
<description>Minor issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>info_violations</key>
<name>Info issues</name>
<description>Info issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_violations</key>
<name>New issues</name>
<description>New issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_blocker_violations</key>
<name>New Blocker issues</name>
<description>New Blocker issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_critical_violations</key>
<name>New Critical issues</name>
<description>New Critical issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_major_violations</key>
<name>New Major issues</name>
<description>New Major issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_minor_violations</key>
<name>New Minor issues</name>
<description>New Minor issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_info_violations</key>
<name>New Info issues</name>
<description>New Info issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>false_positive_issues</key>
<name>False positive issues</name>
<description>False positive issues</description>
<domain>Issues</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>open_issues</key>
<name>Open issues</name>
<description>Open issues</description>
<domain>Issues</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>reopened_issues</key>
<name>Reopened issues</name>
<description>Reopened issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>confirmed_issues</key>
<name>Confirmed issues</name>
<description>Confirmed issues</description>
<domain>Issues</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>abstractness</key>
<name>Abstractness</name>
<description>Abstractness</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>instability</key>
<name>Instability</name>
<description>Instability</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>distance</key>
<name>Distance</name>
<description>Distance</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>FLOAT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>dit</key>
<name>Depth in Tree</name>
<description>Depth in Inheritance Tree</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>noc</key>
<name>Number of Children</name>
<description>Number of Children</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>rfc</key>
<name>Response for Class</name>
<description>Response for Class</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>rfc_distribution</key>
<name>Class distribution /RFC</name>
<description>Class distribution /RFC</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DISTRIB</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>lcom4</key>
<name>LCOM4</name>
<description>Lack of Cohesion of Functions</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>FLOAT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>lcom4_blocks</key>
<name>LCOM4 blocks</name>
<description>LCOM4 blocks</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>lcom4_distribution</key>
<name>Class distribution /LCOM4</name>
<description>Class distribution /LCOM4</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DISTRIB</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>suspect_lcom4_density</key>
<name>Suspect LCOM4 density</name>
<description>Density of classes having LCOM4>1</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>ca</key>
<name>Afferent couplings</name>
<description>Afferent couplings</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>ce</key>
<name>Efferent couplings</name>
<description>Efferent couplings</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>dsm</key>
<name>Dependency Matrix</name>
<description>Dependency Matrix</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>package_cycles</key>
<name>Package cycles</name>
<description>Package cycles</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>package_tangle_index</key>
<name>Package tangle index</name>
<description>Package tangle index</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>package_tangles</key>
<name>File dependencies to cut</name>
<description>File dependencies to cut</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>package_feedback_edges</key>
<name>Package dependencies to cut</name>
<description>Package dependencies to cut</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>package_edges_weight</key>
<name>Package edges weight</name>
<description>Package edges weight</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>file_cycles</key>
<name>File cycles</name>
<description>File cycles</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>file_tangle_index</key>
<name>File tangle index</name>
<description>File tangle index</description>
<domain>Design</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>file_tangles</key>
<name>File tangles</name>
<description>Files tangles</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>file_feedback_edges</key>
<name>Suspect file dependencies</name>
<description>Suspect file dependencies</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>file_edges_weight</key>
<name>File edges weight</name>
<description>File edges weight</description>
<domain>Design</domain>
<qualitative>false</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>authors_by_line</key>
<name>Authors by line</name>
<description>Authors by line</description>
<domain>SCM</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>revisions_by_line</key>
<name>Revisions by line</name>
<description>Revisions by line</description>
<domain>SCM</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>last_commit_datetimes_by_line</key>
<name>Last commit dates by line</name>
<description>Last commit dates by line</description>
<domain>SCM</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>unreviewed_violations</key>
<name>Unreviewed violations</name>
<description>Violations that have not been reviewed yet</description>
<domain>Reviews</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>new_unreviewed_violations</key>
<name>New unreviewed violations</name>
<description>New violations that have not been reviewed yet</description>
<domain>Reviews</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>false_positive_reviews</key>
<name>False-positive reviews</name>
<description>Active false-positive reviews</description>
<domain>Reviews</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>active_reviews</key>
<name>Active reviews</name>
<description>Active open and reopened reviews</description>
<domain>Reviews</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>unassigned_reviews</key>
<name>Unassigned reviews</name>
<description>Active unassigned reviews</description>
<domain>Reviews</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>unplanned_reviews</key>
<name>Unplanned reviews</name>
<description>Active unplanned reviews</description>
<domain>Reviews</domain>
<qualitative>false</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>sqale_index</key>
<name>Technical Debt</name>
<description>
Total effort (in days) to fix all the issues on the component and therefore to comply to all the requirements.
</description>
<domain>Technical Debt</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>WORK_DUR</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>new_technical_debt</key>
<name>Added Technical Debt</name>
<description>Added Technical Debt</description>
<domain>Technical Debt</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>WORK_DUR</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>sqale_rating</key>
<name>SQALE Rating</name>
<description>
Rating of the technical debt ratio based on the SQALE Governance Model.
</description>
<domain>Technical Debt</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>RATING</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>development_cost</key>
<name>SQALE Development Cost</name>
<description/>
<domain>Technical Debt</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>STRING</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>sqale_debt_ratio</key>
<name>Technical Debt Ratio</name>
<description>
Ratio of the actual technical debt compared to the estimated cost to develop the whole source code from scratch.
</description>
<domain>Technical Debt</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>PERCENT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>ncloc_data</key>
<name>ncloc_data</name>
<description/>
<domain>Size</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>comment_lines_data</key>
<name>comment_lines_data</name>
<description/>
<domain>Documentation</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>alert_status</key>
<name>Quality Gate Status</name>
<description>
The project status with regard to its quality gate.
</description>
<domain>General</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>false</user_managed>
<val_type>LEVEL</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>quality_gate_details</key>
<name>Quality Gate Details</name>
<description>
The project detailed status with regard to its quality gate.
</description>
<domain>General</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>profile</key>
<name>Profile</name>
<description>Selected quality profile</description>
<domain>General</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>profile_version</key>
<name>Profile version</name>
<description>Selected quality profile version</description>
<domain>General</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>quality_profiles</key>
<name>Profiles</name>
<description>Details of quality profiles used during analysis</description>
<domain>General</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>false</user_managed>
<val_type>DATA</val_type>
<hidden>true</hidden>
</metric>
<metric>
<key>CXX-DEPENDENCIES</key>
<name>Cyclic dependency violations</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-COMPILER</key>
<name>C++ compiler Warnings</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-CPPCHECK</key>
<name>CppCheck Errors</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-EXTERNAL</key>
<name>External C++ rules violations</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-PCLINT</key>
<name>PC-Lint errors</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-RATS</key>
<name>RATS issues</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-SQUID</key>
<name>C++ checks</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-VALGRIND</key>
<name>Valgrind errors</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>CXX-VERAXX</key>
<name>Vera++ rule violations</name>
<description/>
<domain>C++</domain>
<qualitative>true</qualitative>
<direction>-1</direction>
<user_managed>false</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>burned_budget</key>
<name>Burned budget</name>
<description/>
<domain>Management</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>true</user_managed>
<val_type>FLOAT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>business_value</key>
<name>Business value</name>
<description/>
<domain>Management</domain>
<qualitative>true</qualitative>
<direction>1</direction>
<user_managed>true</user_managed>
<val_type>FLOAT</val_type>
<hidden>false</hidden>
</metric>
<metric>
<key>team_size</key>
<name>Team size</name>
<description/>
<domain>Management</domain>
<qualitative>false</qualitative>
<direction>0</direction>
<user_managed>true</user_managed>
<val_type>INT</val_type>
<hidden>false</hidden>
</metric>
</metrics>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值