From d6edbb2e2dcad628f26988f5fbbc043f6fca9a99 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Tue, 2 May 2023 14:40:58 +0200 Subject: [PATCH] fix(automerge): force PR creation on dashboard approval (#21924) --- lib/workers/repository/update/pr/index.spec.ts | 17 +++++++++++++++++ lib/workers/repository/update/pr/index.ts | 7 ++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/update/pr/index.spec.ts b/lib/workers/repository/update/pr/index.spec.ts index 5bdc399e0a7222..ee9fad06ff0902 100644 --- a/lib/workers/repository/update/pr/index.spec.ts +++ b/lib/workers/repository/update/pr/index.spec.ts @@ -396,6 +396,23 @@ describe('workers/repository/update/pr/index', () => { expect(prCache.setPrCache).not.toHaveBeenCalled(); }); + it('forces PR on dashboard check', async () => { + platform.createPr.mockResolvedValueOnce(pr); + + const res = await ensurePr({ + ...config, + automerge: true, + automergeType: 'branch', + reviewers: ['somebody'], + dependencyDashboardChecks: { + 'renovate-branch': 'approvePr', + }, + }); + + expect(res).toEqual({ type: 'with-pr', pr }); + expect(prCache.setPrCache).toHaveBeenCalled(); + }); + it('adds assignees for PR automerge with red status', async () => { const changedPr: Pr = { ...pr, diff --git a/lib/workers/repository/update/pr/index.ts b/lib/workers/repository/update/pr/index.ts index 99cd73a5d02f5a..0f8a8bef233fe8 100644 --- a/lib/workers/repository/update/pr/index.ts +++ b/lib/workers/repository/update/pr/index.ts @@ -143,6 +143,11 @@ export async function ensurePr( config.forcePr = true; } + if (dependencyDashboardCheck === 'approvePr') { + logger.debug('Forcing PR because of dependency dashboard approval'); + config.forcePr = true; + } + if (!existingPr) { // Only create a PR if a branch automerge has failed if ( @@ -172,7 +177,7 @@ export async function ensurePr( return { type: 'without-pr', prBlockedBy: 'BranchAutomerge' }; } } - if (!existingPr && config.prCreation === 'status-success') { + if (config.prCreation === 'status-success') { logger.debug('Checking branch combined status'); if ((await getBranchStatus()) !== 'green') { logger.debug(`Branch status isn't green - not creating PR`);