From 4459b1126150982fd1bfc190f250e779bb9e0543 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 7 Jul 2020 06:24:26 +0200
Subject: [PATCH] fix(cache): improve repository cache robustness (#6689)

---
 lib/util/cache/repository/index.spec.ts | 2 +-
 lib/util/cache/repository/index.ts      | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/util/cache/repository/index.spec.ts b/lib/util/cache/repository/index.spec.ts
index d609f2d20c..322639087f 100644
--- a/lib/util/cache/repository/index.spec.ts
+++ b/lib/util/cache/repository/index.spec.ts
@@ -45,6 +45,6 @@ describe('lib/util/cache/repository', () => {
     expect(fs.outputFile.mock.calls).toHaveLength(1);
   });
   it('gets', () => {
-    expect(repositoryCache.getCache()).toEqual({ repository: 'abc/def' });
+    expect(repositoryCache.getCache()).toEqual({});
   });
 });
diff --git a/lib/util/cache/repository/index.ts b/lib/util/cache/repository/index.ts
index d052f11f4a..6301ce8927 100644
--- a/lib/util/cache/repository/index.ts
+++ b/lib/util/cache/repository/index.ts
@@ -56,15 +56,19 @@ export async function initialize(config: RenovateConfig): Promise<void> {
   } catch (err) {
     logger.debug({ cacheFileName }, 'Repository cache not found');
   }
-  cache = cache || { repository: config.repository };
+  cache = cache || Object.create({});
+  cache.repository = config.repository;
 }
 
 export function getCache(): Cache {
+  cache = cache || Object.create({});
   return cache;
 }
 
 export async function finalize(): Promise<void> {
-  if (repositoryCache !== 'disabled') {
+  if (cacheFileName && cache && repositoryCache !== 'disabled') {
     await fs.outputFile(cacheFileName, JSON.stringify(cache));
   }
+  cacheFileName = null;
+  cache = Object.create({});
 }
-- 
GitLab