From f04a7c75fff3d4398bbd568dcd6daa1acec8685c Mon Sep 17 00:00:00 2001
From: RahulGautamSingh <rahultesnik@gmail.com>
Date: Sat, 29 Oct 2022 12:59:51 +0530
Subject: [PATCH] refactor: move branch cache files to util/cache (#18646)

---
 .../branch/behind-base-branch.spec.ts}        | 12 +++---
 .../branch/behind-base-branch.ts}             |  4 +-
 .../branch/conflict.spec.ts}                  | 15 +++----
 .../branch/conflict.ts}                       |  4 +-
 lib/util/cache/branch/index.ts                | 11 +++++
 .../branch/modified.spec.ts}                  | 15 +++----
 .../branch/modified.ts}                       |  4 +-
 .../branch/parent-sha.spec.ts}                | 12 +++---
 .../branch/parent-sha.ts}                     |  2 +-
 .../branch}/set-branch-commit.spec.ts         | 12 +++---
 .../branch}/set-branch-commit.ts              |  8 ++--
 lib/util/git/index.spec.ts                    | 42 ++++++++-----------
 lib/util/git/index.ts                         | 18 ++++----
 lib/workers/repository/cache.ts               |  2 +-
 lib/workers/repository/process/write.ts       |  2 +-
 15 files changed, 79 insertions(+), 84 deletions(-)
 rename lib/util/{git/behind-base-branch-cache.spec.ts => cache/branch/behind-base-branch.spec.ts} (95%)
 rename lib/util/{git/behind-base-branch-cache.ts => cache/branch/behind-base-branch.ts} (91%)
 rename lib/util/{git/conflicts-cache.spec.ts => cache/branch/conflict.spec.ts} (92%)
 rename lib/util/{git/conflicts-cache.ts => cache/branch/conflict.ts} (91%)
 create mode 100644 lib/util/cache/branch/index.ts
 rename lib/util/{git/modified-cache.spec.ts => cache/branch/modified.spec.ts} (90%)
 rename lib/util/{git/modified-cache.ts => cache/branch/modified.ts} (89%)
 rename lib/util/{git/parent-sha-cache.spec.ts => cache/branch/parent-sha.spec.ts} (88%)
 rename lib/util/{git/parent-sha-cache.ts => cache/branch/parent-sha.ts} (92%)
 rename lib/util/{git => cache/branch}/set-branch-commit.spec.ts (86%)
 rename lib/util/{git => cache/branch}/set-branch-commit.ts (81%)

diff --git a/lib/util/git/behind-base-branch-cache.spec.ts b/lib/util/cache/branch/behind-base-branch.spec.ts
similarity index 95%
rename from lib/util/git/behind-base-branch-cache.spec.ts
rename to lib/util/cache/branch/behind-base-branch.spec.ts
index 4aaabc6aaa..da54478eb7 100644
--- a/lib/util/git/behind-base-branch-cache.spec.ts
+++ b/lib/util/cache/branch/behind-base-branch.spec.ts
@@ -1,15 +1,15 @@
-import { logger, mocked, partial } from '../../../test/util';
-import * as _repositoryCache from '../cache/repository';
-import type { BranchCache, RepoCacheData } from '../cache/repository/types';
+import { logger, mocked, partial } from '../../../../test/util';
+import * as _repositoryCache from '../repository';
+import type { BranchCache, RepoCacheData } from '../repository/types';
 import {
   getCachedBehindBaseResult,
   setCachedBehindBaseResult,
-} from './behind-base-branch-cache';
+} from './behind-base-branch';
 
-jest.mock('../cache/repository');
+jest.mock('../repository');
 const repositoryCache = mocked(_repositoryCache);
 
