Files
shields/services/azure-devops/azure-devops-helpers.js
T

59 lines
1.3 KiB
JavaScript

'use strict'
const Joi = require('joi')
const serverSecrets = require('../../lib/server-secrets')
const schema = Joi.object({
message: Joi.equal(
'succeeded',
'partially suceeded',
'failed',
'unknown',
'set up now'
).required(),
}).required()
async function fetch(serviceInstance, { url, qs = {}, errorMessages }) {
// Microsoft documentation: https://docs.microsoft.com/en-us/rest/api/vsts/build/status/get
const { message: status } = await serviceInstance._requestSvg({
schema,
url,
options: { qs },
errorMessages,
})
return { status }
}
function render({ status }) {
switch (status) {
case 'succeeded':
return {
message: 'passing',
color: 'brightgreen',
}
case 'partially succeeded':
return {
message: 'passing',
color: 'orange',
}
case 'failed':
return {
message: 'failing',
color: 'red',
}
}
}
function getHeaders() {
const headers = {}
if (serverSecrets && serverSecrets.azure_devops_token) {
const pat = serverSecrets.azure_devops_token
const auth = Buffer.from(`:${pat}`).toString('base64')
headers.Authorization = `basic ${auth}`
}
return headers
}
module.exports = { fetch, render, getHeaders }