From 35a33ef81033e6da2310ca0a2f46fa47b7c52809 Mon Sep 17 00:00:00 2001
From: LE DURAND Matteo <matteo.le-durand@developpement-durable.gouv.fr>
Date: Tue, 25 Feb 2025 14:00:51 +0100
Subject: [PATCH] =?UTF-8?q?fix:=20les=20MergeRequest=20sont=20maintenant?=
 =?UTF-8?q?=20pris=20en=20compte=20uniquement=20si=20l'action=20est=20acce?=
 =?UTF-8?q?pt=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 dev/gitlab_classique.R | 22 ++++++++++++++++++----
 dev/gitlab_forge.R     | 24 +++++++++++++++++++-----
 2 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/dev/gitlab_classique.R b/dev/gitlab_classique.R
index bfb98f4..023964f 100644
--- a/dev/gitlab_classique.R
+++ b/dev/gitlab_classique.R
@@ -129,10 +129,24 @@ get_gitlab_events <- function(base_url, project_id, private_token) {
   data <- data %>%
     mutate(
       project_name = as.character(project_id),
-      type = if_else((is.null(target_type) | target_type == "") | as.character(target_type) == "Issue" | as.character(action_name) == "joined", # remplecer par  |  as.ch(target-type)=="Issue"
-                     as.character(action_name),
-                     as.character(target_type)),
-      message = note.body,
+
+      type = case_when(
+        is.null(target_type) | target_type == "" ~ as.character(action_name),
+        as.character(action_name) == "joined" ~ as.character(action_name),
+        TRUE ~ as.character(target_type)
+      ),
+
+      message = case_when(
+        # Cas spécifique : MergeRequest avec action_name == "accepted"
+        as.character(target_type) == "MergeRequest" & as.character(action_name) == "accepted" ~ as.character(target_title),
+
+        # Cas général : autres MergeRequest ou WikiPage::Meta
+        as.character(target_type) %in% c("WikiPage::Meta") ~ as.character(target_title),
+
+        # Si ce n'est pas un cas spécial, garder note.body
+        TRUE ~ as.character(note.body)
+      ),
+
       updated_at = created_at,
       author = author.username
     ) %>%
diff --git a/dev/gitlab_forge.R b/dev/gitlab_forge.R
index 87158a1..6955bc6 100644
--- a/dev/gitlab_forge.R
+++ b/dev/gitlab_forge.R
@@ -170,13 +170,27 @@ get_gitlab_events <- function(base_url, project_id, private_token) {
   data <- data %>%
     mutate(
       project_name = as.character(project_id),
-      type = if_else((is.null(target_type) | target_type == "") | as.character(target_type) == "Issue" | as.character(action_name) == "joined", # remplecer par  |  as.ch(target-type)=="Issue"
-                     as.character(action_name),
-                     as.character(target_type)),
-      message = ifelse(as.character(target_type) == "WikiPage::Meta",as.character(target_title),as.character(note.body)),
+
+      type = case_when(
+        is.null(target_type) | target_type == "" ~ as.character(action_name),
+        as.character(action_name) == "joined" ~ as.character(action_name),
+        TRUE ~ as.character(target_type)
+      ),
+
+      message = case_when(
+        # Cas spécifique : MergeRequest avec action_name == "accepted"
+        as.character(target_type) == "MergeRequest" & as.character(action_name) == "accepted" ~ as.character(target_title),
+
+        # Cas général : autres MergeRequest ou WikiPage::Meta
+        as.character(target_type) %in% c("WikiPage::Meta") ~ as.character(target_title),
+
+        # Si ce n'est pas un cas spécial, garder note.body
+        TRUE ~ as.character(note.body)
+      ),
+
       updated_at = created_at,
       author = author.username
-    ) %>%
+    )%>%
     left_join(name_gitlab, by = c("project_name" = "id")) %>%
     mutate(project_name = name) %>%
     select(-name)
-- 
GitLab