-describe('util/git/behind-base-branch-cache', () => {
+describe('util/cache/branch/behind-base-branch', () => {
   let repoCache: RepoCacheData = {};
 
   beforeEach(() => {
diff --git a/lib/util/git/behind-base-branch-cache.ts b/lib/util/cache/branch/behind-base-branch.ts
similarity index 91%
rename from lib/util/git/behind-base-branch-cache.ts
rename to lib/util/cache/branch/behind-base-branch.ts
index 929457a8a5..3b0846cd89 100644
--- a/lib/util/git/behind-base-branch-cache.ts
+++ b/lib/util/cache/branch/behind-base-branch.ts
@@ -1,5 +1,5 @@
-import { logger } from '../../logger';
-import { getCache } from '../cache/repository';
+import { logger } from '../../../logger';
+import { getCache } from '../repository';
 
 export function getCachedBehindBaseResult(
   branchName: string,
diff --git a/lib/util/git/conflicts-cache.spec.ts b/lib/util/cache/branch/conflict.spec.ts
similarity index 92%
rename from lib/util/git/conflicts-cache.spec.ts
rename to lib/util/cache/branch/conflict.spec.ts
index 745d494055..4b456e5dbf 100644
--- a/lib/util/git/conflicts-cache.spec.ts
+++ b/lib/util/cache/branch/conflict.spec.ts
@@ -1,15 +1,12 @@
-import { mocked, partial } from '../../../test/util';
-import * as _repositoryCache from '../cache/repository';
-import type { BranchCache, RepoCacheData } from '../cache/repository/types';
-import {
-  getCachedConflictResult,
-  setCachedConflictResult,
-} from './conflicts-cache';
+import { mocked, partial } from '../../../../test/util';
+import * as _repositoryCache from '../repository';
+import type { BranchCache, RepoCacheData } from '../repository/types';
+import { getCachedConflictResult, setCachedConflictResult } from './conflict';
 
-jest.mock('../cache/repository');
+jest.mock('../repository');
 const repositoryCache = mocked(_repositoryCache);
 
-describe('util/git/conflicts-cache', () => {
+describe('util/cache/branch/conflict', () => {
   let repoCache: RepoCacheData = {};
 
   beforeEach(() => {
diff --git a/lib/util/git/conflicts-cache.ts b/lib/util/cache/branch/conflict.ts
similarity index 91%
rename from lib/util/git/conflicts-cache.ts
rename to lib/util/cache/branch/conflict.ts
index 89644332a3..53826e3987 100644
--- a/lib/util/git/conflicts-cache.ts
+++ b/lib/util/cache/branch/conflict.ts
@@ -1,5 +1,5 @@
-import { logger } from '../../logger';
-import { getCache } from '../cache/repository';
+import { logger } from '../../../logger';
+import { getCache } from '../repository';
 
 export function getCachedConflictResult(
   branchName: string,
diff --git a/lib/util/cache/branch/index.ts b/lib/util/cache/branch/index.ts
new file mode 100644
index 0000000000..fff97b1f61
--- /dev/null
+++ b/lib/util/cache/branch/index.ts
@@ -0,0 +1,11 @@
+export {
+  deleteCachedBranchParentShaResult,
+  getCachedBranchParentShaResult,
+} from './parent-sha';
+export { setBranchNewCommit } from './set-branch-commit';
+export {
+  getCachedBehindBaseResult,
+  setCachedBehindBaseResult,
+} from './behind-base-branch';
+export { getCachedConflictResult, setCachedConflictResult } from './conflict';
+export { getCachedModifiedResult, setCachedModifiedResult } from './modified';
diff --git a/lib/util/git/modified-cache.spec.ts b/lib/util/cache/branch/modified.spec.ts
similarity index 90%
rename from lib/util/git/modified-cache.spec.ts
rename to lib/util/cache/branch/modified.spec.ts
index 75ab80d203..3d67df4807 100644
--- a/lib/util/git/modified-cache.spec.ts
+++ b/lib/util/cache/branch/modified.spec.ts
@@ -1,15 +1,12 @@
-import { logger, mocked, partial } from '../../../test/util';
-import * as _repositoryCache from '../cache/repository';
-import type { BranchCache, RepoCacheData } from '../cache/repository/types';
-import {
-  getCachedModifiedResult,
-  setCachedModifiedResult,
-} from './modified-cache';
+import { logger, mocked, partial } from '../../../../test/util';
+import * as _repositoryCache from '../repository';
+import type { BranchCache, RepoCacheData } from '../repository/types';
+import { getCachedModifiedResult, setCachedModifiedResult } from './modified';
 
-jest.mock('../cache/repository');
+jest.mock('../repository');
 const repositoryCache = mocked(_repositoryCache);
 
-describe('util/git/modified-cache', () => {
+describe('util/cache/branch/modified', () => {
   let repoCache: RepoCacheData = {};
 
   beforeEach(() => {
diff --git a/lib/util/git/modified-cache.ts b/lib/util/cache/branch/modified.ts
similarity index 89%
rename from lib/util/git/modified-cache.ts
rename to lib/util/cache/branch/modified.ts
index e25998cdd4..d6b405871c 100644
--- a/lib/util/git/modified-cache.ts
+++ b/lib/util/cache/branch/modified.ts
@@ -1,5 +1,5 @@
-import { logger } from '../../logger';
-import { getCache } from '../cache/repository';
+import { logger } from '../../../logger';
+import { getCache } from '../repository';
 
 export function getCachedModifiedResult(
   branchName: string,
diff --git a/lib/util/git/parent-sha-cache.spec.ts b/lib/util/cache/branch/parent-sha.spec.ts
similarity index 88%
rename from lib/util/git/parent-sha-cache.spec.ts
rename to lib/util/cache/branch/parent-sha.spec.ts
index 6c7f1abfd7..760047226c 100644
--- a/lib/util/git/parent-sha-cache.spec.ts
+++ b/lib/util/cache/branch/parent-sha.spec.ts
@@ -1,15 +1,15 @@
-import { mocked } from '../../../test/util';
-import * as _repositoryCache from '../cache/repository';
-import type { BranchCache, RepoCacheData } from '../cache/repository/types';
+import { mocked } from '../../../../test/util';
+import * as _repositoryCache from '../repository';
+import type { BranchCache, RepoCacheData } from '../repository/types';
 import {
   deleteCachedBranchParentShaResult,
   getCachedBranchParentShaResult,
-} from './parent-sha-cache';
+} from './parent-sha';
 
-jest.mock('../cache/repository');
+jest.mock('../repository');
 const repositoryCache = mocked(_repositoryCache);
 
-describe('util/git/parent-sha-cache', () => {
+describe('util/cache/branch/parent-sha', () => {
   let repoCache: RepoCacheData = {};
 
   beforeEach(() => {
diff --git a/lib/util/git/parent-sha-cache.ts b/lib/util/cache/branch/parent-sha.ts
similarity index 92%
rename from lib/util/git/parent-sha-cache.ts
rename to lib/util/cache/branch/parent-sha.ts
index f5842c3780..facb298f25 100644
--- a/lib/util/git/parent-sha-cache.ts
+++ b/lib/util/cache/branch/parent-sha.ts
@@ -1,4 +1,4 @@
-import { getCache } from '../cache/repository';
+import { getCache } from '../repository';
 
 export function getCachedBranchParentShaResult(
   branchName: string,
diff --git a/lib/util/git/set-branch-commit.spec.ts b/lib/util/cache/branch/set-branch-commit.spec.ts
similarity index 86%
rename from lib/util/git/set-branch-commit.spec.ts
rename to lib/util/cache/branch/set-branch-commit.spec.ts
index 9518163e21..2b9dd62995 100644
--- a/lib/util/git/set-branch-commit.spec.ts
+++ b/lib/util/cache/branch/set-branch-commit.spec.ts
@@ -1,13 +1,13 @@
-import { git, logger, mocked, partial } from '../../../test/util';
-import * as _repositoryCache from '../cache/repository';
-import type { BranchCache, RepoCacheData } from '../cache/repository/types';
+import { git, logger, mocked, partial } from '../../../../test/util';
+import * as _repositoryCache from '../repository';
+import type { BranchCache, RepoCacheData } from '../repository/types';
 import { setBranchNewCommit } from './set-branch-commit';
 
-jest.mock('../cache/repository');
-jest.mock('.');
+jest.mock('../repository');
+jest.mock('../../git');
 const repositoryCache = mocked(_repositoryCache);
 
-describe('util/git/set-branch-commit', () => {
+describe('util/cache/branch/set-branch-commit', () => {
   let repoCache: RepoCacheData = {};
 
   beforeEach(() => {
diff --git a/lib/util/git/set-branch-commit.ts b/lib/util/cache/branch/set-branch-commit.ts
similarity index 81%
rename from lib/util/git/set-branch-commit.ts
rename to lib/util/cache/branch/set-branch-commit.ts
index c891469366..fdd027c33c 100644
--- a/lib/util/git/set-branch-commit.ts
+++ b/lib/util/cache/branch/set-branch-commit.ts
@@ -1,7 +1,7 @@
-import { logger } from '../../logger';
-import { getCache } from '../cache/repository';
-import type { BranchCache } from '../cache/repository/types';
-import { getBranchCommit } from '.';
+import { logger } from '../../../logger';
+import { getBranchCommit } from '../../git';
+import { getCache } from '../repository';
+import type { BranchCache } from '../repository/types';
 
 /**
  * Called when a new commit is added to branch
diff --git a/lib/util/git/index.spec.ts b/lib/util/git/index.spec.ts
index d5548cbd4a..3a82239e7b 100644
--- a/lib/util/git/index.spec.ts
+++ b/lib/util/git/index.spec.ts
@@ -7,25 +7,17 @@ import {
   CONFIG_VALIDATION,
   INVALID_PATH,
 } from '../../constants/error-messages';
+import * as _branchCache from '../cache/branch';
 import { newlineRegex, regEx } from '../regex';
-import * as _behindBaseCache from './behind-base-branch-cache';
-import * as _conflictsCache from './conflicts-cache';
-import * as _modifiedCache from './modified-cache';
-import * as _parentShaCache from './parent-sha-cache';
 import type { FileChange } from './types';
 import * as git from '.';
 import { setNoVerify } from '.';
 
-jest.mock('./conflicts-cache');
-jest.mock('./behind-base-branch-cache');
-jest.mock('./modified-cache');
-jest.mock('./parent-sha-cache');
+jest.mock('../cache/branch');
 jest.mock('delay');
 jest.mock('../cache/repository');
-const behindBaseCache = mocked(_behindBaseCache);
-const conflictsCache = mocked(_conflictsCache);
-const modifiedCache = mocked(_modifiedCache);
-const parentShaCache = mocked(_parentShaCache);
+const branchCache = mocked(_branchCache);
+
 // Class is no longer exported
 const SimpleGit = Git().constructor as { prototype: ReturnType<typeof Git> };
 
@@ -116,8 +108,8 @@ describe('util/git/index', () => {
     // override some local git settings for better testing
     const local = Git(tmpDir.path);
     await local.addConfig('commit.gpgsign', 'false');
-    parentShaCache.getCachedBranchParentShaResult.mockReturnValue(null);
-    behindBaseCache.getCachedBehindBaseResult.mockReturnValue(null);
+    branchCache.getCachedBranchParentShaResult.mockReturnValue(null);
+    branchCache.getCachedBehindBaseResult.mockReturnValue(null);
   });
 
   afterEach(async () => {
@@ -264,7 +256,7 @@ describe('util/git/index', () => {
     });
 
     it('returns cached value', async () => {
-      behindBaseCache.getCachedBehindBaseResult.mockReturnValue(true);
+      branchCache.getCachedBehindBaseResult.mockReturnValue(true);
       expect(await git.isBranchBehindBase('develop', defaultBranch)).toBeTrue();
       expect(logger.logger.debug).toHaveBeenCalledWith(
         'branch.isBehindBase(): using cached result "true"'
@@ -274,7 +266,7 @@ describe('util/git/index', () => {
 
   describe('isBranchModified()', () => {
     beforeEach(() => {
-      modifiedCache.getCachedModifiedResult.mockReturnValue(null);
+      branchCache.getCachedModifiedResult.mockReturnValue(null);
     });
 
     it('should return false when branch is not found', async () => {
@@ -298,7 +290,7 @@ describe('util/git/index', () => {
     });
 
     it('should return value stored in modifiedCacheResult', async () => {
-      modifiedCache.getCachedModifiedResult.mockReturnValue(true);
+      branchCache.getCachedModifiedResult.mockReturnValue(true);
       expect(await git.isBranchModified('renovate/future_branch')).toBeTrue();
     });
   });
@@ -805,7 +797,7 @@ describe('util/git/index', () => {
 
       await repo.checkout(defaultBranch);
 
-      conflictsCache.getCachedConflictResult.mockReturnValue(null);
+      branchCache.getCachedConflictResult.mockReturnValue(null);
     });
 
     it('returns true for non-existing source branch', async () => {
@@ -862,7 +854,7 @@ describe('util/git/index', () => {
       });
 
       it('returns cached values', async () => {
-        conflictsCache.getCachedConflictResult.mockReturnValue(true);
+        branchCache.getCachedConflictResult.mockReturnValue(true);
 
         const res = await git.isBranchConflicted(
           defaultBranch,
@@ -870,7 +862,7 @@ describe('util/git/index', () => {
         );
 
         expect(res).toBeTrue();
-        expect(conflictsCache.getCachedConflictResult.mock.calls).toEqual([
+        expect(branchCache.getCachedConflictResult.mock.calls).toEqual([
           [
             'renovate/conflicted_branch',
             git.getBranchCommit('renovate/conflicted_branch'),
@@ -878,11 +870,11 @@ describe('util/git/index', () => {
             git.getBranchCommit(defaultBranch),
           ],
         ]);
-        expect(conflictsCache.setCachedConflictResult).not.toHaveBeenCalled();
+        expect(branchCache.setCachedConflictResult).not.toHaveBeenCalled();
       });
 
       it('caches truthy return value', async () => {
-        conflictsCache.getCachedConflictResult.mockReturnValue(null);
+        branchCache.getCachedConflictResult.mockReturnValue(null);
 
         const res = await git.isBranchConflicted(
           defaultBranch,
@@ -890,13 +882,13 @@ describe('util/git/index', () => {
         );
 
         expect(res).toBeTrue();
-        expect(conflictsCache.setCachedConflictResult.mock.calls).toEqual([
+        expect(branchCache.setCachedConflictResult.mock.calls).toEqual([
           ['renovate/conflicted_branch', true],
         ]);
       });
 
       it('caches falsy return value', async () => {
-        conflictsCache.getCachedConflictResult.mockReturnValue(null);
+        branchCache.getCachedConflictResult.mockReturnValue(null);
 
         const res = await git.isBranchConflicted(
           defaultBranch,
@@ -904,7 +896,7 @@ describe('util/git/index', () => {
         );
 
         expect(res).toBeFalse();
-        expect(conflictsCache.setCachedConflictResult.mock.calls).toEqual([
+        expect(branchCache.setCachedConflictResult.mock.calls).toEqual([
           ['renovate/non_conflicted_branch', false],
         ]);
       });
diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index 2a6b95d9b3..86525d10bd 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -28,24 +28,22 @@ import { api as semverCoerced } from '../../modules/versioning/semver-coerced';
 import { ExternalHostError } from '../../types/errors/external-host-error';
 import type { GitProtocol } from '../../types/git';
 import { Limit, incLimitedValue } from '../../workers/global/limits';
-import { newlineRegex, regEx } from '../regex';
-import { parseGitAuthor } from './author';
-import { getCachedBehindBaseResult } from './behind-base-branch-cache';
-import { getNoVerify, simpleGitConfig } from './config';
 import {
+  deleteCachedBranchParentShaResult,
+  getCachedBehindBaseResult,
   getCachedConflictResult,
+  getCachedModifiedResult,
   setCachedConflictResult,
-} from './conflicts-cache';
+  setCachedModifiedResult,
+} from '../cache/branch';
+import { newlineRegex, regEx } from '../regex';
+import { parseGitAuthor } from './author';
+import { getNoVerify, simpleGitConfig } from './config';
 import {
   bulkChangesDisallowed,
   checkForPlatformFailure,
   handleCommitError,
 } from './error';
-import {
-  getCachedModifiedResult,
-  setCachedModifiedResult,
-} from './modified-cache';
-import { deleteCachedBranchParentShaResult } from './parent-sha-cache';
 import { configSigningKey, writePrivateKey } from './private-key';
 import type {
   CommitFilesConfig,
diff --git a/lib/workers/repository/cache.ts b/lib/workers/repository/cache.ts
index 6de35aa19d..82f0af3093 100644
--- a/lib/workers/repository/cache.ts
+++ b/lib/workers/repository/cache.ts
@@ -2,6 +2,7 @@
 
 import { logger } from '../../logger';
 import { platform } from '../../modules/platform';
+import { getCachedBranchParentShaResult } from '../../util/cache/branch';
 import { getCache } from '../../util/cache/repository';
 import type {
   BranchCache,
@@ -13,7 +14,6 @@ import {
   isBranchConflicted,
   isBranchModified,
 } from '../../util/git';
-import { getCachedBranchParentShaResult } from '../../util/git/parent-sha-cache';
 import type { BranchConfig, BranchUpgradeConfig } from '../types';
 
 function generateBranchUpgradeCache(
diff --git a/lib/workers/repository/process/write.ts b/lib/workers/repository/process/write.ts
index e3f4d8cce0..69dca2425a 100644
--- a/lib/workers/repository/process/write.ts
+++ b/lib/workers/repository/process/write.ts
@@ -2,11 +2,11 @@ import is from '@sindresorhus/is';
 import type { RenovateConfig } from '../../../config/types';
 import { addMeta, logger, removeMeta } from '../../../logger';
 import { hashMap } from '../../../modules/manager';
+import { setBranchNewCommit } from '../../../util/cache/branch';
 import { getCache } from '../../../util/cache/repository';
 import type { BranchCache } from '../../../util/cache/repository/types';
 import { fingerprint } from '../../../util/fingerprint';
 import { branchExists, getBranchCommit } from '../../../util/git';
-import { setBranchNewCommit } from '../../../util/git/set-branch-commit';
 import { Limit, incLimitedValue, setMaxLimit } from '../../global/limits';
 import {
   BranchConfig,
-- 
GitLab