diff --git a/index.html b/index.html index 3adb4c0..dbb1966 100644 --- a/index.html +++ b/index.html @@ -715,6 +715,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-pr-raw/cdnjs/cdnjs.svg + GitHub contributors: + + https://img.shields.io/github/contributors/cdnjs/cdnjs.svg + license: https://img.shields.io/github/license/mashape/apistatus.svg diff --git a/server.js b/server.js index c1e4991..4cd784a 100644 --- a/server.js +++ b/server.js @@ -2832,6 +2832,35 @@ cache(function(data, match, sendBadge, request) { }); })); +// GitHub contributors integration. +camp.route(/^\/github\/contributors(-anon)?\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var isAnon = match[1]; + var user = match[2]; // eg, qubyte/rubidium + var repo = match[3]; + var format = match[4]; + var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/contributors?page=1&per_page=1&anon=' + (0+isAnon); + var badgeData = getBadgeData('contributors', data); + if (badgeData.template === 'social') { + badgeData.logo = badgeData.logo || logos.github; + } + githubAuth.request(request, apiUrl, {}, function(err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + return; + } + try { + var data = JSON.parse(buffer); + badgeData.text[1] = metric(data[0].contributions); + badgeData.colorscheme = 'blue'; + } catch(e) { + badgeData.text[1] = 'inaccessible'; + } + sendBadge(format, badgeData); + }); +})); + // GitHub release integration. camp.route(/^\/github\/release\/([^\/]+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { diff --git a/try.html b/try.html index 7e6bb3e..8a495b1 100644 --- a/try.html +++ b/try.html @@ -714,6 +714,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-pr-raw/cdnjs/cdnjs.svg + GitHub contributors: + + https://img.shields.io/github/contributors/cdnjs/cdnjs.svg + license: https://img.shields.io/github/license/mashape/apistatus.svg