Deprecate [ImageLayers] service (#2352)
This commit is contained in:
@@ -1,81 +1,12 @@
|
||||
'use strict'
|
||||
|
||||
const LegacyService = require('../legacy-service')
|
||||
const {
|
||||
makeBadgeData: getBadgeData,
|
||||
makeLabel: getLabel,
|
||||
} = require('../../lib/badge-data')
|
||||
const { metric } = require('../../lib/text-formatters')
|
||||
const deprecatedService = require('../deprecated-service')
|
||||
|
||||
module.exports = class Imagelayers extends LegacyService {
|
||||
static get category() {
|
||||
return 'size'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'imagelayers',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'ImageLayers Size',
|
||||
previewUrl: 'image-size/_/ubuntu/latest',
|
||||
},
|
||||
{
|
||||
title: 'ImageLayers Layers',
|
||||
previewUrl: 'layers/_/ubuntu/latest',
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static registerLegacyRouteHandler({ camp, cache }) {
|
||||
camp.route(
|
||||
/^\/imagelayers\/(image-size|layers)\/([^/]+)\/([^/]+)\/([^/]*)\.(svg|png|gif|jpg|json)$/,
|
||||
cache((data, match, sendBadge, request) => {
|
||||
const type = match[1]
|
||||
let user = match[2]
|
||||
const repo = match[3]
|
||||
const tag = match[4]
|
||||
const format = match[5]
|
||||
if (user === '_') {
|
||||
user = 'library'
|
||||
}
|
||||
const path = `${user}/${repo}`
|
||||
const badgeData = getBadgeData(type, data)
|
||||
const options = {
|
||||
method: 'POST',
|
||||
json: true,
|
||||
body: {
|
||||
repos: [{ name: path, tag }],
|
||||
},
|
||||
uri: 'https://imagelayers.io/registry/analyze',
|
||||
}
|
||||
request(options, (err, res, buffer) => {
|
||||
if (err != null) {
|
||||
badgeData.text[1] = 'inaccessible'
|
||||
sendBadge(format, badgeData)
|
||||
return
|
||||
}
|
||||
try {
|
||||
if (type === 'image-size') {
|
||||
const size = `${metric(buffer[0].repo.size)}B`
|
||||
badgeData.text[0] = getLabel('image size', data)
|
||||
badgeData.text[1] = size
|
||||
} else if (type === 'layers') {
|
||||
badgeData.text[1] = buffer[0].repo.count
|
||||
}
|
||||
badgeData.colorscheme = null
|
||||
badgeData.colorB = '#007ec6'
|
||||
sendBadge(format, badgeData)
|
||||
} catch (e) {
|
||||
badgeData.text[1] = 'invalid'
|
||||
sendBadge(format, badgeData)
|
||||
}
|
||||
})
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
// image layers integration - deprecated as of November 2018.
|
||||
module.exports = deprecatedService({
|
||||
url: {
|
||||
base: 'imagelayers',
|
||||
format: '(?:.+)',
|
||||
},
|
||||
label: 'imagelayers',
|
||||
})
|
||||
|
||||
20
services/imagelayers/imagelayers.tester.js
Normal file
20
services/imagelayers/imagelayers.tester.js
Normal file
@@ -0,0 +1,20 @@
|
||||
'use strict'
|
||||
|
||||
const ServiceTester = require('../service-tester')
|
||||
|
||||
const t = new ServiceTester({ id: 'imagelayers', title: 'ImageLayers' })
|
||||
module.exports = t
|
||||
|
||||
t.create('no longer available (previously image size)')
|
||||
.get('/image-size/_/ubuntu/latest.json')
|
||||
.expectJSON({
|
||||
name: 'imagelayers',
|
||||
value: 'no longer available',
|
||||
})
|
||||
|
||||
t.create('no longer available (previously number of layers)')
|
||||
.get('/layers/_/ubuntu/latest.json')
|
||||
.expectJSON({
|
||||
name: 'imagelayers',
|
||||
value: 'no longer available',
|
||||
})
|
||||
Reference in New Issue
Block a user