From 4aca7294b42d2419afd0a1a6f77fe8b6f14e8b80 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:56:25 -0300 Subject: [PATCH] feat: Support `cachePrivatePackages` option for datasource index level (#30120) --- lib/modules/datasource/index.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/modules/datasource/index.ts b/lib/modules/datasource/index.ts index a8a7d1c1c6..df84151bca 100644 --- a/lib/modules/datasource/index.ts +++ b/lib/modules/datasource/index.ts @@ -1,5 +1,6 @@ import is from '@sindresorhus/is'; import { dequal } from 'dequal'; +import { GlobalConfig } from '../../config/global'; import { HOST_DISABLED } from '../../constants/error-messages'; import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; @@ -79,10 +80,16 @@ async function getRegistryReleases( res.registryUrl ??= registryUrl; } // cache non-null responses unless marked as private - if (datasource.caching && res && !res.isPrivate) { - logger.trace({ cacheKey }, 'Caching datasource response'); - const cacheMinutes = 15; - await packageCache.set(cacheNamespace, cacheKey, res, cacheMinutes); + if (datasource.caching && res) { + const cachePrivatePackages = GlobalConfig.get( + 'cachePrivatePackages', + false, + ); + if (cachePrivatePackages || !res.isPrivate) { + logger.trace({ cacheKey }, 'Caching datasource response'); + const cacheMinutes = 15; + await packageCache.set(cacheNamespace, cacheKey, res, cacheMinutes); + } } return res; } -- GitLab