From 50d23e6576ee1c068de5fb41a4e58cbc3059a685 Mon Sep 17 00:00:00 2001
From: StinkyLord <42116482+PhilipAbed@users.noreply.github.com>
Date: Thu, 28 Apr 2022 15:54:49 +0300
Subject: [PATCH] feat(config): add configErrorIssue to suppressNotifications
 to disable issues on config failure (#15296)

---
 lib/config/options/index.ts                 |  1 +
 lib/workers/repository/error-config.spec.ts | 15 +++++++++++++++
 lib/workers/repository/error-config.ts      |  4 ++++
 3 files changed, 20 insertions(+)

diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts
index 0216f2b956..a98159d00a 100644
--- a/lib/config/options/index.ts
+++ b/lib/config/options/index.ts
@@ -2060,6 +2060,7 @@ const options: RenovateOptions[] = [
       'artifactErrors',
       'deprecationWarningIssues',
       'onboardingClose',
+      'configErrorIssue',
     ],
     cli: false,
     env: false,
diff --git a/lib/workers/repository/error-config.spec.ts b/lib/workers/repository/error-config.spec.ts
index 84b3c6c380..90b57ae868 100644
--- a/lib/workers/repository/error-config.spec.ts
+++ b/lib/workers/repository/error-config.spec.ts
@@ -66,5 +66,20 @@ describe('workers/repository/error-config', () => {
       const res = await raiseConfigWarningIssue(config, error);
       expect(res).toBeUndefined();
     });
+
+    it('disable issue creation on config failure', async () => {
+      const error = new Error(CONFIG_VALIDATION);
+      error.validationSource = 'package.json';
+      error.validationMessage = 'some-message';
+      // config.suppressNotifications = ['deprecationWarningIssues']
+      config.suppressNotifications = ['configErrorIssue'];
+      platform.getBranchPr.mockResolvedValueOnce({
+        ...mock<Pr>(),
+        number: 1,
+        state: PrState.NotOpen,
+      });
+      const res = await raiseConfigWarningIssue(config, error);
+      expect(res).toBeUndefined();
+    });
   });
 });
diff --git a/lib/workers/repository/error-config.ts b/lib/workers/repository/error-config.ts
index 4a082c997d..598ba15272 100644
--- a/lib/workers/repository/error-config.ts
+++ b/lib/workers/repository/error-config.ts
@@ -41,6 +41,10 @@ export async function raiseConfigWarningIssue(
     }
   } else if (GlobalConfig.get('dryRun')) {
     logger.info('DRY-RUN: Would ensure config error issue');
+  } else if (config.suppressNotifications?.includes('configErrorIssue')) {
+    logger.info(
+      'configErrorIssue - configuration failure, issues will be suppressed'
+    );
   } else {
     const once = false;
     const shouldReopen = config.configWarningReuseIssue;
-- 
GitLab