From f7a261f70f907a987934826013d146e09d606bde Mon Sep 17 00:00:00 2001 From: LE DURAND Matteo <matteo.le-durand@developpement-durable.gouv.fr> Date: Fri, 7 Mar 2025 15:19:08 +0100 Subject: [PATCH] =?UTF-8?q?certain=20projet=20on=20=C3=A9t=C3=A9=20renomme?= =?UTF-8?q?=20et=20dans=20certain=20evenement=20git=20il=20garde=20l'ancie?= =?UTF-8?q?n=20donc=20si=20il=20ne=20trouve=20pas=20le=20projet=20il=20tes?= =?UTF-8?q?t=20avec=20le=20nom=20d'origine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev/gitlab_forge.R | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/dev/gitlab_forge.R b/dev/gitlab_forge.R index ff2f641..3ac686a 100644 --- a/dev/gitlab_forge.R +++ b/dev/gitlab_forge.R @@ -286,14 +286,24 @@ all_data_forge <- all_data_forge %>% mutate(origine ="Gitlab_Forge") all_data_forge <- left_join(all_data_forge, projects_topics, by = c("project_name" = "id")) -#data.frame avec les groupes et le nom pour left join ----- +#data.frame avec les groupes et le nom pour left join----- response_df <- data.frame( name = response$name, + name2 = response$path, #name2 car si le projet à changé de nom alors la jointure ne se fait plus par le nom mais par le passage d'origine ce qui corrige grandement le manque d'information groupe = response$namespace$path ) # Joindre les deux jeux de données all_data_forge <- all_data_forge %>% - left_join(response_df, by = c("project_name" = "name")) - -# sauvegarde du jeu de donnée ----- + left_join(response_df, by = c("project_name" = "name")) # Faire un premier left_join() sur la colonne name +all_data_forge <- all_data_forge %>% # Compléter les lignes non appariées avec un second left_join() sur la colonne name2 + left_join( + response_df %>% + select(name2, groupe), # On ne conserve que les colonnes utiles + by = c("project_name" = "name2"), + na_matches = "never" # Empêche l'association des NA + ) %>% + mutate(groupe = coalesce(groupe.x, groupe.y)) %>% # Priorité au 1er join + select(-groupe.x, -groupe.y) # Nettoyage des colonnes temporaires + +# sauvegarde du jeu de donnée----- save(all_data_forge, file = "gitlab_forge.RData") -- GitLab