diff --git a/lib/workers/repository/update/branch/get-updated.ts b/lib/workers/repository/update/branch/get-updated.ts index ef5416a897ce743bb706581e5ccd4e709c65e7e1..984edda37579eddb54fd9298537aa3310be97541 100644 --- a/lib/workers/repository/update/branch/get-updated.ts +++ b/lib/workers/repository/update/branch/get-updated.ts @@ -6,6 +6,7 @@ import { get } from '../../../../modules/manager'; import type { ArtifactError, PackageDependency, + UpdateArtifact, UpdateArtifactsResult, } from '../../../../modules/manager/types'; import { getFile } from '../../../../util/git'; @@ -291,21 +292,14 @@ export async function getUpdatedPackageFiles( const managers = packageFileManagers[packageFile.path]; if (is.nonEmptySet(managers)) { for (const manager of managers) { - const updateArtifacts = get(manager, 'updateArtifacts'); - if (updateArtifacts) { - const results = await updateArtifacts({ - packageFileName: packageFile.path, - updatedDeps, - // TODO #22198 - newPackageFileContent: packageFile.contents!.toString(), - config, - }); - processUpdateArtifactResults( - results, - updatedArtifacts, - artifactErrors, - ); - } + const results = await managerUpdateArtifacts(manager, { + packageFileName: packageFile.path, + updatedDeps, + // TODO #22198 + newPackageFileContent: packageFile.contents!.toString(), + config, + }); + processUpdateArtifactResults(results, updatedArtifacts, artifactErrors); } } } @@ -321,50 +315,40 @@ export async function getUpdatedPackageFiles( const managers = packageFileManagers[packageFile.path]; if (is.nonEmptySet(managers)) { for (const manager of managers) { - const updateArtifacts = get(manager, 'updateArtifacts'); - if (updateArtifacts) { - const results = await updateArtifacts({ - packageFileName: packageFile.path, - updatedDeps, - // TODO #22198 - newPackageFileContent: packageFile.contents!.toString(), - config, - }); - processUpdateArtifactResults( - results, - updatedArtifacts, - artifactErrors, - ); - if (is.nonEmptyArray(results)) { - updatedPackageFiles.push(packageFile); - } + const results = await managerUpdateArtifacts(manager, { + packageFileName: packageFile.path, + updatedDeps, + // TODO #22198 + newPackageFileContent: packageFile.contents!.toString(), + config, + }); + processUpdateArtifactResults(results, updatedArtifacts, artifactErrors); + if (is.nonEmptyArray(results)) { + updatedPackageFiles.push(packageFile); } } } } if (!reuseExistingBranch) { // Only perform lock file maintenance if it's a fresh commit - for (const packageFile of lockFileMaintenanceFiles) { - const managers = packageFileManagers[packageFile]; + for (const packageFileName of lockFileMaintenanceFiles) { + const managers = packageFileManagers[packageFileName]; if (is.nonEmptySet(managers)) { for (const manager of managers) { - const updateArtifacts = get(manager, 'updateArtifacts'); - if (updateArtifacts) { - const packageFileContents = - updatedFileContents[packageFile] || - (await getFile(packageFile, config.baseBranch)); - const results = await updateArtifacts({ - packageFileName: packageFile, - updatedDeps: [], - newPackageFileContent: packageFileContents!, - config, - }); - processUpdateArtifactResults( - results, - updatedArtifacts, - artifactErrors, - ); - } + const contents = + updatedFileContents[packageFileName] || + (await getFile(packageFileName, config.baseBranch)); + const results = await managerUpdateArtifacts(manager, { + packageFileName, + updatedDeps: [], + newPackageFileContent: contents!, + config, + }); + processUpdateArtifactResults( + results, + updatedArtifacts, + artifactErrors, + ); } } } @@ -377,6 +361,17 @@ export async function getUpdatedPackageFiles( }; } +async function managerUpdateArtifacts( + manager: string, + updateArtifact: UpdateArtifact, +): Promise<UpdateArtifactsResult[] | null> { + const updateArtifacts = get(manager, 'updateArtifacts'); + if (updateArtifacts) { + return await updateArtifacts(updateArtifact); + } + return null; +} + function processUpdateArtifactResults( results: UpdateArtifactsResult[] | null, updatedArtifacts: FileChange[],