From c57bb612940831e1b6be29c1a86affe05bb92fee Mon Sep 17 00:00:00 2001
From: Nils Plaschke <Chumper@users.noreply.github.com>
Date: Wed, 28 Oct 2020 06:17:35 +0100
Subject: [PATCH] fix: sampleSize: 0 does not add assignees/reviewers (#7579)

---
 lib/workers/pr/index.spec.ts | 11 +++++++++++
 lib/workers/pr/index.ts      | 28 ++++++++++++++++------------
 2 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/lib/workers/pr/index.spec.ts b/lib/workers/pr/index.spec.ts
index 988e78d1d7..20622c50c1 100644
--- a/lib/workers/pr/index.spec.ts
+++ b/lib/workers/pr/index.spec.ts
@@ -479,6 +479,17 @@ describe('workers/pr', () => {
       expect(reviewers).toHaveLength(2);
       expect(config.reviewers).toEqual(expect.arrayContaining(reviewers));
     });
+    it('should not add any assignees or reviewers to new PR', async () => {
+      config.assignees = ['foo', 'bar', 'baz'];
+      config.assigneesSampleSize = 0;
+      config.reviewers = ['baz', 'boo', 'bor'];
+      config.reviewersSampleSize = 0;
+      const { prResult, pr } = await prWorker.ensurePr(config);
+      expect(prResult).toEqual(PrResult.Created);
+      expect(pr).toMatchObject({ displayNumber: 'New Pull Request' });
+      expect(platform.addAssignees).toHaveBeenCalledTimes(0);
+      expect(platform.addReviewers).toHaveBeenCalledTimes(0);
+    });
     it('should add and deduplicate additionalReviewers on new PR', async () => {
       config.reviewers = ['@foo', 'bar'];
       config.additionalReviewers = ['bar', 'baz', '@boo'];
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index 3030ed6501..48fa68186e 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -48,12 +48,14 @@ export async function addAssigneesReviewers(
       if (config.assigneesSampleSize !== null) {
         assignees = sampleSize(assignees, config.assigneesSampleSize);
       }
-      // istanbul ignore if
-      if (config.dryRun) {
-        logger.info(`DRY-RUN: Would add assignees to PR #${pr.number}`);
-      } else {
-        await platform.addAssignees(pr.number, assignees);
-        logger.debug({ assignees }, 'Added assignees');
+      if (assignees.length > 0) {
+        // istanbul ignore if
+        if (config.dryRun) {
+          logger.info(`DRY-RUN: Would add assignees to PR #${pr.number}`);
+        } else {
+          await platform.addAssignees(pr.number, assignees);
+          logger.debug({ assignees }, 'Added assignees');
+        }
       }
     } catch (err) {
       logger.debug(
@@ -78,12 +80,14 @@ export async function addAssigneesReviewers(
       if (config.reviewersSampleSize !== null) {
         reviewers = sampleSize(reviewers, config.reviewersSampleSize);
       }
-      // istanbul ignore if
-      if (config.dryRun) {
-        logger.info(`DRY-RUN: Would add reviewers to PR #${pr.number}`);
-      } else {
-        await platform.addReviewers(pr.number, reviewers);
-        logger.debug({ reviewers }, 'Added reviewers');
+      if (reviewers.length > 0) {
+        // istanbul ignore if
+        if (config.dryRun) {
+          logger.info(`DRY-RUN: Would add reviewers to PR #${pr.number}`);
+        } else {
+          await platform.addReviewers(pr.number, reviewers);
+          logger.debug({ reviewers }, 'Added reviewers');
+        }
       }
     } catch (err) {
       logger.debug(
-- 
GitLab