From 2e2959a12c29a6ca096a2304464f1fc0af90407e Mon Sep 17 00:00:00 2001 From: Nemo157 Date: Sun, 30 Jul 2023 18:01:50 +0200 Subject: [PATCH] Migrate from docs.rs' builds API to status API (#9422) --- services/docsrs/docsrs.service.js | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/services/docsrs/docsrs.service.js b/services/docsrs/docsrs.service.js index f1c9d5f4dd..8ca40e0bc6 100644 --- a/services/docsrs/docsrs.service.js +++ b/services/docsrs/docsrs.service.js @@ -1,14 +1,9 @@ import Joi from 'joi' import { BaseJsonService } from '../index.js' -const schema = Joi.array() - .items( - Joi.object({ - build_status: Joi.boolean().required(), - }), - ) - .min(1) - .required() +const schema = Joi.object({ + doc_status: Joi.boolean().required(), +}).required() export default class DocsRs extends BaseJsonService { static category = 'build' @@ -17,19 +12,19 @@ export default class DocsRs extends BaseJsonService { { title: 'docs.rs', namedParams: { crate: 'regex', version: 'latest' }, - staticPreview: this.render({ version: 'latest', buildStatus: true }), + staticPreview: this.render({ version: 'latest', docStatus: true }), keywords: ['rust'], }, ] static defaultBadgeData = { label: 'docs' } - static render({ buildStatus, version }) { + static render({ docStatus, version }) { let label = `docs@${version}` if (version === 'latest') { label = 'docs' } - if (buildStatus) { + if (docStatus) { return { label, message: 'passing', @@ -47,12 +42,12 @@ export default class DocsRs extends BaseJsonService { async fetch({ crate, version }) { return await this._requestJson({ schema, - url: `https://docs.rs/crate/${crate}/${version}/builds.json`, + url: `https://docs.rs/crate/${crate}/${version}/status.json`, }) } async handle({ crate, version = 'latest' }) { - const [{ build_status: buildStatus }] = await this.fetch({ crate, version }) - return this.constructor.render({ version, buildStatus }) + const { doc_status: docStatus } = await this.fetch({ crate, version }) + return this.constructor.render({ version, docStatus }) } }