Add Depfu dependencies badge (#1537)
This commit is contained in:
committed by
Paul Melnikow
parent
8fde79b793
commit
54afdc189c
@@ -1263,6 +1263,10 @@ const allBadgeExamples = [
|
||||
title: 'bitHound',
|
||||
previewUri: '/bithound/code/github/rexxars/sse-channel.svg'
|
||||
},
|
||||
{
|
||||
title: 'Depfu',
|
||||
previewUri: '/depfu/depfu/example-ruby.svg'
|
||||
},
|
||||
{
|
||||
title: 'Hackage-Deps',
|
||||
previewUri: '/hackage-deps/v/lens.svg'
|
||||
|
||||
25
server.js
25
server.js
@@ -3038,6 +3038,31 @@ cache(function(data, match, sendBadge, request) {
|
||||
});
|
||||
}));
|
||||
|
||||
// Depfu integration
|
||||
camp.route(/^\/depfu\/(.+)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
var userRepo = match[1]; // eg, `jekyll/jekyll`.
|
||||
var format = match[2];
|
||||
var url = 'https://depfu.com/github/shields/' + userRepo;
|
||||
var badgeData = getBadgeData('dependencies', data);
|
||||
request(url, function(err, res) {
|
||||
if (err != null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
var data = JSON.parse(res['body']);
|
||||
badgeData.text[1] = data['text'];
|
||||
badgeData.colorscheme = data['colorscheme'];
|
||||
sendBadge(format, badgeData);
|
||||
} catch(e) {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
}
|
||||
});
|
||||
}));
|
||||
|
||||
// VersionEye integration
|
||||
camp.route(/^\/versioneye\/d\/(.+)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
|
||||
26
service-tests/depfu.js
Normal file
26
service-tests/depfu.js
Normal file
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
const Joi = require('joi');
|
||||
const ServiceTester = require('./runner/service-tester');
|
||||
|
||||
const isDependencyStatus = Joi.string().valid('insecure', 'latest', 'recent', 'stale');
|
||||
|
||||
const t = new ServiceTester({ id: 'depfu', title: 'Depfu' });
|
||||
module.exports = t;
|
||||
|
||||
|
||||
t.create('depfu dependencies (valid)')
|
||||
.get('/depfu/example-ruby.json')
|
||||
.expectJSONTypes(Joi.object().keys({
|
||||
name: 'dependencies',
|
||||
value: isDependencyStatus
|
||||
}));
|
||||
|
||||
t.create('depfu dependencies (repo not found)')
|
||||
.get('/pyvesb/emptyrepo.json')
|
||||
.expectJSON({name: 'dependencies', value: 'invalid'});
|
||||
|
||||
t.create('depfu dependencies (connection error)')
|
||||
.get('/depfu/example-ruby.json')
|
||||
.networkOff()
|
||||
.expectJSON({name: 'dependencies', value: 'inaccessible'});
|
||||
Reference in New Issue
Block a user