From a4fdc0f454cd4fbe9b3cc038b267642b33fe85d6 Mon Sep 17 00:00:00 2001 From: Juliette Engelaere-Lefebvre <juliette.engelaere@developpement-durable.gouv.fr> Date: Tue, 5 Oct 2021 13:39:52 +0200 Subject: [PATCH] update exemples pour tout passer sur public.public --- DESCRIPTION | 1 + R/commenter_champs.R | 12 ++++++------ R/commenter_table.R | 6 +++--- R/get_data.R | 4 ++-- R/post_data.R | 2 +- R/set_shema_rights.R | 4 ++-- README.Rmd | 12 ++++++------ README.md | 8 ++++---- dev_history.R | 1 + man/commenter_champs.Rd | 4 ++-- man/commenter_schema.Rd | 7 +------ man/commenter_table.Rd | 4 ++-- man/get_cols_comment.Rd | 2 +- man/get_table_comment.Rd | 2 +- man/get_table_comments.Rd | 2 +- man/importer_data.Rd | 4 ++-- man/post_dico_attr.Rd | 2 +- man/poster_data.Rd | 2 +- man/set_schema_rights.Rd | 6 +++--- pkgdown/favicon/apple-touch-icon-120x120.png | Bin 7875 -> 7875 bytes pkgdown/favicon/apple-touch-icon-152x152.png | Bin 10679 -> 10679 bytes pkgdown/favicon/apple-touch-icon-180x180.png | Bin 13324 -> 13324 bytes pkgdown/favicon/apple-touch-icon-60x60.png | Bin 3296 -> 3296 bytes pkgdown/favicon/apple-touch-icon-76x76.png | Bin 4340 -> 4340 bytes pkgdown/favicon/apple-touch-icon.png | Bin 13324 -> 13324 bytes pkgdown/favicon/favicon-16x16.png | Bin 1029 -> 1029 bytes pkgdown/favicon/favicon-32x32.png | Bin 1859 -> 1859 bytes 27 files changed, 41 insertions(+), 44 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a97c251..6ada618 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -37,3 +37,4 @@ Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) RoxygenNote: 7.1.1 +URL:https://dreal-datalab.gitlab.io/datalibaba/index.html, https://gitlab.com/dreal-datalab/datalibaba diff --git a/R/commenter_champs.R b/R/commenter_champs.R index 3d7a598..6837ee9 100644 --- a/R/commenter_champs.R +++ b/R/commenter_champs.R @@ -20,10 +20,10 @@ #' \dontrun{ #' commenter_champs(comment = "Je suis un commentaire ultra important sur la variable 'Species'.", #' var = "Species", table = "test_iris", -#' schema = "public", db = "production", user = "does") +#' schema = "public", db = "public", user = "does") #' } -commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = NULL, db = "production", user = "does", server = NULL) { +commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db = db, user = user, server = server) @@ -78,7 +78,7 @@ commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = #' -post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "production", user = "does", server = NULL) { +post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db = db, user = user, server = server) @@ -138,7 +138,7 @@ post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "produ #' @importFrom rlang .data #' -get_table_comment <- function(table = NULL, schema = NULL, db = "production", user = "does", server = NULL) { +get_table_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db = db, user = user, server = server) @@ -177,7 +177,7 @@ get_table_comment <- function(table = NULL, schema = NULL, db = "production", us #' @importFrom dplyr filter distinct #' @importFrom rlang .data -get_cols_comment <- function(table = NULL, schema = NULL, db = "production", user = "does", server = NULL) { +get_cols_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db = db, user = user, server = server) @@ -216,7 +216,7 @@ get_cols_comment <- function(table = NULL, schema = NULL, db = "production", use #' get_table_comments(table = "test_iris", schema = "public", db = "public", #' user = "does", server = "localhost") #'} -get_table_comments <- function(table = NULL, schema = NULL, db = "production", user = "does", server = NULL) { +get_table_comments <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db = db, user = user, server = server) diff --git a/R/commenter_table.R b/R/commenter_table.R index fdd7dac..3e08b76 100644 --- a/R/commenter_table.R +++ b/R/commenter_table.R @@ -16,10 +16,10 @@ #' @examples #' \dontrun{ #' commenter_table(comment = "Je suis un commentaire important.", table = "test_iris", -#' schema = "public", db = "production", user = "does") +#' schema = "public", db = "public", user = "does") #' } -commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "production", user = "does") { +commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "public", user = "does") { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db, user) @@ -55,7 +55,7 @@ commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "p #' @importFrom rpostgis dbComment #' @return NULL #' @export -commenter_schema <- function(comment = NULL, schema = NULL, db = "production", user = "does") { +commenter_schema <- function(comment = NULL, schema = NULL, db = "public", user = "does") { # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") con <- connect_to_db(db, user) diff --git a/R/get_data.R b/R/get_data.R index 9de25aa..b7def29 100644 --- a/R/get_data.R +++ b/R/get_data.R @@ -68,12 +68,12 @@ get_data_dbi <- function(con = NULL, #' #' @examples #' \dontrun{ -#' importer_data(table = "test_iris", schema = "zonages_habitat", db = "public", user = "does") +#' importer_data(table = "test_iris", schema = "public", db = "public", user = "does") #' } #' @source {rpostgis} http://mablab.org/rpostgis/ -importer_data <- function(table = NULL, schema = NULL, db = "production", server = NULL, user = "does") { +importer_data <- function(table = NULL, schema = NULL, db = "public", server = NULL, user = "does") { attempt::stop_if(table, is.null, msg = "l'argument table n'est pas renseign\u00e9") attempt::stop_if(schema, is.null, msg = "l'argument schema n'est pas renseign\u00e9") attempt::stop_if(db, is.null, msg = "l'argument db n'est pas renseign\u00e9") diff --git a/R/post_data.R b/R/post_data.R index e5af9f7..74971a9 100644 --- a/R/post_data.R +++ b/R/post_data.R @@ -105,7 +105,7 @@ poster_data <- function(data = NULL, schema = NULL, pk = NULL, post_row_name = FALSE, - db = "production", + db = "public", overwrite = FALSE, droits_schema = TRUE, user = "does", diff --git a/R/set_shema_rights.R b/R/set_shema_rights.R index a6bd57c..c4b5e34 100644 --- a/R/set_shema_rights.R +++ b/R/set_shema_rights.R @@ -20,10 +20,10 @@ #' #' @examples #' \dontrun{ -#' set_schema_rights(schema = "zonages_habitat", table = "opah_r52", db = "production", user = "does") +#' set_schema_rights(schema = "public", table = "opah_r52", db = "public", user = "does") #' } -set_schema_rights <- function(schema = "zonages_habitat", table = NULL, con = NULL, db = "production", user = "does", server = NULL) { +set_schema_rights <- function(schema = "public", table = NULL, con = NULL, db = "public", user = "does", server = NULL) { connexion <- con attempt::stop_if_all(c(connexion, db, user), is.null, msg = "con, db et user ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") attempt::stop_if_all(c(connexion, db), is.null, msg = "con et db ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") diff --git a/README.Rmd b/README.Rmd index ab3963b..8c8a7bb 100644 --- a/README.Rmd +++ b/README.Rmd @@ -49,7 +49,7 @@ check_server_renviron() con sera utilisé ensuite sur l'ensemble des autres fonctions pour dialoguer avec le serveur de base de données. ```{r, eval=FALSE} -con <- connect_to_db(db="datamart", user="does") +con <- connect_to_db(db = "datamart", user = "does") ``` ### Lister les schémas @@ -60,7 +60,7 @@ list_schemas(con) ### Lister les tables d'un schéma -Ici on liste les table du schéma public +Ici on liste les table du schéma "public" ```{r, eval=FALSE} list_tables(con, "public") @@ -85,7 +85,7 @@ La fonction `poster_data()` se veut plus complète : Le schéma spécifié en argument est créé s'il n'existe pas. ```{r, eval=FALSE} -poster_data(data = iris, table = "test_iris", schema = "zonages_habitat", db = "production", user = "does", overwrite = TRUE) +poster_data(data = iris, table = "test_iris", schema = "public", db = "public", user = "does", overwrite = TRUE) ``` ### Télécharger une table @@ -106,7 +106,7 @@ de manière à retrouver le dataframe dans l'état précis où il était avant s ```{r, eval=FALSE} -db_iris <- importer_data(table = "test_iris", schema = "zonages_habitat", db = "production", user = "does", overwrite = TRUE) +db_iris <- importer_data(table = "test_iris", schema = "public", db = "public", user = "does", overwrite = TRUE) ``` ### Poster des métadonnées en commentaires @@ -115,7 +115,7 @@ On peut commenter les tables chargées sur le SGBD depuis RStudio : ```{r, eval=FALSE} commenter_table(comment = "Je suis un commentaire important sur la table test_iris.", table = "test_iris", - schema = "public", db = "production", user = "does") + schema = "public", db = "public", user = "does") ``` En dehors des informations spécifiées au niveau de l'argument _comment_, la fonction ajoute le nom de l'auteur et la date du commentaire. @@ -127,5 +127,5 @@ Ce dataframe peut comprendre autant de lignes que d'attributs que l'on souhaite ```{r, eval=FALSE} dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("ceci est le libellé descriptif de", names(iris))) -post_dico_attr(dico = dico_iris, table = "test_iris", schema = "zonages_habitat", db = "production", user = "does") +post_dico_attr(dico = dico_iris, table = "test_iris", schema = "public", db = "public", user = "does") ``` diff --git a/README.md b/README.md index a9813e5..00e3691 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ list_schemas(con) ### Lister les tables d’un schéma -Ici on liste les table du schéma public +Ici on liste les table du schéma "public" ``` r list_tables(con, "public") @@ -82,7 +82,7 @@ La fonction `poster_data()` se veut plus complète : Le schéma spécifié en argument est créé s’il n’existe pas. ``` r -poster_data(data = iris, table = "test_iris", schema = "zonages_habitat", db = "production", user = "does", overwrite = TRUE) +poster_data(data = iris, table = "test_iris", schema = "public", db = "production", user = "does", overwrite = TRUE) ``` ### Télécharger une table @@ -106,7 +106,7 @@ de manière à retrouver le dataframe dans l’état précis où il était avant son versement au SGBD. ``` r -db_iris <- importer_data(table = "test_iris", schema = "zonages_habitat", db = "production", user = "does", overwrite = TRUE) +db_iris <- importer_data(table = "test_iris", schema = "public", db = "production", user = "does", overwrite = TRUE) ``` ### Poster des métadonnées en commentaires @@ -135,5 +135,5 @@ d’attributs que l’on souhaite documenter. ``` r dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("ceci est le libellé descriptif de", names(iris))) -post_dico_attr(dico = dico_iris, table = "test_iris", schema = "zonages_habitat", db = "production", user = "does") +post_dico_attr(dico = dico_iris, table = "test_iris", schema = "public", db = "production", user = "does") ``` diff --git a/dev_history.R b/dev_history.R index 4027111..19d5f1f 100644 --- a/dev_history.R +++ b/dev_history.R @@ -27,4 +27,5 @@ usethis::use_package("tibble") usethis::use_package("tidyr") attachment::att_amend_desc() devtools::document() +pkgdown::build_site() devtools::check() diff --git a/man/commenter_champs.Rd b/man/commenter_champs.Rd index cf1eac0..6546b9e 100644 --- a/man/commenter_champs.Rd +++ b/man/commenter_champs.Rd @@ -9,7 +9,7 @@ commenter_champs( var = NULL, table = NULL, schema = NULL, - db = "production", + db = "public", user = "does", server = NULL ) @@ -36,6 +36,6 @@ commenter_champs : ajouter (ou remplacer) un commentaire de champ d'une table da \dontrun{ commenter_champs(comment = "Je suis un commentaire ultra important sur la variable 'Species'.", var = "Species", table = "test_iris", - schema = "public", db = "production", user = "does") + schema = "public", db = "public", user = "does") } } diff --git a/man/commenter_schema.Rd b/man/commenter_schema.Rd index 54057cf..6e6a666 100644 --- a/man/commenter_schema.Rd +++ b/man/commenter_schema.Rd @@ -4,12 +4,7 @@ \alias{commenter_schema} \title{commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD} \usage{ -commenter_schema( - comment = NULL, - schema = NULL, - db = "production", - user = "does" -) +commenter_schema(comment = NULL, schema = NULL, db = "public", user = "does") } \arguments{ \item{comment}{: le texte du commentaire a poster} diff --git a/man/commenter_table.Rd b/man/commenter_table.Rd index 2870ee1..adcac98 100644 --- a/man/commenter_table.Rd +++ b/man/commenter_table.Rd @@ -8,7 +8,7 @@ commenter_table( comment = NULL, table = NULL, schema = NULL, - db = "production", + db = "public", user = "does" ) } @@ -29,6 +29,6 @@ commenter_table : ajouter (ou remplacer) un commentaire de table dans le SGBD \examples{ \dontrun{ commenter_table(comment = "Je suis un commentaire important.", table = "test_iris", - schema = "public", db = "production", user = "does") + schema = "public", db = "public", user = "does") } } diff --git a/man/get_cols_comment.Rd b/man/get_cols_comment.Rd index b85777e..f3a570f 100644 --- a/man/get_cols_comment.Rd +++ b/man/get_cols_comment.Rd @@ -7,7 +7,7 @@ get_cols_comment( table = NULL, schema = NULL, - db = "production", + db = "public", user = "does", server = NULL ) diff --git a/man/get_table_comment.Rd b/man/get_table_comment.Rd index 098076d..900c65d 100644 --- a/man/get_table_comment.Rd +++ b/man/get_table_comment.Rd @@ -7,7 +7,7 @@ get_table_comment( table = NULL, schema = NULL, - db = "production", + db = "public", user = "does", server = NULL ) diff --git a/man/get_table_comments.Rd b/man/get_table_comments.Rd index e01be1a..601f9be 100644 --- a/man/get_table_comments.Rd +++ b/man/get_table_comments.Rd @@ -7,7 +7,7 @@ get_table_comments( table = NULL, schema = NULL, - db = "production", + db = "public", user = "does", server = NULL ) diff --git a/man/importer_data.Rd b/man/importer_data.Rd index 1b2badc..ef7776e 100644 --- a/man/importer_data.Rd +++ b/man/importer_data.Rd @@ -10,7 +10,7 @@ importer_data( table = NULL, schema = NULL, - db = "production", + db = "public", server = NULL, user = "does" ) @@ -34,6 +34,6 @@ Import d'une table a partir du serveur de donnees, fonction qui s'adapte aux typ } \examples{ \dontrun{ -importer_data(table = "test_iris", schema = "zonages_habitat", db = "public", user = "does") +importer_data(table = "test_iris", schema = "public", db = "public", user = "does") } } diff --git a/man/post_dico_attr.Rd b/man/post_dico_attr.Rd index 2832995..2fab65f 100644 --- a/man/post_dico_attr.Rd +++ b/man/post_dico_attr.Rd @@ -8,7 +8,7 @@ post_dico_attr( dico = NULL, table = NULL, schema = NULL, - db = "production", + db = "public", user = "does", server = NULL ) diff --git a/man/poster_data.Rd b/man/poster_data.Rd index 8c45826..dffa050 100644 --- a/man/poster_data.Rd +++ b/man/poster_data.Rd @@ -13,7 +13,7 @@ poster_data( schema = NULL, pk = NULL, post_row_name = FALSE, - db = "production", + db = "public", overwrite = FALSE, droits_schema = TRUE, user = "does", diff --git a/man/set_schema_rights.Rd b/man/set_schema_rights.Rd index 2e8b90e..f42f7b6 100644 --- a/man/set_schema_rights.Rd +++ b/man/set_schema_rights.Rd @@ -5,10 +5,10 @@ \title{set_schema_rights() permet d'actualiser les privileges d'une ou de toutes les tables d'un schema a partir des privileges definis au niveau du schema} \usage{ set_schema_rights( - schema = "zonages_habitat", + schema = "public", table = NULL, con = NULL, - db = "production", + db = "public", user = "does", server = NULL ) @@ -31,6 +31,6 @@ set_schema_rights() permet d'actualiser les privileges d'une ou de toutes les ta } \examples{ \dontrun{ -set_schema_rights(schema = "zonages_habitat", table = "opah_r52", db = "production", user = "does") +set_schema_rights(schema = "public", table = "opah_r52", db = "public", user = "does") } } diff --git a/pkgdown/favicon/apple-touch-icon-120x120.png b/pkgdown/favicon/apple-touch-icon-120x120.png index 4176de13246520d19559c15fbac57ba94dcce29f..e57d291339eca54e2180382db49cd91c2209bc75 100644 GIT binary patch delta 98 zcmX?Xd)RhDB_|gvx45yR>7nF}O`Woyh6cI@rXhxgRz}8FriR)E237_JlJ{>nGcYiy kmbgZgq$HN4TIJ@aWTsUz7#SED>SEK7(UfdIIYcfW0E1>5pa1{> delta 98 zcmX?Xd)RhDB_}77fQ-yx5e?3bO`Woy29~-8Mj?h~Rz?<9Mi$xz237_Ju4ha*7#J8- kOI#yLQW8s2t#b2IGSey<j0}tnb+KtMnb@;sa)?|$03S3Ok^lez diff --git a/pkgdown/favicon/apple-touch-icon-152x152.png b/pkgdown/favicon/apple-touch-icon-152x152.png index e082b9e00df0661cc8a549a4a9f644774e01ae5b..25adcd5bf6a66407910da2c444478bfbc901cc4a 100644 GIT binary patch delta 98 zcmdlUyghhAB_|gvx46mu!0-bbn`$*Y4GnY+OhXI}t&EJVOpUY+46F<cG|UgmF)%Qw kmbgZgq$HN4TIJ@aWTsUz7#SED>SEInnN_)HvWI3q0Ev7Xn*aa+ delta 98 zcmdlUyghhAB_}77fQ+23l&9*(rdkb814~^4qYy(gD<calV*_mi11kfAU7b}Q85kH; kOI#yLQW8s2t#b2IGSey<j0}tnb+KtUedUnvWDm`J09l_LPXGV_ diff --git a/pkgdown/favicon/apple-touch-icon-180x180.png b/pkgdown/favicon/apple-touch-icon-180x180.png index cae8b7bd52a2e030886942d0191191b974bedcc3..68f05dd16eca6fb58062dff6b45c68576fb7a8e5 100644 GIT binary patch delta 78 zcmeCl=*gH+$;rjaEpECZEIn*v(<LJbLjzp{(-1>LD<fkoQ)6ud11kfAK8I7QCg&JS PVwL<aTO>Alu5ms9k<J#R delta 78 zcmeCl=*gH+$;rtiAR`|oTe*2-(<LJb14~^4qYy(gD<calV?%8N11kdqnSX_@lXHwE Pu}bDHKKXO<T;qHIfDso? diff --git a/pkgdown/favicon/apple-touch-icon-60x60.png b/pkgdown/favicon/apple-touch-icon-60x60.png index 84e7cad00b4d9f403b57c9c0ba86956803efeaa6..a9ccd6916ad0dacade45a123b1b5617df920d32f 100644 GIT binary patch delta 78 zcmaDL`9N|)B_|gvx47YY>&5;Xo0f4)7#iprn1&b{S{WHznOJHY7+4t?JexJOYO({5 QBv#4k$90cQF67Av0FGi7)&Kwi delta 78 zcmaDL`9N|)B_}77fQ*z@d9TgJre)j`29~-8Mj?h~Rz?<9MrPUu237_JqM!XkCp+*+ PVwFr;_x<JMLY{m8QrQ+I diff --git a/pkgdown/favicon/apple-touch-icon-76x76.png b/pkgdown/favicon/apple-touch-icon-76x76.png index 06a14dbd5a1d1b4306a2b970411b5ff5f1a2b442..44bf2fc4ac06e788bc63baf6dcd93164f9daab74 100644 GIT binary patch delta 98 zcmeyO_(gF-B_|gvx44m+(WkE)n|ASg8XD*tn1&b{S{WHznHp#t7+4t?>|b%goPmKs lwZt`|BqgyV)hahXB{Qv(!N|bKP#2qqb6+#MC$|dZ0|4hV9s>XX delta 98 zcmeyO_(gF-B_}77fQ)o(!QNFHn|ASg8d&NY7=;*`Ss7Va8JTMv7+4t?Y;JLR$iTp$ lTH+c}l9E`GYL%Oxl9^V?U}RuqsEbX*p__kVC$|dZ0|4C39w`6- diff --git a/pkgdown/favicon/apple-touch-icon.png b/pkgdown/favicon/apple-touch-icon.png index df960e8309979edbe69f7755844e7730f52757e3..e8274f3ea16d8250b9045ccdaea948a5fc9cca23 100644 GIT binary patch delta 78 zcmeCl=*gH+$;rjaEpBEQZ}w(m(<LJbLjzp{(-1>LD<fkoQxk0i11kdq@8@4sCg&JS PVwJSo<uhaQT;qHIkQo-* delta 78 zcmeCl=*gH+$;rtiAfxc6I;3x7(<LJb14~^4qYy(gD<calV<T+?11kdqU9s#NlXHwE Pu}a2xUrw1k*Ek;lnxYoD diff --git a/pkgdown/favicon/favicon-16x16.png b/pkgdown/favicon/favicon-16x16.png index 84e1c414b9053408064f78a189826176221c45ee..e5c9428333a720cba8ac7ae65c11ce8d4be9616e 100644 GIT binary patch delta 99 zcmZqWXyw@8!o<nN$}MiW@PT&iVqYdkPeTJ;1Je*gLn|X=D^qiA0|P4qgDU=aI~f=l lR7+eVN>UO_Qmu0HQ!>*k8H@~!40W+-;0_97oji>>9{>g<8IAw| delta 99 zcmZqWXyw@8!o<nRBp{>mT5Q7f#lB38o(7h>21X%<W>!WPR>o%91_o9J1~()9Pctwu lsFt`!l%yn<q*~?Xr(~v8G8h>c8R}xwu!7}#`Q&NL`2ZBV8x#Nl diff --git a/pkgdown/favicon/favicon-32x32.png b/pkgdown/favicon/favicon-32x32.png index fc6cb31ca77caee59bcaf71d3008c3bd5f6e9fe4..0910ddc523bec8de88e66c238ceed67aa4c1e689 100644 GIT binary patch delta 100 zcmX@icbIR30t+V>E4R3n#mlPWn>AUIm^=*)bPY^H3=OS}jIB&9v<(cb3=DeQ=LIk@ mFsPQeMwFx^mZVzc=BH$)RWcYE7#Zqf)9_bH?akyXZ216EfE&aB delta 100 zcmX@icbIR30t+W6lYors9Ki*Qn>AUIm^=+Ebq$O{49%>JEUb*pwG9lc3=Hb^T<RGZ m7*tDKBT7;dOH!?J^HVa@DjAFnj0|<LY2YjVb9nL<wtN8OR2qK( -- GitLab