From 8144f07b697d4bf7922a4ad0b8d57e2afef90283 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Brauer?= <zaubernerd@zaubernerd.de>
Date: Thu, 14 May 2020 13:13:38 +0200
Subject: [PATCH] feat(pr): remove and re-create automergeComment when rebasing
 (#6002)

---
 lib/workers/pr/index.spec.ts | 12 ++++++++++++
 lib/workers/pr/index.ts      |  7 +++++++
 2 files changed, 19 insertions(+)

diff --git a/lib/workers/pr/index.spec.ts b/lib/workers/pr/index.spec.ts
index ef07b1d19e..84e267fbc5 100644
--- a/lib/workers/pr/index.spec.ts
+++ b/lib/workers/pr/index.spec.ts
@@ -85,6 +85,18 @@ describe('workers/pr', () => {
       pr.isModified = false;
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green);
       await prWorker.checkAutoMerge(pr, config);
+      expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(0);
+      expect(platform.ensureComment).toHaveBeenCalledTimes(1);
+    });
+    it('should remove previous automerge comment when rebasing', async () => {
+      config.automerge = true;
+      config.automergeType = 'pr-comment';
+      config.automergeComment = '!merge';
+      config.rebaseRequested = true;
+      pr.isModified = false;
+      platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green);
+      await prWorker.checkAutoMerge(pr, config);
+      expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(1);
       expect(platform.ensureComment).toHaveBeenCalledTimes(1);
     });
     it('should not automerge if enabled and pr is mergeable but cannot rebase', async () => {
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index 495eb7b0a6..7316add335 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -437,6 +437,7 @@ export async function checkAutoMerge(
     automergeType,
     automergeComment,
     requiredStatusChecks,
+    rebaseRequested,
   } = config;
   logger.debug(
     { automerge, automergeType, automergeComment },
@@ -481,6 +482,12 @@ export async function checkAutoMerge(
         );
         return false;
       }
+      if (rebaseRequested) {
+        await platform.ensureCommentRemoval({
+          number: pr.number,
+          content: automergeComment,
+        });
+      }
       return platform.ensureComment({
         number: pr.number,
         topic: null,
-- 
GitLab