add NetflixOSS OSSMETADATA osslifecycle support

This commit is contained in:
Andrew Spyker 2016-07-09 20:57:35 -07:00
parent 8754cdc7e3
commit 925c314ffd
2 changed files with 49 additions and 0 deletions

View File

@ -394,6 +394,51 @@ cache(function(data, match, sendBadge, request) {
});
}));
// NetflixOSS metadata integration
camp.route(/^\/osslifecycle?\/([^\/]+\/[^\/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var orgOrUserAndRepo = match[1];
var branch = match[2];
var format = match[3];
var url = 'https://raw.githubusercontent.com/' + orgOrUserAndRepo;
if (branch != null) {
url += "/" + branch + "/OSSMETADATA"
}
else {
url += "/master/OSSMETADATA";
}
var options = {
method: 'GET',
uri: url
};
var badgeData = getBadgeData('OSS Lifecycle', data);
request(options, function(err, res, body) {
if (err != null) {
console.error('NetflixOSS error: ' + err.stack);
if (res) { console.error(''+res); }
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
return;
}
try {
var matchStatus = body.match(/osslifecycle\=([a-z]+)/im);
if (matchStatus === null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
return;
} else {
badgeData.text[1] = matchStatus[1];
sendBadge(format, badgeData);
return;
}
} catch(e) {
console.log(e);
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
}
});
}));
// Shippable integration
camp.route(/^\/shippable\/([^\/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json)$/,
cache(function (data, match, sendBadge, request) {

View File

@ -913,6 +913,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
<td><img src='/stackexchange/stackoverflow/t/augeas.svg' alt=''/></td>
<td><code>https://img.shields.io/stackexchange/stackoverflow/t/augeas.svg</code></td>
</tr>
<tr><th> NetflixOSS Lifecycle: </th>
<td><img src='/osslifecycle/Netflix/osstracker.svg' alt=''/></td>
<td><code>https://img.shields.io/osslifecycle/Netflix/osstracker.svg</code></td>
</tr>
</tbody></table>
<h2 id="your-badge"> Your Badge </h2>