对于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>
<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.
我自己样例,获取代码覆盖率
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)));
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>