Merge remote-tracking branch 'trask/sonarqube-tech-debt-ratio'

This commit is contained in:
Thaddee Tyl 2015-05-03 14:53:17 +02:00
commit 376393a321
2 changed files with 35 additions and 6 deletions

View File

@ -544,15 +544,17 @@ cache(function(data, match, sendBadge, request) {
}));
// SonarQube code coverage
camp.route(/^\/sonar\/(http|https)\/(.*)\/(.*)\/coverage\.(svg|png|gif|jpg|json)$/,
camp.route(/^\/sonar\/(http|https)\/(.*)\/(.*)\/(.*)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var scheme = match[1];
var serverUrl = match[2]; // eg, `sonar.qatools.ru`.
var buildType = match[3]; // eg, `ru.yandex.qatools.allure:allure-core:master`.
var format = match[4];
var metric = match[4];
var format = match[5];
var realMetric = metric === 'tech_debt' ? 'sqale_debt_ratio' : metric
var apiUrl = scheme + '://' + serverUrl + '/api/resources?resource=' + buildType
+ '&depth=0&metrics=coverage&includetrends=true';
var badgeData = getBadgeData('coverage', data);
+ '&depth=0&metrics=' + encodeURIComponent(realMetric) + '&includetrends=true';
var badgeData = getBadgeData(metric.replace('_', ' '), data);
request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
@ -569,8 +571,31 @@ camp.route(/^\/sonar\/(http|https)\/(.*)\/(.*)\/coverage\.(svg|png|gif|jpg|json)
return;
}
badgeData.text[1] = percentage.toFixed(0) + '%';
badgeData.colorscheme = coveragePercentageColor(percentage);
if (metric === 'tech_debt') {
// colors are based on sonarqube default rating grid and display colors
// [0,0.1) ==> A (green)
// [0.1,0.2) ==> B (yellowgreen)
// [0.2,0.5) ==> C (yellow)
// [0.5,1) ==> D (orange)
// [1,) ==> E (red)
badgeData.text[1] = percentage + '%';
if (percentage > 100) {
badgeData.colorscheme = 'red';
} else if (percentage > 50) {
badgeData.colorscheme = 'orange';
} else if (percentage > 20) {
badgeData.colorscheme = 'yellow';
} else if (percentage > 10) {
badgeData.colorscheme = 'yellowgreen';
} else if (percentage > 0) {
badgeData.colorscheme = 'green';
} else {
badgeData.colorscheme = 'brightgreen';
}
} else {
badgeData.text[1] = percentage.toFixed(0) + '%';
badgeData.colorscheme = coveragePercentageColor(percentage);
}
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';

View File

@ -132,6 +132,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
<td><img src='/sonar/http/sonar.qatools.ru/ru.yandex.qatools.allure:allure-core/coverage.svg' alt=''/></td>
<td><code>https://img.shields.io/sonar/http/sonar.qatools.ru/ru.yandex.qatools.allure:allure-core/coverage.svg</code></td>
</tr>
<tr><th> SonarQube Tech Debt: </th>
<td><img src='/sonar/http/sonar.qatools.ru/ru.yandex.qatools.allure:allure-core/tech_debt.svg' alt=''/></td>
<td><code>https://img.shields.io/sonar/http/sonar.qatools.ru/ru.yandex.qatools.allure:allure-core/tech_debt.svg</code></td>
</tr>
<tr><th> TeamCity CodeBetter Coverage: </th>
<td><img src='/teamcity/coverage/bt1242.svg' alt=''/></td>
<td><code>https://img.shields.io/teamcity/coverage/bt1242.svg</code></td>