SensioLabs Insight support #306
This commit is contained in:
parent
dbffa3eb19
commit
6e23bde403
68
server.js
68
server.js
|
@ -608,6 +608,74 @@ cache(function(data, match, sendBadge, request) {
|
|||
});
|
||||
}));
|
||||
|
||||
camp.route(/^\/sensiolabs\/i\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
var projectUuid = match[1];
|
||||
var format = match[2];
|
||||
var options = {
|
||||
method: 'GET',
|
||||
auth: {
|
||||
user: serverSecrets.sl_insight_userUuid,
|
||||
pass: serverSecrets.sl_insight_apiToken
|
||||
},
|
||||
uri: 'https://insight.sensiolabs.com/api/projects/' + projectUuid,
|
||||
headers: {
|
||||
Accept: 'application/vnd.com.sensiolabs.insight+xml'
|
||||
}
|
||||
};
|
||||
|
||||
var badgeData = getBadgeData('check', data);
|
||||
|
||||
request(options, function(err, res, body) {
|
||||
if (err != null || res.statusCode !== 200) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
|
||||
var matchStatus = body.match(/\<status\>\<\!\[CDATA\[([a-z]+)\]\]\>\<\/status\>/im);
|
||||
var matchGrade = body.match(/\<grade\>\<\!\[CDATA\[([a-z]+)\]\]\>\<\/grade\>/im);
|
||||
|
||||
if (matchStatus === null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
} else if (matchStatus[1] !== 'finished') {
|
||||
badgeData.text[1] = 'pending';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
} else if (matchGrade === null) {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
|
||||
if (matchGrade[1] === 'platinum') {
|
||||
badgeData.text[1] = 'platinum';
|
||||
badgeData.colorscheme = 'brightgreen';
|
||||
} else if (matchGrade[1] === 'gold') {
|
||||
badgeData.text[1] = 'gold';
|
||||
badgeData.colorscheme = 'yellow';
|
||||
} else if (matchGrade[1] === 'silver') {
|
||||
badgeData.text[1] = 'silver';
|
||||
badgeData.colorscheme = 'lightgrey';
|
||||
} else if (matchGrade[1] === 'bronze') {
|
||||
badgeData.text[1] = 'bronze';
|
||||
badgeData.colorscheme = 'orange';
|
||||
} else if (matchGrade[1] === 'none') {
|
||||
badgeData.text[1] = 'no medal';
|
||||
badgeData.colorscheme = 'red';
|
||||
} else {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
});
|
||||
}));
|
||||
|
||||
// Packagist integration.
|
||||
camp.route(/^\/packagist\/(dm|dd|dt)\/(.*)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
|
|
4
try.html
4
try.html
|
@ -153,6 +153,10 @@ When that is implemented, change the placeholder to
|
|||
<td><img src='/hhvm/symfony/symfony/2.4.0.0.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/hhvm/symfony/symfony/2.4.0.0.svg</code></td>
|
||||
</tr>
|
||||
<tr><th> SensioLabs Insight: </th>
|
||||
<td><img src='/sensiolabs/i/45afb680-d4e6-4e66-93ea-bcfa79eb8a87.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/sensiolabs/i/45afb680-d4e6-4e66-93ea-bcfa79eb8a87.svg</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<h3> Downloads </h3>
|
||||
<table class='badge'><tbody>
|
||||
|
|
Loading…
Reference in New Issue
Block a user