Add cauditor.org badge (#704)
This commit is contained in:
parent
1ff0d9217f
commit
a3429a316a
66
server.js
66
server.js
|
@ -5681,6 +5681,72 @@ cache(function(data, match, sendBadge, request) {
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// Cauditor integration
|
||||||
|
camp.route(/^\/cauditor\/(mi|ccn|npath|hi|i|ca|ce|dit)\/([^\/]+)\/([^\/]+)\/(.+)\.(svg|png|gif|jpg|json)$/,
|
||||||
|
cache(function(data, match, sendBadge, request) {
|
||||||
|
var labels = {
|
||||||
|
'mi': 'maintainability',
|
||||||
|
'ccn': 'cyclomatic complexity',
|
||||||
|
'npath': 'npath complexity',
|
||||||
|
'hi': 'intelligent content',
|
||||||
|
'i': 'instability',
|
||||||
|
'ca': 'afferent coupling',
|
||||||
|
'ce': 'efferent coupling',
|
||||||
|
'dit': 'depth of inheritance'
|
||||||
|
};
|
||||||
|
// values for color ranges (left = green, right = red)
|
||||||
|
var colors = {
|
||||||
|
'mi': [70, 55, 45, 35],
|
||||||
|
'ccn': [2, 4, 7, 11],
|
||||||
|
'npath': [2, 25, 60, 200],
|
||||||
|
'hi': [2, 20, 45, 80],
|
||||||
|
'i': [.2, .5, .75, .8],
|
||||||
|
'ca': [2, 4, 7, 10],
|
||||||
|
'ce': [2, 7, 13, 20],
|
||||||
|
'dit': [2, 3, 4, 5]
|
||||||
|
};
|
||||||
|
var metric = match[1];
|
||||||
|
var user = match[2];
|
||||||
|
var repo = match[3];
|
||||||
|
var branch = match[4];
|
||||||
|
var format = match[5];
|
||||||
|
var badgeData = getBadgeData(labels[metric], data);
|
||||||
|
var url = 'https://www.cauditor.org/api/v1/' + user + '/' + repo + '/' + branch + '/HEAD';
|
||||||
|
request(url, function(err, res, buffer) {
|
||||||
|
if (err != null || res.statusCode !== 200) {
|
||||||
|
badgeData.text[1] = 'inaccessible';
|
||||||
|
sendBadge(format, badgeData);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = JSON.parse(buffer);
|
||||||
|
var value = data.metrics.weighed[metric];
|
||||||
|
var range = colors[metric];
|
||||||
|
|
||||||
|
badgeData.text[1] = Math.round(value);
|
||||||
|
if (metric === 'mi') {
|
||||||
|
badgeData.text[1] += '%';
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate colors: anything in the given range is green to yellow
|
||||||
|
if (value >= Math.min(range[0], range[1]) && value < Math.max(range[0], range[1])) {
|
||||||
|
badgeData.colorscheme = 'green';
|
||||||
|
} else if (value >= Math.min(range[1], range[2]) && value < Math.max(range[1], range[2])) {
|
||||||
|
badgeData.colorscheme = 'yellowgreen';
|
||||||
|
} else if (value >= Math.min(range[2], range[3]) && value < Math.max(range[2], range[3])) {
|
||||||
|
badgeData.colorscheme = 'yellow';
|
||||||
|
// anything higher than (or lower, in case of 'mi') first value is green
|
||||||
|
} else if ((value < range[0] && range[0] < range[1]) || (value > range[0] && range[0] > range[1])) {
|
||||||
|
badgeData.colorscheme = 'brightgreen';
|
||||||
|
// anything not yet matched is bad!
|
||||||
|
} else {
|
||||||
|
badgeData.colorscheme = 'red';
|
||||||
|
}
|
||||||
|
|
||||||
|
sendBadge(format, badgeData);
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
// Mozilla addons integration
|
// Mozilla addons integration
|
||||||
camp.route(/^\/amo\/(v|d|rating|stars|users)\/(.*)\.(svg|png|gif|jpg|json)$/,
|
camp.route(/^\/amo\/(v|d|rating|stars|users)\/(.*)\.(svg|png|gif|jpg|json)$/,
|
||||||
cache(function(data, match, sendBadge, request) {
|
cache(function(data, match, sendBadge, request) {
|
||||||
|
|
4
try.html
4
try.html
|
@ -811,6 +811,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
||||||
<td><img src='/codacy/coverage/c44df2d9c89a4809896914fd1a40bedd/master.svg' alt=''/></td>
|
<td><img src='/codacy/coverage/c44df2d9c89a4809896914fd1a40bedd/master.svg' alt=''/></td>
|
||||||
<td><code>https://img.shields.io/codacy/coverage/c44df2d9c89a4809896914fd1a40bedd/master.svg</code></td>
|
<td><code>https://img.shields.io/codacy/coverage/c44df2d9c89a4809896914fd1a40bedd/master.svg</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr><th> Cauditor: </th>
|
||||||
|
<td><img src='/cauditor/mi/matthiasmullie/scrapbook/master.svg' alt=''/></td>
|
||||||
|
<td><code>https://img.shields.io/cauditor/mi/matthiasmullie/scrapbook/master.svg</code></td>
|
||||||
|
</tr>
|
||||||
<tr><th> Libscore: </th>
|
<tr><th> Libscore: </th>
|
||||||
<td><img src='/libscore/s/jQuery.svg' alt=''/></td>
|
<td><img src='/libscore/s/jQuery.svg' alt=''/></td>
|
||||||
<td><code>https://img.shields.io/libscore/s/jQuery.svg</code></td>
|
<td><code>https://img.shields.io/libscore/s/jQuery.svg</code></td>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user