From c86ae327e236b213f85f10b48e279a66350f97b2 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 14 Aug 2019 19:48:31 +0200
Subject: [PATCH] =?UTF-8?q?fix:=20don=E2=80=99t=20rebase=20if=20target=20b?=
 =?UTF-8?q?ranch=20changed=20(#4254)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/workers/branch/index.js       |  6 +++++-
 test/workers/branch/index.spec.js | 12 ++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/workers/branch/index.js b/lib/workers/branch/index.js
index 41900187f5..cd382564b9 100644
--- a/lib/workers/branch/index.js
+++ b/lib/workers/branch/index.js
@@ -122,7 +122,11 @@ async function processBranch(branchConfig, prHourlyLimitReached, packageFiles) {
           );
           throw new Error('repository-changed');
         }
-        if (!branchPr.canRebase) {
+        if (
+          !branchPr.canRebase ||
+          (branchPr.targetBranch &&
+            branchPr.targetBranch !== branchConfig.baseBranch)
+        ) {
           const subject = 'PR has been edited';
           if (masterIssueCheck || config.rebaseRequested) {
             if (config.dryRun) {
diff --git a/test/workers/branch/index.spec.js b/test/workers/branch/index.spec.js
index 640e5c01bc..5027e424c3 100644
--- a/test/workers/branch/index.spec.js
+++ b/test/workers/branch/index.spec.js
@@ -159,6 +159,18 @@ describe('workers/branch', () => {
       const res = await branchWorker.processBranch(config);
       expect(res).toEqual('pr-edited');
     });
+    it('skips branch if target branch changed', async () => {
+      schedule.isScheduledNow.mockReturnValueOnce(false);
+      platform.branchExists.mockReturnValueOnce(true);
+      platform.getBranchPr.mockReturnValueOnce({
+        state: 'open',
+        canRebase: true,
+        targetBranch: 'v6',
+      });
+      config.baseBranch = 'master';
+      const res = await branchWorker.processBranch(config);
+      expect(res).toEqual('pr-edited');
+    });
     it('returns if pr creation limit exceeded', async () => {
       getUpdated.getUpdatedPackageFiles.mockReturnValueOnce({
         updatedPackageFiles: [],
-- 
GitLab