From 1a339ed79f6f6faa93880e89e636ece475f0fd11 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Jul 2020 11:42:03 +0200 Subject: [PATCH 1/3] refactor: remove getRepoStatus from platform --- lib/manager/bundler/artifacts.spec.ts | 21 ++++++++------- lib/manager/bundler/artifacts.ts | 4 +-- lib/manager/cocoapods/artifacts.spec.ts | 15 +++++------ lib/manager/cocoapods/artifacts.ts | 4 +-- lib/manager/composer/artifacts.spec.ts | 13 ++++----- lib/manager/composer/artifacts.ts | 4 +-- lib/manager/gomod/artifacts.spec.ts | 15 ++++++----- lib/manager/gomod/artifacts.ts | 6 ++--- .../gradle-wrapper/artifacts-real.spec.ts | 12 ++++----- lib/manager/gradle-wrapper/artifacts.spec.ts | 9 ++++--- lib/manager/gradle-wrapper/artifacts.ts | 4 +-- lib/manager/npm/post-update/index.ts | 3 ++- lib/manager/pipenv/artifacts.spec.ts | 11 +++++--- lib/manager/pipenv/artifacts.ts | 4 +-- lib/platform/__snapshots__/index.spec.ts.snap | 4 --- lib/platform/azure/index.spec.ts | 7 ----- lib/platform/azure/index.ts | 6 ----- lib/platform/bitbucket-server/index.ts | 6 ----- .../__snapshots__/index.spec.ts.snap | 18 ------------- lib/platform/bitbucket/index.spec.ts | 8 ------ lib/platform/bitbucket/index.ts | 5 ---- lib/platform/common.ts | 2 -- lib/platform/gitea/index.spec.ts | 9 ------- lib/platform/gitea/index.ts | 5 ---- lib/platform/github/index.ts | 5 ---- .../gitlab/__snapshots__/index.spec.ts.snap | 27 ------------------- lib/platform/gitlab/index.spec.ts | 7 ----- lib/platform/gitlab/index.ts | 5 ---- lib/workers/branch/index.spec.ts | 5 ++-- lib/workers/branch/index.ts | 3 ++- 30 files changed, 71 insertions(+), 176 deletions(-) diff --git a/lib/manager/bundler/artifacts.spec.ts b/lib/manager/bundler/artifacts.spec.ts index 7e1260f4499f28..e0cb5a3f1f65be 100644 --- a/lib/manager/bundler/artifacts.spec.ts +++ b/lib/manager/bundler/artifacts.spec.ts @@ -2,7 +2,7 @@ import { exec as _exec } from 'child_process'; import Git from 'simple-git/promise'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { fs, mocked, platform } from '../../../test/util'; +import { fs, git, mocked } from '../../../test/util'; import * as _datasource from '../../datasource'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; @@ -21,6 +21,7 @@ jest.mock('child_process'); jest.mock('../../../lib/util/exec/env'); jest.mock('../../../lib/datasource'); jest.mock('../../../lib/util/fs'); +jest.mock('../../../lib/util/git'); jest.mock('../../../lib/util/host-rules'); jest.mock('./host-rules'); @@ -60,7 +61,7 @@ describe('bundler.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current Gemfile.lock'); fs.writeLocalFile.mockResolvedValueOnce(null as never); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: [], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -79,7 +80,7 @@ describe('bundler.updateArtifacts()', () => { fs.writeLocalFile.mockResolvedValueOnce(null as never); fs.readLocalFile.mockResolvedValueOnce(null); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -98,7 +99,7 @@ describe('bundler.updateArtifacts()', () => { fs.writeLocalFile.mockResolvedValueOnce(null as never); fs.readLocalFile.mockResolvedValueOnce(null); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -132,7 +133,7 @@ describe('bundler.updateArtifacts()', () => { ], }); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -160,7 +161,7 @@ describe('bundler.updateArtifacts()', () => { ], }); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -193,7 +194,7 @@ describe('bundler.updateArtifacts()', () => { ], }); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -240,7 +241,7 @@ describe('bundler.updateArtifacts()', () => { 'some-user:some-password' ); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); @@ -265,7 +266,7 @@ describe('bundler.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current Gemfile.lock'); fs.writeLocalFile.mockResolvedValueOnce(null as never); const execSnapshots = mockExecAll(exec, execError); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); expect( @@ -285,7 +286,7 @@ describe('bundler.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current Gemfile.lock'); fs.writeLocalFile.mockResolvedValueOnce(null as never); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Gemfile.lock'], } as Git.StatusResult); fs.readLocalFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); diff --git a/lib/manager/bundler/artifacts.ts b/lib/manager/bundler/artifacts.ts index 661c7f119514b0..9d8389ed94bd3f 100644 --- a/lib/manager/bundler/artifacts.ts +++ b/lib/manager/bundler/artifacts.ts @@ -1,7 +1,6 @@ import { quote } from 'shlex'; import { BUNDLER_INVALID_CREDENTIALS } from '../../constants/error-messages'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { HostRule } from '../../types'; import * as memCache from '../../util/cache/memory'; import { ExecOptions, exec } from '../../util/exec'; @@ -11,6 +10,7 @@ import { readLocalFile, writeLocalFile, } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { isValid } from '../../versioning/ruby'; import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { @@ -139,7 +139,7 @@ export async function updateArtifacts( }, }; await exec(cmd, execOptions); - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); if (!status.modified.includes(lockFileName)) { return null; } diff --git a/lib/manager/cocoapods/artifacts.spec.ts b/lib/manager/cocoapods/artifacts.spec.ts index 0b47245645d292..d6284b75ed0f65 100644 --- a/lib/manager/cocoapods/artifacts.spec.ts +++ b/lib/manager/cocoapods/artifacts.spec.ts @@ -3,9 +3,8 @@ import _fs from 'fs-extra'; import Git from 'simple-git/promise'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { mocked } from '../../../test/util'; +import { git, mocked } from '../../../test/util'; import * as _datasource from '../../datasource'; -import { platform as _platform } from '../../platform'; import { setExecConfig } from '../../util/exec'; import { BinarySource } from '../../util/exec/common'; import * as _env from '../../util/exec/env'; @@ -14,13 +13,13 @@ import { updateArtifacts } from '.'; jest.mock('fs-extra'); jest.mock('child_process'); jest.mock('../../util/exec/env'); +jest.mock('../../util/git'); jest.mock('../../platform'); jest.mock('../../datasource'); const fs: jest.Mocked = _fs as any; const exec: jest.Mock = _exec as any; const env = mocked(_env); -const platform = mocked(_platform); const datasource = mocked(_datasource); delete process.env.CP_HOME_DIR; @@ -101,7 +100,7 @@ describe('.updateArtifacts()', () => { it('returns null if unchanged', async () => { const execSnapshots = mockExecAll(exec); fs.readFile.mockResolvedValueOnce('Current Podfile' as any); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: [], } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Current Podfile' as any); @@ -119,7 +118,7 @@ describe('.updateArtifacts()', () => { const execSnapshots = mockExecAll(exec); await setExecConfig({ ...config, binarySource: BinarySource.Docker }); fs.readFile.mockResolvedValueOnce('Old Podfile' as any); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Podfile.lock'], } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('New Podfile' as any); @@ -139,7 +138,7 @@ describe('.updateArtifacts()', () => { fs.readFile.mockResolvedValueOnce('Old Manifest.lock' as any); fs.readFile.mockResolvedValueOnce('New Podfile' as any); fs.readFile.mockResolvedValueOnce('Pods manifest' as any); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ not_added: ['Pods/New'], modified: ['Podfile.lock', 'Pods/Manifest.lock'], deleted: ['Pods/Deleted'], @@ -198,7 +197,7 @@ describe('.updateArtifacts()', () => { fs.readFile.mockResolvedValueOnce('New Podfile' as any); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Podfile.lock'], } as Git.StatusResult); @@ -226,7 +225,7 @@ describe('.updateArtifacts()', () => { fs.readFile.mockResolvedValueOnce('New Podfile' as any); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['Podfile.lock'], } as Git.StatusResult); diff --git a/lib/manager/cocoapods/artifacts.ts b/lib/manager/cocoapods/artifacts.ts index 2436c02f383e97..4490a2cab3a34c 100644 --- a/lib/manager/cocoapods/artifacts.ts +++ b/lib/manager/cocoapods/artifacts.ts @@ -1,13 +1,13 @@ import { quote } from 'shlex'; import { dirname, join } from 'upath'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { ExecOptions, exec } from '../../util/exec'; import { getSiblingFileName, readLocalFile, writeLocalFile, } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { getCocoaPodsHome } from './utils'; @@ -93,7 +93,7 @@ export async function updateArtifacts({ ]; } - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); if (!status.modified.includes(lockFileName)) { return null; } diff --git a/lib/manager/composer/artifacts.spec.ts b/lib/manager/composer/artifacts.spec.ts index 799fa1e9940619..150ac4955ab0ff 100644 --- a/lib/manager/composer/artifacts.spec.ts +++ b/lib/manager/composer/artifacts.spec.ts @@ -1,7 +1,7 @@ import { exec as _exec } from 'child_process'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { fs, mocked, platform } from '../../../test/util'; +import { fs, git, mocked } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; import * as docker from '../../util/exec/docker'; @@ -12,6 +12,7 @@ import * as composer from './artifacts'; jest.mock('child_process'); jest.mock('../../util/exec/env'); jest.mock('../../util/fs'); +jest.mock('../../util/git'); jest.mock('../../util/host-rules'); const hostRules = require('../../util/host-rules'); @@ -49,7 +50,7 @@ describe('.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current composer.lock' as any); const execSnapshots = mockExecAll(exec); fs.readLocalFile.mockReturnValueOnce('Current composer.lock' as any); - platform.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); + git.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); expect( await composer.updateArtifacts({ packageFileName: 'composer.json', @@ -72,7 +73,7 @@ describe('.updateArtifacts()', () => { username: 'some-username', password: 'some-password', }); - platform.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); + git.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); expect( await composer.updateArtifacts({ packageFileName: 'composer.json', @@ -87,7 +88,7 @@ describe('.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current composer.lock' as any); const execSnapshots = mockExecAll(exec); fs.readLocalFile.mockReturnValueOnce('New composer.lock' as any); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['composer.lock'], } as StatusResult); expect( @@ -104,7 +105,7 @@ describe('.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current composer.lock' as any); const execSnapshots = mockExecAll(exec); fs.readLocalFile.mockReturnValueOnce('New composer.lock' as any); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['composer.lock'], } as StatusResult); expect( @@ -205,7 +206,7 @@ describe('.updateArtifacts()', () => { fs.readLocalFile.mockResolvedValueOnce('Current composer.lock' as any); const execSnapshots = mockExecAll(exec); fs.readLocalFile.mockReturnValueOnce('New composer.lock' as any); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['composer.lock'], } as StatusResult); expect( diff --git a/lib/manager/composer/artifacts.ts b/lib/manager/composer/artifacts.ts index 1b1ad2286f9636..e3b11930ee48e9 100644 --- a/lib/manager/composer/artifacts.ts +++ b/lib/manager/composer/artifacts.ts @@ -9,7 +9,6 @@ import { } from '../../constants/platforms'; import * as datasourcePackagist from '../../datasource/packagist'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { ExecOptions, exec } from '../../util/exec'; import { deleteLocalFile, @@ -19,6 +18,7 @@ import { readLocalFile, writeLocalFile, } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import * as hostRules from '../../util/host-rules'; import { UpdateArtifact, UpdateArtifactsResult } from '../common'; @@ -131,7 +131,7 @@ export async function updateArtifacts({ } logger.debug({ cmd, args }, 'composer command'); await exec(`${cmd} ${args}`, execOptions); - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); if (!status.modified.includes(lockFileName)) { return null; } diff --git a/lib/manager/gomod/artifacts.spec.ts b/lib/manager/gomod/artifacts.spec.ts index 2e28dade2e793d..255a15ccc8d87d 100644 --- a/lib/manager/gomod/artifacts.spec.ts +++ b/lib/manager/gomod/artifacts.spec.ts @@ -2,7 +2,7 @@ import { exec as _exec } from 'child_process'; import _fs from 'fs-extra'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { mocked, platform } from '../../../test/util'; +import { git, mocked } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; import * as docker from '../../util/exec/docker'; @@ -14,6 +14,7 @@ import * as gomod from './artifacts'; jest.mock('fs-extra'); jest.mock('child_process'); jest.mock('../../util/exec/env'); +jest.mock('../../util/git'); jest.mock('../../util/host-rules'); jest.mock('../../util/http'); @@ -73,7 +74,7 @@ describe('.updateArtifacts()', () => { it('returns null if unchanged', async () => { fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: [], } as StatusResult); expect( @@ -89,7 +90,7 @@ describe('.updateArtifacts()', () => { it('returns updated go.sum', async () => { fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['go.sum'], } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); @@ -108,7 +109,7 @@ describe('.updateArtifacts()', () => { await setUtilConfig({ ...config, binarySource: BinarySource.Docker }); fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['go.sum'], } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); @@ -128,7 +129,7 @@ describe('.updateArtifacts()', () => { it('supports global mode', async () => { fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['go.sum'], } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); @@ -153,7 +154,7 @@ describe('.updateArtifacts()', () => { }); fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['go.sum'], } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); @@ -178,7 +179,7 @@ describe('.updateArtifacts()', () => { }); fs.readFile.mockResolvedValueOnce('Current go.sum' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['go.sum'], } as StatusResult); fs.readFile.mockResolvedValueOnce('New go.sum 1' as any); diff --git a/lib/manager/gomod/artifacts.ts b/lib/manager/gomod/artifacts.ts index 48f219aba92abf..899627b176f07f 100644 --- a/lib/manager/gomod/artifacts.ts +++ b/lib/manager/gomod/artifacts.ts @@ -3,10 +3,10 @@ import { quote } from 'shlex'; import { dirname, join } from 'upath'; import { PLATFORM_TYPE_GITHUB } from '../../constants/platforms'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { ExecOptions, exec } from '../../util/exec'; import { BinarySource } from '../../util/exec/common'; import { readLocalFile, writeLocalFile } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { find } from '../../util/host-rules'; import { UpdateArtifact, UpdateArtifactsResult } from '../common'; @@ -84,7 +84,7 @@ export async function updateArtifacts({ await exec(`${cmd} ${args}`, execOptions); } const res = []; - let status = await platform.getRepoStatus(); + let status = await getRepoStatus(); if (!status.modified.includes(sumFileName)) { return null; } @@ -113,7 +113,7 @@ export async function updateArtifacts({ logger.debug({ cmd, args }, 'go mod tidy command'); await exec(`${cmd} ${args}`, execOptions); } - status = await platform.getRepoStatus(); + status = await getRepoStatus(); for (const f of status.modified.concat(status.not_added)) { if (f.startsWith(vendorDir)) { res.push({ diff --git a/lib/manager/gradle-wrapper/artifacts-real.spec.ts b/lib/manager/gradle-wrapper/artifacts-real.spec.ts index 21791dbc8af094..0094dc9e707ecc 100644 --- a/lib/manager/gradle-wrapper/artifacts-real.spec.ts +++ b/lib/manager/gradle-wrapper/artifacts-real.spec.ts @@ -2,7 +2,7 @@ import { resolve } from 'path'; import { readFile, readFileSync } from 'fs-extra'; import Git from 'simple-git/promise'; import * as httpMock from '../../../test/httpMock'; -import { getName, partial, platform } from '../../../test/util'; +import { getName, git, partial } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { ifSystemSupportsGradle } from '../gradle/__testutil__/gradle'; import * as dcUpdate from '.'; @@ -43,7 +43,7 @@ describe(getName(__filename), () => { }); it('replaces existing value', async () => { - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: [ 'gradle/wrapper/gradle-wrapper.properties', 'gradle/wrapper/gradle-wrapper.jar', @@ -88,7 +88,7 @@ describe(getName(__filename), () => { }); it('updates from version', async () => { - platform.getRepoStatus.mockResolvedValueOnce( + git.getRepoStatus.mockResolvedValueOnce( partial({ modified: ['gradle/wrapper/gradle-wrapper.properties'], }) @@ -108,7 +108,7 @@ describe(getName(__filename), () => { }); it('up to date', async () => { - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: [], } as Git.StatusResult); @@ -132,7 +132,7 @@ describe(getName(__filename), () => { }); it('getRepoStatus fails', async () => { - platform.getRepoStatus.mockImplementation(() => { + git.getRepoStatus.mockImplementation(() => { throw new Error('failed'); }); @@ -203,7 +203,7 @@ describe(getName(__filename), () => { '038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768' ); - platform.getRepoStatus.mockResolvedValueOnce( + git.getRepoStatus.mockResolvedValueOnce( partial({ modified: ['gradle/wrapper/gradle-wrapper.properties'], }) diff --git a/lib/manager/gradle-wrapper/artifacts.spec.ts b/lib/manager/gradle-wrapper/artifacts.spec.ts index d343734a36e4ce..ef72548d969791 100644 --- a/lib/manager/gradle-wrapper/artifacts.spec.ts +++ b/lib/manager/gradle-wrapper/artifacts.spec.ts @@ -10,8 +10,8 @@ import { env, fs, getName, + git, partial, - platform, } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; @@ -20,6 +20,7 @@ import * as dcUpdate from '.'; jest.mock('child_process'); jest.mock('../../util/fs'); +jest.mock('../../util/git'); jest.mock('../../util/exec/env'); const exec: jest.Mock = _exec as any; @@ -59,7 +60,7 @@ describe(getName(__filename), () => { }); it('replaces existing value', async () => { - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: [ 'gradle/wrapper/gradle-wrapper.properties', 'gradlew', @@ -110,7 +111,7 @@ describe(getName(__filename), () => { it('gradlew failed', async () => { const execSnapshots = mockExecAll(exec, new Error('failed')); - platform.getRepoStatus.mockResolvedValueOnce( + git.getRepoStatus.mockResolvedValueOnce( partial({ modified: [], }) @@ -135,7 +136,7 @@ describe(getName(__filename), () => { '038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768' ); - platform.getRepoStatus.mockResolvedValueOnce( + git.getRepoStatus.mockResolvedValueOnce( partial({ modified: ['gradle/wrapper/gradle-wrapper.properties'], }) diff --git a/lib/manager/gradle-wrapper/artifacts.ts b/lib/manager/gradle-wrapper/artifacts.ts index dc020ce7e44a69..8c47dcac250955 100644 --- a/lib/manager/gradle-wrapper/artifacts.ts +++ b/lib/manager/gradle-wrapper/artifacts.ts @@ -2,9 +2,9 @@ import { resolve } from 'path'; import * as fs from 'fs-extra'; import Git from 'simple-git/promise'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { ExecOptions, exec } from '../../util/exec'; import { readLocalFile, writeLocalFile } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { Http } from '../../util/http'; import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { gradleWrapperFileName, prepareGradleCommand } from '../gradle/index'; @@ -94,7 +94,7 @@ export async function updateArtifacts({ 'Error executing gradle wrapper update command. It can be not a critical one though.' ); } - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); const artifactFileNames = [ 'gradle/wrapper/gradle-wrapper.properties', 'gradle/wrapper/gradle-wrapper.jar', diff --git a/lib/manager/npm/post-update/index.ts b/lib/manager/npm/post-update/index.ts index f380fb289096ca..5de880a9bba048 100644 --- a/lib/manager/npm/post-update/index.ts +++ b/lib/manager/npm/post-update/index.ts @@ -9,6 +9,7 @@ import { platform } from '../../../platform'; import { ExternalHostError } from '../../../types/errors/external-host-error'; import { getChildProcessEnv } from '../../../util/exec/env'; import { deleteLocalFile } from '../../../util/fs'; +import { getRepoStatus } from '../../../util/git'; import * as hostRules from '../../../util/host-rules'; import { PackageFile, PostUpdateConfig, Upgrade } from '../../common'; import * as lerna from './lerna'; @@ -534,7 +535,7 @@ export async function getAdditionalFiles( .replace(/\/?$/, '/'); const resolvedPath = upath.join(lockFileDir, mirrorPath); logger.debug('Found yarn offline mirror: ' + resolvedPath); - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); for (const f of status.modified.concat(status.not_added)) { if (f.startsWith(resolvedPath)) { const localModified = upath.join(config.localDir, f); diff --git a/lib/manager/pipenv/artifacts.spec.ts b/lib/manager/pipenv/artifacts.spec.ts index e806ae87cebacc..35bc0c32835b37 100644 --- a/lib/manager/pipenv/artifacts.spec.ts +++ b/lib/manager/pipenv/artifacts.spec.ts @@ -2,21 +2,24 @@ import { exec as _exec } from 'child_process'; import _fs from 'fs-extra'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { mocked, platform } from '../../../test/util'; +import { mocked } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; import * as docker from '../../util/exec/docker'; import * as _env from '../../util/exec/env'; +import * as _git from '../../util/git'; import { StatusResult } from '../../util/git'; import * as pipenv from './artifacts'; jest.mock('fs-extra'); jest.mock('child_process'); jest.mock('../../util/exec/env'); +jest.mock('../../util/git'); jest.mock('../../util/host-rules'); jest.mock('../../util/http'); const fs: jest.Mocked = _fs as any; +const git: jest.Mocked = _git as any; const exec: jest.Mock = _exec as any; const env = mocked(_env); @@ -87,7 +90,7 @@ describe('.updateArtifacts()', () => { it('returns updated Pipfile.lock', async () => { fs.readFile.mockResolvedValueOnce('current pipfile.lock' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['Pipfile.lock'], } as StatusResult); fs.readFile.mockReturnValueOnce('New Pipfile.lock' as any); @@ -107,7 +110,7 @@ describe('.updateArtifacts()', () => { pipFileLock._meta.requires.python_version = '3.7'; fs.readFile.mockResolvedValueOnce(JSON.stringify(pipFileLock) as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['Pipfile.lock'], } as StatusResult); fs.readFile.mockReturnValueOnce('new lock' as any); @@ -138,7 +141,7 @@ describe('.updateArtifacts()', () => { it('returns updated Pipenv.lock when doing lockfile maintenance', async () => { fs.readFile.mockResolvedValueOnce('Current Pipfile.lock' as any); const execSnapshots = mockExecAll(exec); - platform.getRepoStatus.mockResolvedValue({ + git.getRepoStatus.mockResolvedValue({ modified: ['Pipfile.lock'], } as StatusResult); fs.readFile.mockReturnValueOnce('New Pipfile.lock' as any); diff --git a/lib/manager/pipenv/artifacts.ts b/lib/manager/pipenv/artifacts.ts index 8b775874344cad..89e098f0f311e2 100644 --- a/lib/manager/pipenv/artifacts.ts +++ b/lib/manager/pipenv/artifacts.ts @@ -1,9 +1,9 @@ import { ensureDir } from 'fs-extra'; import { join } from 'upath'; import { logger } from '../../logger'; -import { platform } from '../../platform'; import { ExecOptions, exec } from '../../util/exec'; import { deleteLocalFile, readLocalFile, writeLocalFile } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { UpdateArtifact, UpdateArtifactsConfig, @@ -74,7 +74,7 @@ export async function updateArtifacts({ }; logger.debug({ cmd }, 'pipenv lock command'); await exec(cmd, execOptions); - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); if (!(status && status.modified.includes(lockFileName))) { return null; } diff --git a/lib/platform/__snapshots__/index.spec.ts.snap b/lib/platform/__snapshots__/index.spec.ts.snap index b7d428596ea8be..8e59a332668a3b 100644 --- a/lib/platform/__snapshots__/index.spec.ts.snap +++ b/lib/platform/__snapshots__/index.spec.ts.snap @@ -32,7 +32,6 @@ Array [ "getPrFiles", "getPrList", "getRepoForceRebase", - "getRepoStatus", "getRepos", "getVulnerabilityAlerts", "initPlatform", @@ -77,7 +76,6 @@ Array [ "getPrFiles", "getPrList", "getRepoForceRebase", - "getRepoStatus", "getRepos", "getVulnerabilityAlerts", "initPlatform", @@ -122,7 +120,6 @@ Array [ "getPrFiles", "getPrList", "getRepoForceRebase", - "getRepoStatus", "getRepos", "getVulnerabilityAlerts", "initPlatform", @@ -167,7 +164,6 @@ Array [ "getPrFiles", "getPrList", "getRepoForceRebase", - "getRepoStatus", "getRepos", "getVulnerabilityAlerts", "initPlatform", diff --git a/lib/platform/azure/index.spec.ts b/lib/platform/azure/index.spec.ts index 20d9b7d8d4115d..bdd8d910d48ecf 100644 --- a/lib/platform/azure/index.spec.ts +++ b/lib/platform/azure/index.spec.ts @@ -163,13 +163,6 @@ describe('platform/azure', () => { } as any); } - describe('getRepoStatus()', () => { - it('exists', async () => { - await initRepo(); - expect(await azure.getRepoStatus()).toBeUndefined(); - }); - }); - describe('cleanRepo()', () => { it('exists', async () => { await expect(azure.cleanRepo()).resolves.not.toThrow(); diff --git a/lib/platform/azure/index.ts b/lib/platform/azure/index.ts index acc2608ec3ac42..31799353938888 100644 --- a/lib/platform/azure/index.ts +++ b/lib/platform/azure/index.ts @@ -374,12 +374,6 @@ export /* istanbul ignore next */ function getBranchLastCommitTime( return git.getBranchLastCommitTime(branchName); } -export /* istanbul ignore next */ function getRepoStatus(): Promise< - git.StatusResult -> { - return git.getRepoStatus(); -} - export /* istanbul ignore next */ function mergeBranch( branchName: string ): Promise { diff --git a/lib/platform/bitbucket-server/index.ts b/lib/platform/bitbucket-server/index.ts index b6df5da0bd2b39..ca2fb5ea860c55 100644 --- a/lib/platform/bitbucket-server/index.ts +++ b/lib/platform/bitbucket-server/index.ts @@ -490,12 +490,6 @@ export function getBranchLastCommitTime(branchName: string): Promise { return git.getBranchLastCommitTime(branchName); } -export /* istanbul ignore next */ function getRepoStatus(): Promise< - git.StatusResult -> { - return git.getRepoStatus(); -} - async function getStatus( branchName: string, useCache = true diff --git a/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap b/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap index 3dd3d8aed5f321..486fdd173b8835 100644 --- a/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap +++ b/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap @@ -1253,24 +1253,6 @@ Array [ exports[`platform/bitbucket getPrBody() returns diff files 1`] = `"**foo**bartext"`; -exports[`platform/bitbucket getRepoStatus() sends to gitFs 1`] = `undefined`; - -exports[`platform/bitbucket getRepoStatus() sends to gitFs 2`] = ` -Array [ - Object { - "headers": Object { - "accept": "application/json", - "accept-encoding": "gzip, deflate", - "authorization": "Basic YWJjOjEyMw==", - "host": "api.bitbucket.org", - "user-agent": "https://github.com/renovatebot/renovate", - }, - "method": "GET", - "url": "https://api.bitbucket.org/2.0/repositories/some/repo", - }, -] -`; - exports[`platform/bitbucket getRepos() returns repos 1`] = ` Array [ Object { diff --git a/lib/platform/bitbucket/index.spec.ts b/lib/platform/bitbucket/index.spec.ts index cb0946e5841d27..7946c17799039f 100644 --- a/lib/platform/bitbucket/index.spec.ts +++ b/lib/platform/bitbucket/index.spec.ts @@ -451,14 +451,6 @@ describe('platform/bitbucket', () => { }); }); - describe('getRepoStatus()', () => { - it('sends to gitFs', async () => { - await initRepoMock(); - expect(await bitbucket.getRepoStatus()).toMatchSnapshot(); - expect(httpMock.getTrace()).toMatchSnapshot(); - }); - }); - describe('deleteBranch()', () => { it('sends to gitFs', async () => { await initRepoMock(); diff --git a/lib/platform/bitbucket/index.ts b/lib/platform/bitbucket/index.ts index f1bc34f24483c5..127590dfa18970 100644 --- a/lib/platform/bitbucket/index.ts +++ b/lib/platform/bitbucket/index.ts @@ -289,11 +289,6 @@ export function getBranchLastCommitTime(branchName: string): Promise { return git.getBranchLastCommitTime(branchName); } -// istanbul ignore next -export function getRepoStatus(): Promise { - return git.getRepoStatus(); -} - export function mergeBranch(branchName: string): Promise { return git.mergeBranch(branchName); } diff --git a/lib/platform/common.ts b/lib/platform/common.ts index 12382799076239..26552bf6d49736 100644 --- a/lib/platform/common.ts +++ b/lib/platform/common.ts @@ -1,5 +1,4 @@ import got from 'got'; -import Git from 'simple-git/promise'; import { RenovateConfig } from '../config/common'; import { BranchStatus, @@ -233,7 +232,6 @@ export interface Platform { requiredStatusChecks?: string[] | null ): Promise; getBranchPr(branchName: string): Promise; - getRepoStatus(): Promise; getFile(lockFileName: string, branchName?: string): Promise; initPlatform(config: RenovateConfig): Promise; } diff --git a/lib/platform/gitea/index.spec.ts b/lib/platform/gitea/index.spec.ts index 10f801e7253ae9..6a8a0671a55e4f 100644 --- a/lib/platform/gitea/index.spec.ts +++ b/lib/platform/gitea/index.spec.ts @@ -1437,15 +1437,6 @@ describe('platform/gitea', () => { }); }); - describe('getRepoStatus', () => { - it('should propagate call to storage class', async () => { - await initFakeRepo(); - await gitea.getRepoStatus(); - - expect(gitvcs.getRepoStatus).toHaveBeenCalledTimes(1); - }); - }); - describe('getFileList', () => { it('propagates call to storage class', async () => { await initFakeRepo(); diff --git a/lib/platform/gitea/index.ts b/lib/platform/gitea/index.ts index ca6cca3f807c3a..1626d14cef5cfb 100644 --- a/lib/platform/gitea/index.ts +++ b/lib/platform/gitea/index.ts @@ -888,10 +888,6 @@ const platform: Platform = { return git.getFile(lockFileName, branchName); }, - getRepoStatus(): Promise { - return git.getRepoStatus(); - }, - getFileList(): Promise { return git.getFileList(); }, @@ -938,7 +934,6 @@ export const { getPrList, getPrFiles, getRepoForceRebase, - getRepoStatus, getRepos, getVulnerabilityAlerts, initPlatform, diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts index 773291d2935439..dcf7b55a8612bb 100644 --- a/lib/platform/github/index.ts +++ b/lib/platform/github/index.ts @@ -549,11 +549,6 @@ export function getBranchLastCommitTime(branchName: string): Promise { return git.getBranchLastCommitTime(branchName); } -// istanbul ignore next -export function getRepoStatus(): Promise { - return git.getRepoStatus(); -} - // istanbul ignore next export function mergeBranch(branchName: string): Promise { if (config.pushProtection) { diff --git a/lib/platform/gitlab/__snapshots__/index.spec.ts.snap b/lib/platform/gitlab/__snapshots__/index.spec.ts.snap index 5945db02f79e7b..a6945f0a5e7647 100644 --- a/lib/platform/gitlab/__snapshots__/index.spec.ts.snap +++ b/lib/platform/gitlab/__snapshots__/index.spec.ts.snap @@ -1768,33 +1768,6 @@ Array [ ] `; -exports[`platform/gitlab getRepoStatus() exists 1`] = ` -Array [ - Object { - "headers": Object { - "accept": "application/json", - "accept-encoding": "gzip, deflate", - "host": "gitlab.com", - "private-token": "abc123", - "user-agent": "https://github.com/renovatebot/renovate", - }, - "method": "GET", - "url": "https://gitlab.com/api/v4/projects/some%2Frepo", - }, - Object { - "headers": Object { - "accept": "application/json", - "accept-encoding": "gzip, deflate", - "host": "gitlab.com", - "private-token": "abc123", - "user-agent": "https://github.com/renovatebot/renovate", - }, - "method": "GET", - "url": "https://gitlab.com/api/v4/user", - }, -] -`; - exports[`platform/gitlab getRepos should return an array of repos 1`] = ` Array [ "a/b", diff --git a/lib/platform/gitlab/index.spec.ts b/lib/platform/gitlab/index.spec.ts index edab97df8ea009..4ff365f7041382 100644 --- a/lib/platform/gitlab/index.spec.ts +++ b/lib/platform/gitlab/index.spec.ts @@ -158,13 +158,6 @@ describe('platform/gitlab', () => { return scope; } - describe('getRepoStatus()', () => { - it('exists', async () => { - await initRepo(); - await gitlab.getRepoStatus(); - expect(httpMock.getTrace()).toMatchSnapshot(); - }); - }); describe('cleanRepo()', () => { it('exists', async () => { expect(await gitlab.cleanRepo()).toMatchSnapshot(); diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts index d91a6eb0e7178f..fb7125e7349f93 100644 --- a/lib/platform/gitlab/index.ts +++ b/lib/platform/gitlab/index.ts @@ -668,11 +668,6 @@ export function getBranchLastCommitTime(branchName: string): Promise { return git.getBranchLastCommitTime(branchName); } -// istanbul ignore next -export function getRepoStatus(): Promise { - return git.getRepoStatus(); -} - export async function getBranchStatusCheck( branchName: string, context: string diff --git a/lib/workers/branch/index.spec.ts b/lib/workers/branch/index.spec.ts index f4d16a2f4c7864..8dc9ba82e272fa 100644 --- a/lib/workers/branch/index.spec.ts +++ b/lib/workers/branch/index.spec.ts @@ -1,5 +1,5 @@ import * as _fs from 'fs-extra'; -import { defaultConfig, mocked, platform } from '../../../test/util'; +import { defaultConfig, git, mocked, platform } from '../../../test/util'; import { MANAGER_LOCKFILE_ERROR, REPOSITORY_CHANGED, @@ -34,6 +34,7 @@ jest.mock('./automerge'); jest.mock('./commit'); jest.mock('../pr'); jest.mock('../../util/exec'); +jest.mock('../../util/git'); jest.mock('fs-extra'); const getUpdated = mocked(_getUpdated); @@ -638,7 +639,7 @@ describe('workers/branch', () => { body: `- [x] `, isModified: true, } as never); - platform.getRepoStatus.mockResolvedValueOnce({ + git.getRepoStatus.mockResolvedValueOnce({ modified: ['modified_file'], not_added: [], deleted: ['deleted_file'], diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts index ce865f3cc70c46..e5c0cdcf43ad14 100644 --- a/lib/workers/branch/index.ts +++ b/lib/workers/branch/index.ts @@ -25,6 +25,7 @@ import { ExternalHostError } from '../../types/errors/external-host-error'; import { emojify } from '../../util/emoji'; import { exec } from '../../util/exec'; import { readLocalFile, writeLocalFile } from '../../util/fs'; +import { getRepoStatus } from '../../util/git'; import { regEx } from '../../util/regex'; import { BranchConfig, PrResult, ProcessBranchResult } from '../common'; import { checkAutoMerge, ensurePr } from '../pr'; @@ -380,7 +381,7 @@ export async function processBranch( } } - const status = await platform.getRepoStatus(); + const status = await getRepoStatus(); for (const relativePath of status.modified.concat(status.not_added)) { for (const pattern of fileFilters) { From 77318117f1705f4327816bb957407e9c9710f838 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Jul 2020 12:32:11 +0200 Subject: [PATCH 2/3] git import --- lib/manager/pipenv/artifacts.spec.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/manager/pipenv/artifacts.spec.ts b/lib/manager/pipenv/artifacts.spec.ts index 35bc0c32835b37..40dd136d33856e 100644 --- a/lib/manager/pipenv/artifacts.spec.ts +++ b/lib/manager/pipenv/artifacts.spec.ts @@ -2,12 +2,11 @@ import { exec as _exec } from 'child_process'; import _fs from 'fs-extra'; import { join } from 'upath'; import { envMock, mockExecAll } from '../../../test/execUtil'; -import { mocked } from '../../../test/util'; +import { git, mocked } from '../../../test/util'; import { setUtilConfig } from '../../util'; import { BinarySource } from '../../util/exec/common'; import * as docker from '../../util/exec/docker'; import * as _env from '../../util/exec/env'; -import * as _git from '../../util/git'; import { StatusResult } from '../../util/git'; import * as pipenv from './artifacts'; @@ -19,7 +18,6 @@ jest.mock('../../util/host-rules'); jest.mock('../../util/http'); const fs: jest.Mocked = _fs as any; -const git: jest.Mocked = _git as any; const exec: jest.Mock = _exec as any; const env = mocked(_env); From 2afb59a8f5feb656245b92099cfcc77a09880b3e Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Jul 2020 13:30:26 +0200 Subject: [PATCH 3/3] mock --- lib/manager/gradle-wrapper/artifacts-real.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/manager/gradle-wrapper/artifacts-real.spec.ts b/lib/manager/gradle-wrapper/artifacts-real.spec.ts index 0094dc9e707ecc..43924275d5618e 100644 --- a/lib/manager/gradle-wrapper/artifacts-real.spec.ts +++ b/lib/manager/gradle-wrapper/artifacts-real.spec.ts @@ -7,6 +7,8 @@ import { setUtilConfig } from '../../util'; import { ifSystemSupportsGradle } from '../gradle/__testutil__/gradle'; import * as dcUpdate from '.'; +jest.mock('../../util/git'); + const fixtures = resolve(__dirname, './__fixtures__'); const config = { localDir: resolve(fixtures, './testFiles'),