diff --git a/logo/bithound.svg b/logo/bithound.svg new file mode 100644 index 0000000..7fb554d --- /dev/null +++ b/logo/bithound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server.js b/server.js index 2e3efdc..9b1b211 100644 --- a/server.js +++ b/server.js @@ -4839,6 +4839,31 @@ cache(function(data, match, sendBadge, request) { } })); +// bitHound integration +camp.route(/^\/bithound\/(code\/|dependencies\/|devDependencies\/)?(.+?)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var type = match[1].slice(0, -1); + var userRepo = match[2]; // eg, `github/rexxars/sse-channel`. + var format = match[3]; + var apiUrl = 'https://www.bithound.io/api/' + userRepo + '/badge/' + type; + var badgeData = getBadgeData(type === 'devDependencies' ? 'dev dependencies' : type, data); + + request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) { + try { + var data = JSON.parse(buffer); + badgeData.text[1] = data.label; + badgeData.logo = logos['bithound']; + badgeData.logoWidth = 15; + badgeData.colorscheme = null; + badgeData.colorB = '#' + data.color; + sendBadge(format, badgeData); + + } catch(e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + }); +})); // Any badge. camp.route(/^\/(:|badge\/)(([^-]|--)*?)-(([^-]|--)*)-(([^-]|--)+)\.(svg|png|gif|jpg)$/, diff --git a/try.html b/try.html index 9c627c9..79a41db 100644 --- a/try.html +++ b/try.html @@ -562,6 +562,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
https://img.shields.io/codeclimate/coverage/github/triAGENS/ashikawa-core.svg
https://img.shields.io/bithound/code/github/rexxars/sse-channel.svg
https://img.shields.io/gemnasium/mathiasbynens/he.svg
https://img.shields.io/david/peer/webcomponents/generator-element.svg
https://img.shields.io/bithound/dependencies/github/rexxars/sse-channel.svg
https://img.shields.io/bithound/devDependencies/github/rexxars/sse-channel.svg
https://img.shields.io/cocoapods/p/AFNetworking.svg