diff --git a/index.html b/index.html index dbb1966..d8c0260 100644 --- a/index.html +++ b/index.html @@ -703,6 +703,14 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-raw/badges/shields.svg + GitHub closed issues: + + https://img.shields.io/github/issues-closed/badges/shields.svg + + + + https://img.shields.io/github/issues-closed-raw/badges/shields.svg + label: https://img.shields.io/github/issues-raw/badges/shields/website.svg @@ -715,6 +723,14 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-pr-raw/cdnjs/cdnjs.svg + GitHub closed pull requests: + + https://img.shields.io/github/issues-pr-closed/cdnjs/cdnjs.svg + + + + https://img.shields.io/github/issues-pr-closed-raw/cdnjs/cdnjs.svg + GitHub contributors: https://img.shields.io/github/contributors/cdnjs/cdnjs.svg diff --git a/server.js b/server.js index 4cd784a..37a9970 100644 --- a/server.js +++ b/server.js @@ -2995,24 +2995,26 @@ cache(function(data, match, sendBadge, request) { })); // GitHub issues integration. -camp.route(/^\/github\/issues(-pr)?(-raw)?\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\.(svg|png|gif|jpg|json)$/, +camp.route(/^\/github\/issues(-pr)?(-closed)?(-raw)?\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { var isPR = !!match[1]; - var isRaw = !!match[2]; - var user = match[3]; // eg, badges - var repo = match[4]; // eg, shields - var ghLabel = match[5]; // eg, website - var format = match[6]; - var apiUrl = 'https://api.github.com/' + (isPR ? 'search/issues?q=is:pr+is:open+' : 'repos/') + user + '/' + repo; + var isClosed = !!match[2]; + var isRaw = !!match[3]; + var user = match[4]; // eg, badges + var repo = match[5]; // eg, shields + var ghLabel = match[6]; // eg, website + var format = match[7]; + var apiUrl = 'https://api.github.com/' + (isPR ? 'search/issues?q=is:pr+is:' + (isClosed ? 'closed' : 'open') + '+' : 'repos/') + user + '/' + repo; var issuesApi = false; // Are we using the issues API instead of the repo one? var query = {}; if (!isPR && ghLabel !== undefined) { apiUrl += '/issues'; + apiUrl += (isClosed ? '?state=closed' : ''); query.labels = ghLabel; issuesApi = true; } - var badgeData = getBadgeData( (isPR ? 'pull requests' : 'issues'), data); + var badgeData = getBadgeData( (isClosed ? 'closed ' : '' ) + (isPR ? 'pull requests' : 'issues'), data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; } @@ -3036,7 +3038,7 @@ cache(function(data, match, sendBadge, request) { var issues = data.open_issues_count; } } - badgeData.text[1] = issues + modifier + (isRaw? '': ' open'); + badgeData.text[1] = issues + modifier + (isRaw? '': (isClosed ? ' closed' : ' open')); badgeData.colorscheme = issues ? 'yellow' : 'brightgreen'; sendBadge(format, badgeData); } catch(e) { diff --git a/try.html b/try.html index 8a495b1..96c68ad 100644 --- a/try.html +++ b/try.html @@ -702,6 +702,14 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-raw/badges/shields.svg + GitHub closed issues: + + https://img.shields.io/github/issues-closed/badges/shields.svg + + + + https://img.shields.io/github/issues-closed-raw/badges/shields.svg + label: https://img.shields.io/github/issues-raw/badges/shields/website.svg @@ -714,6 +722,14 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/github/issues-pr-raw/cdnjs/cdnjs.svg + GitHub closed pull requests: + + https://img.shields.io/github/issues-pr-closed/cdnjs/cdnjs.svg + + + + https://img.shields.io/github/issues-pr-closed-raw/cdnjs/cdnjs.svg + GitHub contributors: https://img.shields.io/github/contributors/cdnjs/cdnjs.svg