From b294ecc7cf7c3dcfff92e07e5788b66f4dcbb5cb Mon Sep 17 00:00:00 2001
From: Abdul Wadood <awadood@gitlab.com>
Date: Tue, 10 Dec 2024 09:59:43 +0530
Subject: [PATCH] Pick GitLab project specific reviewers in keeps

We use the reviewer roulette when generating merge requests using
housekeeper. Here we fix a bug where the role like `maintainer::backend`
was being picked for another project like `customers-app`. Instead, we
should be picking `maintainer::backend` for the `gitlab` project.
---
 keeps/helpers/reviewer_roulette.rb     |  2 +-
 spec/fixtures/keeps/helpers/stats.json | 51 ++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/keeps/helpers/reviewer_roulette.rb b/keeps/helpers/reviewer_roulette.rb
index 959c8d7ba2cfd..6a8e2e2fcc9a3 100644
--- a/keeps/helpers/reviewer_roulette.rb
+++ b/keeps/helpers/reviewer_roulette.rb
@@ -22,7 +22,7 @@ def available_reviewers_for_role(role)
       end
 
       def reviewer_has_matching_role?(person, role)
-        person.dig(:user, :type).any? { |role_pair| role_pair[:r] == role }
+        person.dig(:user, :type).any? { |role_pair| role_pair[:p] == GITLAB_PROJECT && role_pair[:r] == role }
       end
 
       def average_type?(person)
diff --git a/spec/fixtures/keeps/helpers/stats.json b/spec/fixtures/keeps/helpers/stats.json
index 79d88a4ddf574..6f119f03750d4 100644
--- a/spec/fixtures/keeps/helpers/stats.json
+++ b/spec/fixtures/keeps/helpers/stats.json
@@ -3,6 +3,57 @@
   "nextBuild": "2024-06-27T05:34:12.000Z",
   "commit": "00000000",
   "people": [
+    {
+      "key": "arianna",
+      "user": {
+        "username": "@arianna",
+        "name": "Camila Champlin",
+        "avatarUrl": "https://localhost/uploads/-/system/user/avatar/4/avatar.png?width=32",
+        "webUrl": "https://localhost/arianna",
+        "type": [
+          {
+            "p": "customers-app",
+            "r": "maintainer::backend"
+          },
+          {
+            "p": "gitlab",
+            "r": "reviewer::backend"
+          }
+        ],
+        "tzOffset": 330,
+        "merge_request_coach": false
+      },
+      "status": {
+        "emoji": "2️⃣",
+        "messageHtml": "",
+        "available": true,
+        "has_capacity": true,
+        "hungry": false,
+        "reduced_capacity": false,
+        "out_of_office": false,
+        "assigned_max_capacity": 2,
+        "gitlab_mrs_involved_for_review_count": 0
+      },
+      "stats": {
+        "assignEvents": [
+          {
+            "date": "2024-05-28",
+            "value": 4
+          },
+          {
+            "date": "2024-05-29",
+            "value": 1
+          }
+        ],
+        "count7": 10,
+        "count30": 38,
+        "avg7": 1.4,
+        "avg30": 1.3
+      },
+      "mrs": [
+
+      ]
+    },
     {
       "key": "tiera",
       "user": {
-- 
GitLab