diff --git a/lib/workers/branch/index.spec.ts b/lib/workers/branch/index.spec.ts index ac74e0efe3288bfe42fdc9f00755a57fe2692016..418d9fdc90ee97d7fb4639eb0ea99078a24cbfda 100644 --- a/lib/workers/branch/index.spec.ts +++ b/lib/workers/branch/index.spec.ts @@ -24,6 +24,7 @@ import type { EnsurePrResult } from '../pr'; import * as _prAutomerge from '../pr/automerge'; import type { Pr } from '../repository/onboarding/branch/check'; import type { BranchConfig, BranchUpgradeConfig } from '../types'; +import { BranchResult } from '../types'; import * as _automerge from './automerge'; import * as _checkExisting from './check-existing'; import * as _commit from './commit'; @@ -1243,5 +1244,20 @@ describe(getName(), () => { ).toString() ).toBe('modified file content'); }); + it('returns when rebaseWhen=never', async () => { + getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({ + ...updatedPackageFiles, + }); + npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ + artifactErrors: [], + updatedArtifacts: [], + }); + git.branchExists.mockReturnValue(true); + commit.commitFilesToBranch.mockResolvedValueOnce(null); + expect( + await branchWorker.processBranch({ ...config, rebaseWhen: 'never' }) + ).toMatchObject({ result: BranchResult.NoWork }); + expect(commit.commitFilesToBranch).not.toHaveBeenCalled(); + }); }); }); diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts index df50fb0dce883ff52efdb32930085a29b1caf03f..393fdce2379db414089e51192d430a1bb38bb8f9 100644 --- a/lib/workers/branch/index.ts +++ b/lib/workers/branch/index.ts @@ -391,10 +391,16 @@ export async function processBranch( }); } } - config.forceCommit = - !!dependencyDashboardCheck || - config.rebaseRequested || - branchPr?.isConflicted; + const forcedManually = !!dependencyDashboardCheck || config.rebaseRequested; + if (!forcedManually && config.rebaseWhen === 'never') { + logger.debug(`Skipping commit (rebaseWhen=never)`); + return { + branchExists, + prNo: branchPr?.number, + result: BranchResult.NoWork, + }; + } + config.forceCommit = forcedManually || branchPr?.isConflicted; const commitSha = await commitFilesToBranch(config); // istanbul ignore if if (branchPr && platform.refreshPr) {