using waffle API. Fixes badges/shields#257
This commit is contained in:
parent
27ef17defb
commit
5b2b74bdbb
39
server.js
39
server.js
|
@ -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);
|
||||
|
|
4
try.html
4
try.html
|
@ -747,8 +747,8 @@ Pixel-perfect Retina-ready Fast Consistent 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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user