First pass for linting on PRs
This commit is contained in:
parent
ecd30480de
commit
47a8bf51dc
12
.eslintrc.yml
Normal file
12
.eslintrc.yml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
env:
|
||||||
|
# We use Promise, Map, and occasional ES6 syntax.
|
||||||
|
es6: true
|
||||||
|
|
||||||
|
rules:
|
||||||
|
# We use semicolons.
|
||||||
|
semi: ["error", "always"]
|
||||||
|
no-extra-semi: "error"
|
||||||
|
|
||||||
|
# We keep whitespace cleaned up.
|
||||||
|
no-trailing-spaces: "error"
|
||||||
|
eol-last: "error"
|
|
@ -86,7 +86,7 @@ function setRoutes(server) {
|
||||||
addGithubToken(data.token);
|
addGithubToken(data.token);
|
||||||
end('Thanks!');
|
end('Thanks!');
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
function sendTokenToAllServers(token) {
|
function sendTokenToAllServers(token) {
|
||||||
var ips = serverSecrets.shieldsIps;
|
var ips = serverSecrets.shieldsIps;
|
||||||
|
|
|
@ -36,7 +36,9 @@
|
||||||
"xml2js": "~0.4.16"
|
"xml2js": "~0.4.16"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node test/test.js"
|
"lint": "eslint '**/*.js'",
|
||||||
|
"test:js": "node test/test.js",
|
||||||
|
"test": "npm run lint && npm run test:js"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"badge": "./gh-badge.js"
|
"badge": "./gh-badge.js"
|
||||||
|
@ -51,5 +53,8 @@
|
||||||
"colorscheme.json",
|
"colorscheme.json",
|
||||||
"lru-cache.js",
|
"lru-cache.js",
|
||||||
"logo"
|
"logo"
|
||||||
]
|
],
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "^3.18.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
38
server.js
38
server.js
|
@ -464,7 +464,7 @@ camp.route(/^\/osslifecycle?\/([^\/]+\/[^\/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json
|
||||||
var format = match[3];
|
var format = match[3];
|
||||||
var url = 'https://raw.githubusercontent.com/' + orgOrUserAndRepo;
|
var url = 'https://raw.githubusercontent.com/' + orgOrUserAndRepo;
|
||||||
if (branch != null) {
|
if (branch != null) {
|
||||||
url += "/" + branch + "/OSSMETADATA"
|
url += "/" + branch + "/OSSMETADATA";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
url += "/master/OSSMETADATA";
|
url += "/master/OSSMETADATA";
|
||||||
|
@ -854,7 +854,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
} else if (property.name === 'CodeCoverageAbsSTotal') {
|
} else if (property.name === 'CodeCoverageAbsSTotal') {
|
||||||
total = property.value;
|
total = property.value;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
if (covered === undefined || total === undefined) {
|
if (covered === undefined || total === undefined) {
|
||||||
badgeData.text[1] = 'malformed';
|
badgeData.text[1] = 'malformed';
|
||||||
|
@ -999,7 +999,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
badgeData.text[1] = data.message;
|
badgeData.text[1] = data.message;
|
||||||
|
|
||||||
if (data.message === 'passed') {
|
if (data.message === 'passed') {
|
||||||
badgeData.colorscheme = 'brightgreen'
|
badgeData.colorscheme = 'brightgreen';
|
||||||
badgeData.text[1] = 'passing';
|
badgeData.text[1] = 'passing';
|
||||||
} else if (/^passed .* new defects$/.test(data.message)) {
|
} else if (/^passed .* new defects$/.test(data.message)) {
|
||||||
badgeData.colorscheme = 'yellow';
|
badgeData.colorscheme = 'yellow';
|
||||||
|
@ -1029,7 +1029,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
(badgeType == 'streams' && badgeTypeId == 'STREAM')) {
|
(badgeType == 'streams' && badgeTypeId == 'STREAM')) {
|
||||||
// Request is for a static demo badge
|
// Request is for a static demo badge
|
||||||
badgeData.text[1] = 'clean';
|
badgeData.text[1] = 'clean';
|
||||||
badgeData.colorscheme = 'green'
|
badgeData.colorscheme = 'green';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1741,7 +1741,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
options.auth = {
|
options.auth = {
|
||||||
user: serverSecrets.bintray_user,
|
user: serverSecrets.bintray_user,
|
||||||
pass: serverSecrets.bintray_apikey
|
pass: serverSecrets.bintray_apikey
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var badgeData = getBadgeData('bintray', data);
|
var badgeData = getBadgeData('bintray', data);
|
||||||
|
@ -1912,7 +1912,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
badgeData.text[1] = 'invalid';
|
badgeData.text[1] = 'invalid';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
@ -1953,7 +1953,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
badgeData.text[1] = 'invalid';
|
badgeData.text[1] = 'invalid';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// PyPI integration.
|
// PyPI integration.
|
||||||
|
@ -2355,7 +2355,7 @@ camp.route(/^\/codeclimate\/issues\/(.+)\.(svg|png|gif|jpg|json)$/,
|
||||||
cache(function(data, match, sendBadge, request) {
|
cache(function(data, match, sendBadge, request) {
|
||||||
var userRepo = match[1]; // eg, `github/me-and/mdf`.
|
var userRepo = match[1]; // eg, `github/me-and/mdf`.
|
||||||
var format = match[2];
|
var format = match[2];
|
||||||
var options = 'https://codeclimate.com/' + userRepo + '/badges/issue_count.svg'
|
var options = 'https://codeclimate.com/' + userRepo + '/badges/issue_count.svg';
|
||||||
var badgeData = getBadgeData('issues', data);
|
var badgeData = getBadgeData('issues', data);
|
||||||
request(options, function(err, res, buffer) {
|
request(options, function(err, res, buffer) {
|
||||||
if (err != null) {
|
if (err != null) {
|
||||||
|
@ -2907,7 +2907,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
var percentage = data.cocoadocs.doc_percent;
|
var percentage = data.cocoadocs.doc_percent;
|
||||||
badgeData.colorscheme = coveragePercentageColor(percentage);
|
badgeData.colorscheme = coveragePercentageColor(percentage);
|
||||||
badgeData.text[0] = 'docs';
|
badgeData.text[0] = 'docs';
|
||||||
badgeData.text[1] = percentage + '%'
|
badgeData.text[1] = percentage + '%';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
badgeData.text[1] = 'invalid';
|
badgeData.text[1] = 'invalid';
|
||||||
|
@ -4462,7 +4462,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
request(coreUrl, function(err, res, response) {
|
request(coreUrl, function(err, res, response) {
|
||||||
try {
|
try {
|
||||||
var versions = JSON.parse(response).offers.map(function(v) {
|
var versions = JSON.parse(response).offers.map(function(v) {
|
||||||
return v.version
|
return v.version;
|
||||||
});
|
});
|
||||||
if (err != null) { sendBadge(format, badgeData); return; }
|
if (err != null) { sendBadge(format, badgeData); return; }
|
||||||
var svTestedVersion = testedVersion.split('.').length == 2 ? testedVersion += '.0' : testedVersion;
|
var svTestedVersion = testedVersion.split('.').length == 2 ? testedVersion += '.0' : testedVersion;
|
||||||
|
@ -4549,9 +4549,9 @@ cache(function(data, match, sendBadge, request) {
|
||||||
var userRepo = match[1]; // eg, `github/celery/celery`.
|
var userRepo = match[1]; // eg, `github/celery/celery`.
|
||||||
var branch = match[2];
|
var branch = match[2];
|
||||||
var format = match[3];
|
var format = match[3];
|
||||||
var uri = 'https://requires.io/api/v1/status/' + userRepo
|
var uri = 'https://requires.io/api/v1/status/' + userRepo;
|
||||||
if (branch != null) {
|
if (branch != null) {
|
||||||
uri += '?branch=' + branch
|
uri += '?branch=' + branch;
|
||||||
}
|
}
|
||||||
var options = {
|
var options = {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
@ -4696,7 +4696,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
var token = match[1];
|
var token = match[1];
|
||||||
var type = match[2] || 'github'; // github OR bitbucket
|
var type = match[2] || 'github'; // github OR bitbucket
|
||||||
var userRepo = match[3]; // eg, `RedSparr0w/node-csgo-parser`.
|
var userRepo = match[3]; // eg, `RedSparr0w/node-csgo-parser`.
|
||||||
var branch = match[4]
|
var branch = match[4];
|
||||||
var format = match[5];
|
var format = match[5];
|
||||||
|
|
||||||
// Base API URL
|
// Base API URL
|
||||||
|
@ -4833,7 +4833,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
badgeData.text[1] = 'invalid';
|
badgeData.text[1] = 'invalid';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
}
|
}
|
||||||
})}
|
});}
|
||||||
));
|
));
|
||||||
|
|
||||||
// DUB download integration
|
// DUB download integration
|
||||||
|
@ -5169,7 +5169,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
var type = match[1];
|
var type = match[1];
|
||||||
var user = match[2];
|
var user = match[2];
|
||||||
var repo = match[3];
|
var repo = match[3];
|
||||||
var tag = match[4]
|
var tag = match[4];
|
||||||
var format = match[5];
|
var format = match[5];
|
||||||
if (user === '_') {
|
if (user === '_') {
|
||||||
user = 'library';
|
user = 'library';
|
||||||
|
@ -5270,7 +5270,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
uri: 'https://api.stackexchange.com/2.2/' + path + '?site=' + site,
|
uri: 'https://api.stackexchange.com/2.2/' + path + '?site=' + site,
|
||||||
gzip: true
|
gzip: true
|
||||||
}
|
};
|
||||||
var badgeData = getBadgeData(site, data);
|
var badgeData = getBadgeData(site, data);
|
||||||
request(options, function (err, res, buffer) {
|
request(options, function (err, res, buffer) {
|
||||||
if (err != null) {
|
if (err != null) {
|
||||||
|
@ -5302,7 +5302,7 @@ cache(function(data, match, sendBadge, request) {
|
||||||
badgeData.text[1] = 'invalid';
|
badgeData.text[1] = 'invalid';
|
||||||
sendBadge(format, badgeData);
|
sendBadge(format, badgeData);
|
||||||
}
|
}
|
||||||
})}
|
});}
|
||||||
));
|
));
|
||||||
|
|
||||||
// beerpay.io integration.
|
// beerpay.io integration.
|
||||||
|
@ -5885,7 +5885,7 @@ function getLabel(label, data) {
|
||||||
return data.label || label;
|
return data.label || label;
|
||||||
}
|
}
|
||||||
|
|
||||||
function colorParam(color) { return (sixHex(color) ? '#' : '') + color }
|
function colorParam(color) { return (sixHex(color) ? '#' : '') + color; }
|
||||||
|
|
||||||
// data (URL query) can include `label`, `style`, `logo`, `logoWidth`, `link`,
|
// data (URL query) can include `label`, `style`, `logo`, `logoWidth`, `link`,
|
||||||
// `colorA`, `colorB`.
|
// `colorA`, `colorB`.
|
||||||
|
@ -5895,7 +5895,7 @@ function getBadgeData(defaultLabel, data) {
|
||||||
var template = data.style || 'default';
|
var template = data.style || 'default';
|
||||||
if (data.style && validTemplates.indexOf(data.style) > -1) {
|
if (data.style && validTemplates.indexOf(data.style) > -1) {
|
||||||
template = data.style;
|
template = data.style;
|
||||||
};
|
}
|
||||||
if (!(Object(data.link) instanceof Array)) {
|
if (!(Object(data.link) instanceof Array)) {
|
||||||
if (data.link === undefined) {
|
if (data.link === undefined) {
|
||||||
data.link = [];
|
data.link = [];
|
||||||
|
|
|
@ -219,7 +219,7 @@ var licensePhrases = {
|
||||||
'ISC': 'permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted',
|
'ISC': 'permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted',
|
||||||
'CC0': 'cc0',
|
'CC0': 'cc0',
|
||||||
'Unlicense': 'this is free and unencumbered software released into the public domain',
|
'Unlicense': 'this is free and unencumbered software released into the public domain',
|
||||||
}
|
};
|
||||||
var licenseCodes = Object.keys(licensePhrases);
|
var licenseCodes = Object.keys(licensePhrases);
|
||||||
var spaceMetaRegex = new RegExp(' ', 'g');
|
var spaceMetaRegex = new RegExp(' ', 'g');
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ module.exports = function (svg, format, out, cb) {
|
||||||
imgCache.set(cacheIndex, [stdout]);
|
imgCache.set(cacheIndex, [stdout]);
|
||||||
cb && cb();
|
cb && cb();
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
// Fake stream from the cache.
|
// Fake stream from the cache.
|
||||||
var Readable = require('stream').Readable;
|
var Readable = require('stream').Readable;
|
||||||
|
|
|
@ -75,7 +75,7 @@ test('The CLI', [
|
||||||
['test/cli-test.js', 'cactus', 'grown', '#abcdef']);
|
['test/cli-test.js', 'cactus', 'grown', '#abcdef']);
|
||||||
child.stdout.on('data', function(chunk) {
|
child.stdout.on('data', function(chunk) {
|
||||||
var buffer = ''+chunk;
|
var buffer = ''+chunk;
|
||||||
assert(buffer.includes('#abcdef'), '#abcdef')
|
assert(buffer.includes('#abcdef'), '#abcdef');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
}],
|
}],
|
||||||
|
@ -142,4 +142,4 @@ test('The server', [
|
||||||
server.kill();
|
server.kill();
|
||||||
server.on('exit', function() { done(); });
|
server.on('exit', function() { done(); });
|
||||||
}],
|
}],
|
||||||
])});
|
]);});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user