diff --git a/lib/util/cache/repository/index.spec.ts b/lib/util/cache/repository/index.spec.ts
index d609f2d20ca0264406818d37d69183e99275d6b7..322639087f6492859f6d87ed1ef8774311d6ebc3 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 d052f11f4ab0b71244069553aefe5f77dfb5d818..6301ce8927078f760ee80d4269eae3070c29f4b7 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({});
 }