From 3a58d239ec7467b8b720798a6b2f5d5a74f8fb3c Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 31 Jan 2023 22:25:39 +0100 Subject: [PATCH] refactor(datasource/orb): log res when no response (#20134) --- lib/modules/datasource/orb/index.ts | 20 +++++++++++--------- lib/modules/datasource/orb/types.ts | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/modules/datasource/orb/index.ts b/lib/modules/datasource/orb/index.ts index 62560f6bd2..0eca02f4f0 100644 --- a/lib/modules/datasource/orb/index.ts +++ b/lib/modules/datasource/orb/index.ts @@ -2,7 +2,7 @@ import { logger } from '../../../logger'; import { cache } from '../../../util/cache/package/decorator'; import { Datasource } from '../datasource'; import type { GetReleasesConfig, ReleaseResult } from '../types'; -import type { OrbRelease } from './types'; +import type { OrbResponse } from './types'; const query = ` query($packageName: String!) { @@ -45,20 +45,22 @@ export class OrbDatasource extends Datasource { query, variables: { packageName }, }; - const res: OrbRelease = ( - await this.http.postJson<{ data: { orb: OrbRelease } }>(url, { + const res = ( + await this.http.postJson<OrbResponse>(url, { body, }) - ).body.data.orb; - if (!res) { - logger.debug(`Failed to look up orb ${packageName}`); + ).body; + if (!res?.data?.orb) { + logger.debug({ res }, `Failed to look up orb ${packageName}`); return null; } + + const { orb } = res.data; // Simplify response before caching and returning - const homepage = res.homeUrl?.length - ? res.homeUrl + const homepage = orb.homeUrl?.length + ? orb.homeUrl : `https://circleci.com/developer/orbs/orb/${packageName}`; - const releases = res.versions.map(({ version, createdAt }) => ({ + const releases = orb.versions.map(({ version, createdAt }) => ({ version, releaseTimestamp: createdAt ?? null, })); diff --git a/lib/modules/datasource/orb/types.ts b/lib/modules/datasource/orb/types.ts index a1f1941c27..c0beaeed64 100644 --- a/lib/modules/datasource/orb/types.ts +++ b/lib/modules/datasource/orb/types.ts @@ -5,3 +5,9 @@ export interface OrbRelease { createdAt?: string; }[]; } + +export interface OrbResponse { + data?: { + orb?: OrbRelease; + }; +} -- GitLab