From db698b5bdb48f5465ed2497837473d98b72ac780 Mon Sep 17 00:00:00 2001
From: Sebastian Poxhofer <secustor@users.noreply.github.com>
Date: Fri, 10 Jul 2020 10:29:46 +0200
Subject: [PATCH] fix(terraform-provider): reintroduce caching (#6724)

---
 lib/datasource/terraform-provider/index.ts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/datasource/terraform-provider/index.ts b/lib/datasource/terraform-provider/index.ts
index 64be934edf..1ee32ca991 100644
--- a/lib/datasource/terraform-provider/index.ts
+++ b/lib/datasource/terraform-provider/index.ts
@@ -1,5 +1,6 @@
 import URL from 'url';
 import { logger } from '../../logger';
+import * as packageCache from '../../util/cache/package';
 import { Http } from '../../util/http';
 import { GetReleasesConfig, ReleaseResult } from '../common';
 
@@ -88,6 +89,17 @@ export async function getReleases({
 }: GetReleasesConfig): Promise<ReleaseResult | null> {
   const repository = `hashicorp/${lookupName}`;
 
+  const cacheNamespace = 'terraform-provider';
+  const pkgUrl = `${registryUrl}/${repository}`;
+  const cachedResult = await packageCache.get<ReleaseResult>(
+    cacheNamespace,
+    pkgUrl
+  );
+  // istanbul ignore if
+  if (cachedResult) {
+    return cachedResult;
+  }
+
   logger.debug({ lookupName }, 'terraform-provider.getDependencies()');
   let dep: ReleaseResult = null;
   const registryHost = URL.parse(registryUrl).host;
@@ -96,5 +108,7 @@ export async function getReleases({
   } else if (registryHost === 'releases.hashicorp.com') {
     dep = await queryReleaseBackend(lookupName, registryUrl, repository);
   }
+  const cacheMinutes = 30;
+  await packageCache.set(cacheNamespace, pkgUrl, dep, cacheMinutes);
   return dep;
 }
-- 
GitLab