From 4a7f493ec43ca8cf21464c10b479bd4294ffc79d Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 7 Feb 2018 08:05:32 +0100
Subject: [PATCH] =?UTF-8?q?fix:=20delete=20branch=20if=20create=20pr=20ret?=
 =?UTF-8?q?urns=20=E2=80=9Cvalidation=20failed=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/workers/pr/index.js       | 4 ++++
 test/workers/pr/index.spec.js | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index d5ad7b49fe..388ae37b6d 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -250,6 +250,10 @@ async function ensurePr(prConfig) {
       );
     } catch (err) {
       logger.warn({ err, message: err.message }, `Failed to create PR`);
+      if (err.message === 'Validation Failed (422)') {
+        logger.info({ branchName }, 'Deleting invalid branch');
+        await platform.deleteBranch(branchName);
+      }
       return null;
     }
     // Skip assign and review if automerging PR
diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js
index 3f2ff841e5..0355c5b85e 100644
--- a/test/workers/pr/index.spec.js
+++ b/test/workers/pr/index.spec.js
@@ -153,7 +153,7 @@ describe('workers/pr', () => {
       platform.getBranchStatus.mockReturnValueOnce('success');
       platform.createPr = jest.fn();
       platform.createPr.mockImplementationOnce(() => {
-        throw new Error('failed to create PR');
+        throw new Error('Validation Failed (422)');
       });
       config.prCreation = 'status-success';
       const pr = await prWorker.ensurePr(config);
-- 
GitLab