using waffle API. Fixes badges/shields#257

This commit is contained in:
Evan Cohen 2016-03-31 21:54:36 -07:00
parent 27ef17defb
commit 5b2b74bdbb
2 changed files with 25 additions and 18 deletions

View File

@ -4907,34 +4907,41 @@ cache(function(data, match, sendBadge, request) {
}));
// Waffle.io integration
camp.route(/^\/waffle\/column\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\.(svg|png|gif|jpg|json)$/,
camp.route(/^\/waffle\/cards\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var user = match[1]; // eg, potherca
var repo = match[2]; // eg, GraphvizWebEditor
var ghLabel = match[3] || 'ready'; // eg, waffle:%20ready%20for%20development
var user = match[1]; // eg, evancohen
var repo = match[2]; // eg, smart-mirror
var ghLabel = match[3] || 'ready'; // eg, in%20progress
var format = match[4];
var apiUrl = 'https://api.waffle.io/' + user + '/' + repo + '/columns';
var apiUrl = 'https://api.waffle.io/' + user + '/' + repo + '/cards';
var badgeData = getBadgeData('issues', data);
request(apiUrl, function(err, res, buffer) {
try {
var list = JSON.parse(buffer);
if (list.length === 0) {
var cards = JSON.parse(buffer);
if (cards.length === 0) {
badgeData.text[1] = 'absent';
sendBadge(format, badgeData);
return;
}
var column;
for (var i = 0; i < list.length; i++) {
var column = list[i];
var name = column.label? column.label.name: column.displayName;
var color = column.label? column.label.color: '78bdf2';
if (name === ghLabel) {
break;
var count = 0;
var color;
var name;
for (var i = 0; i < cards.length; i++) {
var cardMetadata = cards[i].githubMetadata;
if(cardMetadata.labels && cardMetadata.labels.length > 0){
for(var j = 0; j < cardMetadata.labels.length; j++){
var label = cardMetadata.labels[j];
if(label.name == ghLabel){
count++;
color = label.color;
name = label.name;
}
}
}
}
badgeData.text[0] = data.label || column.displayName || name;
badgeData.text[1] = '' + column.issues.length;
badgeData.text[0] = data.label || name;
badgeData.text[1] = '' + count;
badgeData.colorscheme = null;
badgeData.colorB = '#' + color;
sendBadge(format, badgeData);

View File

@ -747,8 +747,8 @@ Pixel-perfect &nbsp; Retina-ready &nbsp; Fast &nbsp; Consistent &nbsp; Hackable
<td><code>https://img.shields.io/maintenance/yes/2016.svg</code></td>
</tr>
<tr><th> Waffle.io: </th>
<td><img src='/waffle/column/potherca/GraphvizWebEditor/waffle:%20in%20progress.svg' alt=''/></td>
<td><code>https://img.shields.io/waffle/column/potherca/GraphvizWebEditor/waffle:%20in%20progress.svg</code></td>
<td><img src='/waffle/cards/evancohen/smart-mirror/in%20progress.svg' alt=''/></td>
<td><code>https://img.shields.io/cards/column/evancohen/smart-mirror/in%20progress.svg</code></td>
</tr>
</tbody></table>