From 433ab78ca12abee5f0190c9dd176183a340970fd Mon Sep 17 00:00:00 2001 From: unknown <ldecicco@usgs.gov> Date: Mon, 24 Nov 2014 16:22:26 -0600 Subject: [PATCH] Updating help files. --- R/readNWISdata.r | 29 ++++++++++++++++++- R/readNWISdv.r | 35 +++++++++++++++++++++-- R/readNWISqw.r | 4 +-- R/readNWISunit.r | 55 +++++++++++++++++++++++++++++++++++- R/tabbedDataRetrievals.R | 4 +-- man/dataRetrieval-package.Rd | 4 +-- man/importRDB1.Rd | 3 +- man/importWaterML1.Rd | 39 +++++++++++++++++++++++-- man/readNWISdata.Rd | 30 +++++++++++++++++++- man/readNWISdv.Rd | 33 ++++++++++++++++++++-- man/readNWISgwl.Rd | 30 ++++++++++++++++++++ man/readNWISqw.Rd | 3 +- man/readNWISuv.Rd | 29 ++++++++++++++++++- 13 files changed, 277 insertions(+), 21 deletions(-) diff --git a/R/readNWISdata.r b/R/readNWISdata.r index 62587f4f..e8f54180 100644 --- a/R/readNWISdata.r +++ b/R/readNWISdata.r @@ -7,7 +7,34 @@ #' (for groundwater levels), and "qwdata" (for water quality) #' @param \dots see \url{http://waterservices.usgs.gov/rest/Site-Service.html#Service} for a complete list of options #' @keywords data import NWIS web service -#' @return retval dataframe +#' @return A data frame with the following columns: +#' \tabular{lll}{ +#' Name \tab Type \tab Description \cr +#' agency \tab character \tab The NWIS code for the agency reporting the data\cr +#' site \tab character \tab The USGS site number \cr +#' datetime \tab POSIXct \tab The date and time of the value converted to UTC (for unit value data), \cr +#' \tab character \tab or raw character string \cr +#' tz_cd \tab character \tab The time zone code for datetime \cr +#' code \tab character \tab Any codes that qualify the corresponding value\cr +#' value \tab numeric \tab The numeric value for the parameter \cr +#' } +#' Note that code and value are repeated for the parameters requested. The names are of the form +#' X_D_P_S, where X is literal, +#' D is an option description of the parameter, +#' P is the parameter code, +#' and S is the statistic code (if applicable). +#' +#' There are also several useful attributes attached to the data frame: +#' \tabular{ll}{ +#' Name \tab Type \tab Description \cr +#' url \tab character \tab The url used to generate the data \cr +#' siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +#' variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +#' statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +#' queryTime \tab POSIXct \tab The time the data was returned \cr +#' } +#' +#' @seealso \code{\link{renameNWISColumns}}, \code{\link{importWaterML1}}, \code{\link{importRDB1}} #' @export #' @examples #' \dontrun{ diff --git a/R/readNWISdv.r b/R/readNWISdv.r index d6e0fd2b..3d42892b 100644 --- a/R/readNWISdv.r +++ b/R/readNWISdv.r @@ -9,7 +9,33 @@ #' @param startDate string starting date for data retrieval in the form YYYY-MM-DD. #' @param endDate string ending date for data retrieval in the form YYYY-MM-DD. #' @param statCd string USGS statistic code. This is usually 5 digits. Daily mean (00003) is the default. -#' @return data dataframe with agency, site, dateTime, value, and code columns +#' @return A data frame with the following columns: +#' \tabular{lll}{ +#' Name \tab Type \tab Description \cr +#' agency \tab character \tab The NWIS code for the agency reporting the data\cr +#' site \tab character \tab The USGS site number \cr +#' datetime \tab Date \tab The date of the value \cr +#' tz_cd \tab character \tab The time zone code for datetime \cr +#' code \tab character \tab Any codes that qualify the corresponding value\cr +#' value \tab numeric \tab The numeric value for the parameter \cr +#' } +#' Note that code and value are repeated for the parameters requested. The names are of the form +#' X_D_P_S, where X is literal, +#' D is an option description of the parameter, +#' P is the parameter code, +#' and S is the statistic code (if applicable). +#' +#' There are also several useful attributes attached to the data frame: +#' \tabular{ll}{ +#' Name \tab Type \tab Description \cr +#' url \tab character \tab The url used to generate the data \cr +#' siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +#' variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +#' statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +#' queryTime \tab POSIXct \tab The time the data was returned \cr +#' } +#' +#' @seealso \code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} #' @export #' @keywords data import USGS web service #' @examples @@ -17,7 +43,7 @@ #' startDate <- '2012-01-01' #' endDate <- '2012-06-30' #' pCode <- '00060' -#' \dontrun{ +#' #' rawDailyQ <- readNWISdv(siteNumber,pCode, startDate, endDate) #' rawDailyQAndTempMeanMax <- readNWISdv(siteNumber,c('00010','00060'), #' startDate, endDate, statCd=c('00001','00003')) @@ -29,7 +55,10 @@ #' names(attributes(x)) #' attr(x, "siteInfo") #' attr(x, "variableInfo") -#' } +#' +#' site <- "05212700" +#' notActive <- readNWISdv(site, "00060", "2014-01-01","2014-01-07") +#' readNWISdv <- function (siteNumber,parameterCd,startDate="",endDate="",statCd="00003"){ url <- constructNWISURL(siteNumber,parameterCd,startDate,endDate,"dv",statCd=statCd) diff --git a/R/readNWISqw.r b/R/readNWISqw.r index 8aab1216..61024475 100644 --- a/R/readNWISqw.r +++ b/R/readNWISqw.r @@ -27,13 +27,13 @@ #' startDate <- '2010-01-01' #' endDate <- '' #' pCodes <- c('34247','30234','32104','34220') -#' \dontrun{ +#' #' rawNWISqwData <- readNWISqw(siteNumber,pCodes,startDate,endDate) #' rawNWISqwDataExpandReshaped <- readNWISqw(siteNumber,pCodes, #' startDate,endDate,expanded=TRUE) #' rawNWISqwDataExpand <- readNWISqw(siteNumber,pCodes, #' startDate,endDate,expanded=TRUE,reshape=FALSE) -#' } +#' readNWISqw <- function (siteNumber,pCodes,startDate="",endDate="", expanded=FALSE,reshape=TRUE,tz=""){ diff --git a/R/readNWISunit.r b/R/readNWISunit.r index 1837a57e..17a9dadf 100644 --- a/R/readNWISunit.r +++ b/R/readNWISunit.r @@ -13,7 +13,33 @@ #' Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", #' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" #' @keywords data import USGS web service -#' @return data dataframe with agency, site, dateTime, time zone, value, and code columns +#' @return A data frame with the following columns: +#' \tabular{lll}{ +#' Name \tab Type \tab Description \cr +#' agency \tab character \tab The NWIS code for the agency reporting the data\cr +#' site \tab character \tab The USGS site number \cr +#' datetime \tab POSIXct \tab The date and time of the value converted to UTC \cr +#' tz_cd \tab character \tab The time zone code for datetime \cr +#' code \tab character \tab Any codes that qualify the corresponding value\cr +#' value \tab numeric \tab The numeric value for the parameter \cr +#' } +#' Note that code and value are repeated for the parameters requested. The names are of the form +#' X_D_P_S, where X is literal, +#' D is an option description of the parameter, +#' P is the parameter code, +#' and S is the statistic code (if applicable). +#' +#' There are also several useful attributes attached to the data frame: +#' \tabular{ll}{ +#' Name \tab Type \tab Description \cr +#' url \tab character \tab The url used to generate the data \cr +#' siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +#' variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +#' statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +#' queryTime \tab POSIXct \tab The time the data was returned \cr +#' } +#' +#' @seealso \code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} #' @export #' @examples #' siteNumber <- '05114000' @@ -121,6 +147,33 @@ readNWISmeas <- function (siteNumber,startDate="",endDate="", tz=""){ #' @param siteNumbers string USGS site number (or multiple sites). This is usually an 8 digit number #' @param startDate string starting date for data retrieval in the form YYYY-MM-DD. #' @param endDate string ending date for data retrieval in the form YYYY-MM-DD. +#' @return A data frame with the following columns: +#' \tabular{lll}{ +#' Name \tab Type \tab Description \cr +#' agency \tab character \tab The NWIS code for the agency reporting the data\cr +#' site \tab character \tab The USGS site number \cr +#' datetime \tab character \tab The date and time of the value as a character \cr +#' tz_cd \tab character \tab The time zone code for datetime \cr +#' code \tab character \tab Any codes that qualify the corresponding value\cr +#' value \tab numeric \tab The numeric value for the parameter \cr +#' } +#' Note that code and value are repeated for the parameters requested. The names are of the form +#' X_D_P_S, where X is literal, +#' D is an option description of the parameter, +#' P is the parameter code, +#' and S is the statistic code (if applicable). +#' +#' There are also several useful attributes attached to the data frame: +#' \tabular{ll}{ +#' Name \tab Type \tab Description \cr +#' url \tab character \tab The url used to generate the data \cr +#' siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +#' variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +#' statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +#' queryTime \tab POSIXct \tab The time the data was returned \cr +#' } +#' +#' @seealso \code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} #' @export #' @examples #' siteNumber <- "434400121275801" diff --git a/R/tabbedDataRetrievals.R b/R/tabbedDataRetrievals.R index 0cdd965e..94aa70f4 100644 --- a/R/tabbedDataRetrievals.R +++ b/R/tabbedDataRetrievals.R @@ -3,8 +3,8 @@ #' \tabular{ll}{ #' Package: \tab dataRetrieval\cr #' Type: \tab Package\cr -#' Version: \tab 2.0.0\cr -#' Date: \tab 2014-11-13\cr +#' Version: \tab 2.0.1\cr +#' Date: \tab 2014-11-24\cr #' License: \tab Unlimited for this package, dependencies have more restrictive licensing.\cr #' Copyright: \tab This software is in the public domain because it contains materials #' that originally came from the United States Geological Survey, an agency of diff --git a/man/dataRetrieval-package.Rd b/man/dataRetrieval-package.Rd index cb89c066..7bd351b3 100644 --- a/man/dataRetrieval-package.Rd +++ b/man/dataRetrieval-package.Rd @@ -7,8 +7,8 @@ \tabular{ll}{ Package: \tab dataRetrieval\cr Type: \tab Package\cr -Version: \tab 2.0.0\cr -Date: \tab 2014-11-13\cr +Version: \tab 2.0.1\cr +Date: \tab 2014-11-24\cr License: \tab Unlimited for this package, dependencies have more restrictive licensing.\cr Copyright: \tab This software is in the public domain because it contains materials that originally came from the United States Geological Survey, an agency of diff --git a/man/importRDB1.Rd b/man/importRDB1.Rd index 44cdbc47..5c2f9b37 100644 --- a/man/importRDB1.Rd +++ b/man/importRDB1.Rd @@ -35,7 +35,7 @@ startDate <- "2012-09-01" endDate <- "2012-10-01" offering <- "00003" property <- "00060" -\dontrun{ + obs_url <- constructNWISURL(siteNumber,property, startDate,endDate,"dv",format="tsv") data <- importRDB1(obs_url) @@ -60,5 +60,4 @@ fileName <- "RDB1Example.txt" fullPath <- file.path(filePath, fileName) importUserRDB <- importRDB1(fullPath) } -} diff --git a/man/importWaterML1.Rd b/man/importWaterML1.Rd index ec3a0ba9..43881d4e 100644 --- a/man/importWaterML1.Rd +++ b/man/importWaterML1.Rd @@ -16,7 +16,32 @@ Possible values to provide are "America/New_York","America/Chicago", "America/De "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} } \value{ -mergedDF a data frame containing columns agency, site, dateTime, values, and remark codes for all requested combinations +A data frame with the following columns: +\tabular{lll}{ +Name \tab Type \tab Description \cr +agency \tab character \tab The NWIS code for the agency reporting the data\cr +site \tab character \tab The USGS site number \cr +datetime \tab POSIXct \tab The date and time of the value converted to UTC (if asDateTime = TRUE), \cr +\tab character \tab or raw character string (if asDateTime = FALSE) \cr +tz_cd \tab character \tab The time zone code for datetime \cr +code \tab character \tab Any codes that qualify the corresponding value\cr +value \tab numeric \tab The numeric value for the parameter \cr +} +Note that code and value are repeated for the parameters requested. The names are of the form +X_D_P_S, where X is literal, +D is an option description of the parameter, +P is the parameter code, +and S is the statistic code (if applicable). + +There are also several useful attributes attached to the data frame: +\tabular{ll}{ +Name \tab Type \tab Description \cr +url \tab character \tab The url used to generate the data \cr +siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +queryTime \tab POSIXct \tab The time the data was returned \cr +} } \description{ This function accepts a url parameter that already contains the desired @@ -29,7 +54,7 @@ endDate <- "2012-10-01" offering <- '00003' property <- '00060' obs_url <- constructNWISURL(siteNumber,property,startDate,endDate,'dv') -\dontrun{ + data <- importWaterML1(obs_url,TRUE) groundWaterSite <- "431049071324301" @@ -57,6 +82,16 @@ data <- renameNWISColumns(data) names(attributes(data)) attr(data, "url") attr(data, "disclaimer") + +inactiveSite <- "05212700" +inactiveSite <- constructNWISURL(inactiveSite, "00060", "2014-01-01", "2014-01-10",'dv') +inactiveSite <- importWaterML1(inactiveSite) + +inactiveAndAcitive <- c("07334200","05212700") +inactiveAndAcitive <- constructNWISURL(inactiveAndAcitive, "00060", "2014-01-01", "2014-01-10",'dv') +inactiveAndAcitive <- importWaterML1(inactiveAndAcitive) } +\seealso{ +\code{\link{renameNWISColumns}} } diff --git a/man/readNWISdata.Rd b/man/readNWISdata.Rd index 2e4381e6..395d7d32 100644 --- a/man/readNWISdata.Rd +++ b/man/readNWISdata.Rd @@ -15,7 +15,32 @@ readNWISdata(service = "dv", ...) \item{\dots}{see \url{http://waterservices.usgs.gov/rest/Site-Service.html#Service} for a complete list of options} } \value{ -retval dataframe +A data frame with the following columns: +\tabular{lll}{ +Name \tab Type \tab Description \cr +agency \tab character \tab The NWIS code for the agency reporting the data\cr +site \tab character \tab The USGS site number \cr +datetime \tab POSIXct \tab The date and time of the value converted to UTC (for unit value data), \cr +\tab character \tab or raw character string \cr +tz_cd \tab character \tab The time zone code for datetime \cr +code \tab character \tab Any codes that qualify the corresponding value\cr +value \tab numeric \tab The numeric value for the parameter \cr +} +Note that code and value are repeated for the parameters requested. The names are of the form +X_D_P_S, where X is literal, +D is an option description of the parameter, +P is the parameter code, +and S is the statistic code (if applicable). + +There are also several useful attributes attached to the data frame: +\tabular{ll}{ +Name \tab Type \tab Description \cr +url \tab character \tab The url used to generate the data \cr +siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +queryTime \tab POSIXct \tab The time the data was returned \cr +} } \description{ Returns data from the NWIS web service. @@ -32,6 +57,9 @@ multiSite <- readNWISdata(sites=c("04025000","04072150"), service="iv", paramete multiSite <- readNWISdata(sites=c("04025500","040263491"), service="iv", parameterCd="00060") } } +\seealso{ +\code{\link{renameNWISColumns}}, \code{\link{importWaterML1}}, \code{\link{importRDB1}} +} \keyword{NWIS} \keyword{data} \keyword{import} diff --git a/man/readNWISdv.Rd b/man/readNWISdv.Rd index 0028fa92..fbdf2292 100644 --- a/man/readNWISdv.Rd +++ b/man/readNWISdv.Rd @@ -22,7 +22,31 @@ readNWISdv(siteNumber, parameterCd, startDate = "", endDate = "", \item{statCd}{string USGS statistic code. This is usually 5 digits. Daily mean (00003) is the default.} } \value{ -data dataframe with agency, site, dateTime, value, and code columns +A data frame with the following columns: +\tabular{lll}{ +Name \tab Type \tab Description \cr +agency \tab character \tab The NWIS code for the agency reporting the data\cr +site \tab character \tab The USGS site number \cr +datetime \tab Date \tab The date of the value \cr +tz_cd \tab character \tab The time zone code for datetime \cr +code \tab character \tab Any codes that qualify the corresponding value\cr +value \tab numeric \tab The numeric value for the parameter \cr +} +Note that code and value are repeated for the parameters requested. The names are of the form +X_D_P_S, where X is literal, +D is an option description of the parameter, +P is the parameter code, +and S is the statistic code (if applicable). + +There are also several useful attributes attached to the data frame: +\tabular{ll}{ +Name \tab Type \tab Description \cr +url \tab character \tab The url used to generate the data \cr +siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +queryTime \tab POSIXct \tab The time the data was returned \cr +} } \description{ Imports data from NWIS web service. This function gets the data from here: \url{http://waterservices.usgs.gov/} @@ -34,7 +58,7 @@ siteNumber <- '04085427' startDate <- '2012-01-01' endDate <- '2012-06-30' pCode <- '00060' -\dontrun{ + rawDailyQ <- readNWISdv(siteNumber,pCode, startDate, endDate) rawDailyQAndTempMeanMax <- readNWISdv(siteNumber,c('00010','00060'), startDate, endDate, statCd=c('00001','00003')) @@ -46,7 +70,12 @@ x <- readNWISdv("10258500","00060", "2014-09-08", "2014-09-14") names(attributes(x)) attr(x, "siteInfo") attr(x, "variableInfo") + +site <- "05212700" +notActive <- readNWISdv(site, "00060", "2014-01-01","2014-01-07") } +\seealso{ +\code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} } \keyword{USGS} \keyword{data} diff --git a/man/readNWISgwl.Rd b/man/readNWISgwl.Rd index 4ee53c4e..ed206b12 100644 --- a/man/readNWISgwl.Rd +++ b/man/readNWISgwl.Rd @@ -12,6 +12,33 @@ readNWISgwl(siteNumbers, startDate = "", endDate = "") \item{endDate}{string ending date for data retrieval in the form YYYY-MM-DD.} } +\value{ +A data frame with the following columns: +\tabular{lll}{ +Name \tab Type \tab Description \cr +agency \tab character \tab The NWIS code for the agency reporting the data\cr +site \tab character \tab The USGS site number \cr +datetime \tab character \tab The date and time of the value as a character \cr +tz_cd \tab character \tab The time zone code for datetime \cr +code \tab character \tab Any codes that qualify the corresponding value\cr +value \tab numeric \tab The numeric value for the parameter \cr +} +Note that code and value are repeated for the parameters requested. The names are of the form +X_D_P_S, where X is literal, +D is an option description of the parameter, +P is the parameter code, +and S is the statistic code (if applicable). + +There are also several useful attributes attached to the data frame: +\tabular{ll}{ +Name \tab Type \tab Description \cr +url \tab character \tab The url used to generate the data \cr +siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +queryTime \tab POSIXct \tab The time the data was returned \cr +} +} \description{ Reads groundwater level measurements from NWISweb. Mixed date/times come back from the service depending on the year that the data was collected. @@ -22,4 +49,7 @@ data <- readNWISgwl(siteNumber, '','') sites <- c("434400121275801", "375907091432201") data2 <- readNWISgwl(sites, '','') } +\seealso{ +\code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} +} diff --git a/man/readNWISqw.Rd b/man/readNWISqw.Rd index e1c5a257..918dcaf2 100644 --- a/man/readNWISqw.Rd +++ b/man/readNWISqw.Rd @@ -43,13 +43,12 @@ siteNumber <- c('04024430','04024000') startDate <- '2010-01-01' endDate <- '' pCodes <- c('34247','30234','32104','34220') -\dontrun{ + rawNWISqwData <- readNWISqw(siteNumber,pCodes,startDate,endDate) rawNWISqwDataExpandReshaped <- readNWISqw(siteNumber,pCodes, startDate,endDate,expanded=TRUE) rawNWISqwDataExpand <- readNWISqw(siteNumber,pCodes, startDate,endDate,expanded=TRUE,reshape=FALSE) - } } \seealso{ \code{\link{readWQPdata}}, \code{\link{whatWQPsites}}, diff --git a/man/readNWISuv.Rd b/man/readNWISuv.Rd index 1244ce3a..10bbbce1 100644 --- a/man/readNWISuv.Rd +++ b/man/readNWISuv.Rd @@ -25,7 +25,31 @@ Possible values to provide are "America/New_York","America/Chicago", "America/De "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} } \value{ -data dataframe with agency, site, dateTime, time zone, value, and code columns +A data frame with the following columns: +\tabular{lll}{ +Name \tab Type \tab Description \cr +agency \tab character \tab The NWIS code for the agency reporting the data\cr +site \tab character \tab The USGS site number \cr +datetime \tab POSIXct \tab The date and time of the value converted to UTC \cr +tz_cd \tab character \tab The time zone code for datetime \cr +code \tab character \tab Any codes that qualify the corresponding value\cr +value \tab numeric \tab The numeric value for the parameter \cr +} +Note that code and value are repeated for the parameters requested. The names are of the form +X_D_P_S, where X is literal, +D is an option description of the parameter, +P is the parameter code, +and S is the statistic code (if applicable). + +There are also several useful attributes attached to the data frame: +\tabular{ll}{ +Name \tab Type \tab Description \cr +url \tab character \tab The url used to generate the data \cr +siteInfo \tab data.frame \tab A data frame containing information on the requested sites \cr +variableInfo \tab data.frame \tab A data frame containing information on the requested parameters \cr +statisticInfo \tab data.frame \tab A data frame containing information on the requested statistics on the data \cr +queryTime \tab POSIXct \tab The time the data was returned \cr +} } \description{ Imports data from NWIS web service. This function gets the data from here: \url{http://waterservices.usgs.gov/} @@ -44,6 +68,9 @@ timeZoneChange <- readNWISuv(c('04024430','04024000'),parameterCd, "2013-11-03","2013-11-03") firstSite <- timeZoneChange[timeZoneChange$site_no == '04024430',] } +\seealso{ +\code{\link{renameNWISColumns}}, \code{\link{importWaterML1}} +} \keyword{USGS} \keyword{data} \keyword{import} -- GitLab