From e8f8ec6ccb3f11e0fbc4b806a4fe510a65905a7f Mon Sep 17 00:00:00 2001 From: Thaddee Tyl Date: Mon, 26 May 2014 14:24:37 +0200 Subject: [PATCH] TeamCity Coverage URL change. --- server.js | 85 ++++++++++++++++++++++++++++--------------------------- try.html | 2 +- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/server.js b/server.js index 32ec468..21f7ec8 100644 --- a/server.js +++ b/server.js @@ -237,6 +237,49 @@ cache(function(data, match, sendBadge) { }); })); +// TeamCity CodeBetter code coverage +camp.route(/^\/teamcity\/coverage\/(.*)\.(svg|png|gif|jpg)$/, +cache(function(data, match, sendBadge) { + var buildType = match[1]; // eg, `bt428`. + var format = match[2]; + var apiUrl = 'http://teamcity.codebetter.com/app/rest/builds/buildType:(id:' + buildType + ')/statistics?guest=1'; + var badgeData = getBadgeData('coverage', data); + request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + } + try { + var data = JSON.parse(buffer); + var covered; + var total; + + data.property.forEach(function(property) { + if (property.name === 'CodeCoverageAbsSCovered') { + covered = property.value; + } else if (property.name === 'CodeCoverageAbsSTotal') { + total = property.value; + } + }) + + if (covered === undefined || total === undefined) { + badgeData.text[1] = 'malformed'; + sendBadge(format, badgeData); + return; + } + + var percentage = covered / total * 100; + badgeData.text[1] = percentage.toFixed(0) + '%'; + badgeData.colorscheme = coveragePercentageColor(percentage); + sendBadge(format, badgeData); + } catch(e) { + console.log(e); + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + }); +})); + // TeamCity CodeBetter integration. camp.route(/^\/teamcity\/codebetter\/(.*)\.(svg|png|gif|jpg)$/, cache(function(data, match, sendBadge) { @@ -987,48 +1030,6 @@ cache(function(data, match, sendBadge) { }); })); -// TeamCity CodeBetter code coverage -camp.route(/^\/teamcity\/codebetter\/(.*)\/coverage\.(svg|png|gif|jpg)$/, -cache(function(data, match, sendBadge) { - var buildType = match[1]; // eg, `bt428`. - var format = match[2]; - var apiUrl = 'http://teamcity.codebetter.com/app/rest/builds/buildType:(id:' + buildType + ')/statistics?guest=1'; - var badgeData = getBadgeData('coverage', data); - request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) { - if (err != null) { - badgeData.text[1] = 'inaccessible'; - sendBadge(format, badgeData); - } - try { - var data = JSON.parse(buffer); - var covered; - var total; - - data.property.forEach(function(property) { - if (property.name === 'CodeCoverageAbsSCovered') { - covered = property.value; - } else if (property.name === 'CodeCoverageAbsSTotal') { - total = property.value; - } - }) - - if (covered === undefined || total === undefined) { - badgeData.text[1] = 'malformed'; - sendBadge(format, badgeData); - return; - } - - var percentage = covered / total * 100; - badgeData.text[1] = percentage.toFixed(0) + '%'; - badgeData.colorscheme = coveragePercentageColor(percentage); - sendBadge(format, badgeData); - } catch(e) { - badgeData.text[1] = 'invalid'; - sendBadge(format, badgeData); - } - }); -})); - // Puppet Forge camp.route(/^\/puppetforge\/v\/([^\/]+\/[^\/]+)\.(svg|png|gif|jpg)$/, cache(function(data, match, sendBadge) { diff --git a/try.html b/try.html index ad030d4..7440239 100644 --- a/try.html +++ b/try.html @@ -128,7 +128,7 @@ I made the GitHub Badge Service. http://img.shields.io/cocoapods/p/AFNetworking.svg TeamCity CodeBetter Coverage: - + http://img.shields.io/teamcity/codebetter/bt1242/coverage.svg