diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index ef109b2932ab45a3917b6657faa18fb9764d3339..c659489a9945bd6665c6fb2f18c60d9ea178ffba 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -1348,6 +1348,21 @@ const options = [
     allowString: true,
     mergeable: true,
   },
+  {
+    name: 'suppressNotifications',
+    description:
+      'Options to suppress various types of warnings and other notifications',
+    type: 'list',
+    default: [],
+    allowedValues: [
+      'prIgnoreNotification',
+      'prEditNotification',
+      'branchAutomergeFailure',
+      'lockFileErrors',
+    ],
+    cli: false,
+    env: false,
+  }
 ];
 
 function getOptions() {
diff --git a/lib/workers/branch/index.js b/lib/workers/branch/index.js
index 032a169e89a49b52a9a5d3856cee5076a36e65ef..265b77330643e599eef46c83560d1b4145e6bda1 100644
--- a/lib/workers/branch/index.js
+++ b/lib/workers/branch/index.js
@@ -72,14 +72,16 @@ async function processBranch(branchConfig, prHourlyLimitReached, packageFiles) {
         }
         content +=
           '\n\nIf this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.';
-        // istanbul ignore if
-        if (config.dryRun) {
-          logger.info(
-            'DRY-RUN: Would ensure closed PR comment in PR #' +
-              existingPr.number
-          );
-        } else {
-          await platform.ensureComment(existingPr.number, subject, content);
+        if (!config.suppressNotifications.includes('prIgnoreNotification')) {
+          // istanbul ignore if
+          if (config.dryRun) {
+            logger.info(
+              'DRY-RUN: Would ensure closed PR comment in PR #' +
+                existingPr.number
+            );
+          } else {
+            await platform.ensureComment(existingPr.number, subject, content);
+          }
         }
         if (branchExists) {
           // istanbul ignore if
@@ -142,11 +144,15 @@ async function processBranch(branchConfig, prHourlyLimitReached, packageFiles) {
             content += ` If you wish to abandon your changes and have Renovate start over then you can add the label \`${
               config.rebaseLabel
             }\` to this PR and Renovate will reset/recreate it.`;
-            // istanbul ignore if
-            if (config.dryRun) {
-              logger.info('DRY-RUN: ensure comment in PR #' + branchPr.number);
-            } else {
-              await platform.ensureComment(branchPr.number, subject, content);
+            if (!config.suppressNotifications.includes('prEditNotification')) {
+              // istanbul ignore if
+              if (config.dryRun) {
+                logger.info(
+                  'DRY-RUN: ensure comment in PR #' + branchPr.number
+                );
+              } else {
+                await platform.ensureComment(branchPr.number, subject, content);
+              }
             }
             return 'pr-edited';
           }
@@ -358,13 +364,16 @@ async function processBranch(branchConfig, prHourlyLimitReached, packageFiles) {
           content += `##### ${error.lockFile}\n\n`;
           content += `\`\`\`\n${error.stderr}\n\`\`\`\n\n`;
         });
-        // istanbul ignore if
-        if (config.dryRun) {
-          logger.info(
-            'DRY-RUN: Would ensure lock file error comment in PR #' + pr.number
-          );
-        } else {
-          await platform.ensureComment(pr.number, topic, content);
+        if (!config.suppressNotifications.includes('lockFileErrors')) {
+          // istanbul ignore if
+          if (config.dryRun) {
+            logger.info(
+              'DRY-RUN: Would ensure lock file error comment in PR #' +
+                pr.number
+            );
+          } else {
+            await platform.ensureComment(pr.number, topic, content);
+          }
         }
         const context = 'renovate/lock-files';
         const description = 'Lock file update failure';
diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index 7f7e3fd0d5aa83a2994bb342e597d4d2c1495417..c7951dffd802c302c6e0a2b2aa4a7c756865076e 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -279,7 +279,7 @@ async function ensurePr(prConfig) {
       }
       return null;
     }
-    if (config.branchAutomergeFailureMessage) {
+    if (config.branchAutomergeFailureMessage && !config.suppressNotifications.includes('branchAutomergeFailure')) {
       const subject = 'Branch automerge failure';
       let content =
         'This PR was configured for branch automerge, however this is not possible so it has been raised as a PR instead.';
diff --git a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
index 67d800a83bcfeca3cb2fad63e6e6d450808953ad..e7a6f598f1a7784a194536426e9de901b1ccb531 100644
--- a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
+++ b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
@@ -81,6 +81,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -174,6 +175,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -266,6 +268,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -360,6 +363,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -452,6 +456,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -546,6 +551,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -639,6 +645,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
@@ -732,6 +739,7 @@ Array [
     "separateMinorPatch": false,
     "skipInstalls": null,
     "statusCheckVerify": false,
+    "suppressNotifications": Array [],
     "timezone": null,
     "unpublishSafe": false,
     "updateLockFiles": true,
diff --git a/website/docs/configuration-options.md b/website/docs/configuration-options.md
index 2801d14c27927800b5d8c44f6c83343061690287..7ce1a7a39c6fa1f8f60c0eb69a5fa41b783c7c34 100644
--- a/website/docs/configuration-options.md
+++ b/website/docs/configuration-options.md
@@ -839,6 +839,16 @@ Language support is limited to those listed below:
 
 - **Node.js** - [Read our Node.js documentation](https://renovatebot.com/docs/node#configuring-support-policy)
 
+## suppressNotifications
+
+Use this field to suppress various types of warnings and other notifications from Renovate. Example:
+
+```json
+"suppressNotifications": ["prIgnoreNotification"]
+```
+
+The above config will suppress the comment which is added to a PR whenever you close a PR unmerged.
+
 ## terraform
 
 Currently Terraform support is limited to Terraform registry sources and github sources that include semver refs, e.g. like `github.com/hashicorp/example?ref=v1.0.0`.