deprecate DockerBuild service (#6529)

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
This commit is contained in:
Caleb Cartwright
2021-05-23 13:39:45 -05:00
committed by GitHub
parent 9aa95d64c2
commit f18d8ce557
2 changed files with 20 additions and 101 deletions

View File

@@ -1,57 +1,13 @@
'use strict'
const Joi = require('joi')
const { anyInteger } = require('../validators')
const { BaseJsonService } = require('..')
const {
dockerBlue,
buildDockerUrl,
getDockerHubUser,
} = require('./docker-helpers')
const { deprecatedService } = require('..')
const buildSchema = Joi.object({
results: Joi.array()
.items(Joi.object({ status: anyInteger }).required())
.required(),
}).required()
module.exports = class DockerBuild extends BaseJsonService {
static category = 'build'
static route = buildDockerUrl('build')
static examples = [
{
title: 'Docker Build Status',
namedParams: {
user: 'jrottenberg',
repo: 'ffmpeg',
},
staticPreview: this.render({ status: 10 }),
},
]
static defaultBadgeData = { label: 'docker build' }
static render({ status }) {
if (status === 10) {
return { message: 'passing', color: 'brightgreen' }
} else if (status < 0) {
return { message: 'failing', color: 'red' }
}
return { message: 'building', color: dockerBlue }
}
async fetch({ user, repo }) {
return this._requestJson({
schema: buildSchema,
url: `https://registry.hub.docker.com/v2/repositories/${getDockerHubUser(
user
)}/${repo}/buildhistory`,
errorMessages: { 404: 'repo not found' },
})
}
async handle({ user, repo }) {
const data = await this.fetch({ user, repo })
return this.constructor.render({ status: data.results[0].status })
}
}
module.exports = deprecatedService({
category: 'build',
route: {
base: 'docker/build',
pattern: ':various*',
},
label: 'docker build',
dateAdded: new Date('2021-05-24'),
})

View File

@@ -1,51 +1,14 @@
'use strict'
const { isBuildStatus } = require('../build-status')
const t = (module.exports = require('../tester').createServiceTester())
const { dockerBlue } = require('./docker-helpers')
const { ServiceTester } = require('../tester')
t.create('docker build status (valid, user)')
.get('/jrottenberg/ffmpeg.json')
.expectBadge({
label: 'docker build',
message: isBuildStatus,
})
const t = (module.exports = new ServiceTester({
id: 'dockerbuild',
title: 'DockerBuild',
pathPrefix: '/docker/build',
}))
t.create('docker build status (not found)')
.get('/_/not-a-real-repo.json')
.expectBadge({ label: 'docker build', message: 'repo not found' })
t.create('docker build status (passing)')
.get('/_/ubuntu.json')
.intercept(nock =>
nock('https://registry.hub.docker.com/')
.get('/v2/repositories/library/ubuntu/buildhistory')
.reply(200, { results: [{ status: 10 }] })
)
.expectBadge({
label: 'docker build',
message: 'passing',
color: 'brightgreen',
})
t.create('docker build status (failing)')
.get('/_/ubuntu.json')
.intercept(nock =>
nock('https://registry.hub.docker.com/')
.get('/v2/repositories/library/ubuntu/buildhistory')
.reply(200, { results: [{ status: -1 }] })
)
.expectBadge({ label: 'docker build', message: 'failing', color: 'red' })
t.create('docker build status (building)')
.get('/_/ubuntu.json')
.intercept(nock =>
nock('https://registry.hub.docker.com/')
.get('/v2/repositories/library/ubuntu/buildhistory')
.reply(200, { results: [{ status: 1 }] })
)
.expectBadge({
label: 'docker build',
message: 'building',
color: `#${dockerBlue}`,
})
t.create('no longer available').get('/jrottenberg/ffmpeg.json').expectBadge({
label: 'docker build',
message: 'no longer available',
})