From 393c24c65253804d869005a5f0f6268cdfebe9a4 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Thu, 12 Oct 2017 17:39:10 +0200 Subject: [PATCH] fix: stop attempting branch merge if pr exists (#920) --- lib/workers/branch/automerge.js | 4 ++++ test/workers/branch/automerge.spec.js | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/workers/branch/automerge.js b/lib/workers/branch/automerge.js index ab43531349..90a1f61d5a 100644 --- a/lib/workers/branch/automerge.js +++ b/lib/workers/branch/automerge.js @@ -8,6 +8,10 @@ async function tryBranchAutomerge(config) { if (!config.automerge || config.automergeType === 'pr') { return 'no automerge'; } + const existingPr = config.api.getBranchPr(config.branchName); + if (existingPr) { + return 'automerge aborted - PR exists'; + } const branchStatus = await config.api.getBranchStatus( config.branchName, config.requiredStatusChecks diff --git a/test/workers/branch/automerge.spec.js b/test/workers/branch/automerge.spec.js index 114a96f1f6..0d3bd5d306 100644 --- a/test/workers/branch/automerge.spec.js +++ b/test/workers/branch/automerge.spec.js @@ -8,7 +8,11 @@ describe('workers/branch/automerge', () => { beforeEach(() => { config = { ...defaultConfig, - api: { getBranchStatus: jest.fn(), mergeBranch: jest.fn() }, + api: { + getBranchPr: jest.fn(), + getBranchStatus: jest.fn(), + mergeBranch: jest.fn(), + }, logger, }; }); @@ -27,6 +31,15 @@ describe('workers/branch/automerge', () => { config.api.getBranchStatus.mockReturnValueOnce('pending'); expect(await tryBranchAutomerge(config)).toBe('no automerge'); }); + it('returns false if PR exists', async () => { + config.api.getBranchPr.mockReturnValueOnce({}); + config.automerge = true; + config.automergeType = 'branch-push'; + config.api.getBranchStatus.mockReturnValueOnce('success'); + expect(await tryBranchAutomerge(config)).toBe( + 'automerge aborted - PR exists' + ); + }); it('returns false if automerge fails', async () => { config.automerge = true; config.automergeType = 'branch-push'; -- GitLab