From 69705c99a3f2a345efc8b40825a93aa083f221b2 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 31 May 2021 13:01:48 +0200
Subject: [PATCH] feat(automerge): recurse after automerge (#10229)

---
 lib/workers/repository/index.ts | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts
index ecce455412..8ec13a53de 100644
--- a/lib/workers/repository/index.ts
+++ b/lib/workers/repository/index.ts
@@ -25,7 +25,8 @@ try {
 
 // istanbul ignore next
 export async function renovateRepository(
-  repoConfig: RenovateConfig
+  repoConfig: RenovateConfig,
+  canRetry = true
 ): Promise<ProcessResult> {
   splitInit();
   let config = setAdminConfig(repoConfig);
@@ -47,7 +48,14 @@ export async function renovateRepository(
     const res = await updateRepo(config, branches);
     addSplit('update');
     await setBranchCache(branches);
-    if (res !== 'automerged') {
+    if (res === 'automerged') {
+      if (canRetry) {
+        logger.info('Renovating repository again after automerge result');
+        const recursiveRes = await renovateRepository(repoConfig, false);
+        return recursiveRes;
+      }
+      logger.debug(`Automerged but already retried once`);
+    } else {
       await ensureMasterIssue(config, branches);
     }
     await finaliseRepo(config, branchList);
-- 
GitLab