From 8754cdc7e32806d9651be805458db67e69d75f14 Mon Sep 17 00:00:00 2001 From: Andrew Spyker Date: Sat, 9 Jul 2016 19:54:27 -0700 Subject: [PATCH 1/2] fix docker command --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 14756f2..456e12e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -135,7 +135,7 @@ heroku open You can build and run the server locally using Docker. First build an image: ```console -$ build -t shields ./ +$ docker build -t shields . Sending build context to Docker daemon 3.923 MB Step 0 : FROM node:0.12.7-onbuild … From 925c314ffd3ddb47c49684c58a2d1de8ef7bd227 Mon Sep 17 00:00:00 2001 From: Andrew Spyker Date: Sat, 9 Jul 2016 20:57:35 -0700 Subject: [PATCH 2/2] add NetflixOSS OSSMETADATA osslifecycle support --- server.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ try.html | 4 ++++ 2 files changed, 49 insertions(+) diff --git a/server.js b/server.js index 7ed0d2d..bf8f060 100644 --- a/server.js +++ b/server.js @@ -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) { diff --git a/try.html b/try.html index 9fc3709..481ebdc 100644 --- a/try.html +++ b/try.html @@ -913,6 +913,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/stackexchange/stackoverflow/t/augeas.svg + NetflixOSS Lifecycle: + + https://img.shields.io/osslifecycle/Netflix/osstracker.svg +

Your Badge