From 3fd090f3efe974b88497bec8ec3232f818d99402 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 1 Mar 2018 17:35:11 +0100
Subject: [PATCH] feat: prBanner
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Enables a “banner” at the top of PRs. Must be set inside a config.js to work.
---
 lib/config/validation.js                      | 1 +
 lib/workers/global/index.js                   | 2 +-
 lib/workers/pr/index.js                       | 4 ++++
 lib/workers/repository/onboarding/pr/index.js | 4 ++++
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/config/validation.js b/lib/config/validation.js
index 4691ea9fd1..836fbd0ef4 100644
--- a/lib/config/validation.js
+++ b/lib/config/validation.js
@@ -19,6 +19,7 @@ function validateConfig(config) {
 
   function isIgnored(key) {
     const ignoredNodes = [
+      'prBanner',
       'depType',
       'npmToken',
       'packageFile',
diff --git a/lib/workers/global/index.js b/lib/workers/global/index.js
index 51ff763792..99ff09c213 100644
--- a/lib/workers/global/index.js
+++ b/lib/workers/global/index.js
@@ -26,7 +26,7 @@ async function start() {
       );
     }
     // Move global variables that we need to use later
-    const importGlobals = ['exposeEnv'];
+    const importGlobals = ['exposeEnv', 'prBanner'];
     config.global = {};
     importGlobals.forEach(key => {
       config.global[key] = config[key];
diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index a0cbfbaedd..c5b945846a 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -186,6 +186,10 @@ async function ensurePr(prConfig) {
 
   const prTitle = handlebars.compile(config.prTitle)(config);
   let prBody = handlebars.compile(config.prBody)(config);
+  // istanbul ignore if
+  if (config.global && config.global.prBanner) {
+    prBody = config.global.prBanner + '\n\n' + prBody;
+  }
   if (config.isGitHub && !config.privateRepo) {
     // Put a zero width space after every # followed by a digit
     prBody = prBody.replace(/#(\d)/gi, '#&#8203;$1');
diff --git a/lib/workers/repository/onboarding/pr/index.js b/lib/workers/repository/onboarding/pr/index.js
index 00023657db..80b9707324 100644
--- a/lib/workers/repository/onboarding/pr/index.js
+++ b/lib/workers/repository/onboarding/pr/index.js
@@ -42,6 +42,10 @@ async function ensureOnboardingPr(config) {
   prBody = prBody.replace('{{ERRORS}}\n', getErrors(config));
   prBody = prBody.replace('{{BASEBRANCH}}\n', getBaseBranchDesc(config));
   prBody = prBody.replace('{{PRLIST}}\n', getPrList(config));
+  // istanbul ignore if
+  if (config.global && config.global.prBanner) {
+    prBody = config.global.prBanner + '\n\n' + prBody;
+  }
   logger.trace('prBody:\n' + prBody);
 
   // Check if existing PR exists
-- 
GitLab