Added support for standalone TeamCity instance

This commit is contained in:
Sergey Petrov 2014-08-20 21:55:15 +04:00
parent 16946098ac
commit c76348e711
2 changed files with 37 additions and 0 deletions

View File

@ -355,6 +355,38 @@ cache(function(data, match, sendBadge) {
});
}));
// Another TeamCity instance
camp.route(/^\/teamcity\/(http|https)\/(.*)\/(.*)\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {
var scheme = match[1];
var serverUrl = match[2];
var buildType = match[3]; // eg, `bt428`.
var format = match[4];
var apiUrl = scheme + '://' + serverUrl + '/app/rest/builds/buildType:(id:' + buildType + ')?guest=1';
var badgeData = getBadgeData('build', 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 status = data.status;
badgeData.text[1] = (data.statusText || data.status || '').toLowerCase();
if (status === 'SUCCESS') {
badgeData.colorscheme = 'brightgreen';
} else {
badgeData.colorscheme = 'red';
}
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}));
// Gittip integration.
camp.route(/^\/gittip\/(.*)\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {

View File

@ -158,6 +158,11 @@ I made the GitHub Badge Service.
<td><img src='/teamcity/codebetter/bt428.svg' alt=''/></td>
<td><code>http://img.shields.io/teamcity/codebetter/bt428.svg</code></td>
</tr>
</tr>
<tr><th> TeamCity: </th>
<td><img src='/teamcity/http/teamcity.jetbrains.com/bt345.svg' alt=''/></td>
<td><code>http://img.shields.io/teamcity/http/teamcity.jetbrains.com/bt345.svg</code></td>
</tr>
<tr><th> AppVeyor: </th>
<td><img src='/appveyor/ci/gruntjs/grunt.svg' alt=''/></td>
<td><code>http://img.shields.io/appveyor/ci/gruntjs/grunt.svg</code></td>