diff --git a/R/add_team_members.R b/R/add_team_members.R index d54a454..80a1480 100644 --- a/R/add_team_members.R +++ b/R/add_team_members.R @@ -40,66 +40,3 @@ add_team_members <- function(team, members, org = "openscapes"){ } invisible(responses) } - -#' List members of a GitHub Team -#' -#' @inheritParams add_team_members -#' @param names_only Should only the team member names be returned (as a character vector; `TRUE`, the default), -#' or should all of the team member metadata be returned? -#' @param ... passed on to [gh::gh()] -#' -#' @return a character vector of team member GitHub usernames if `names_only = TRUE`, otherwise -#' a `gh_response` object containing team member information -#' @export -#' -#' @examples -#' \dontrun{ -#' list_team_members(team = "2023-superdogs-test-cohort", org = "openscapes") -#' list_team_members(team = "2023-superdogs-test-cohort", org = "openscapes", names_only = FALSE) -#' } -list_team_members <- function(team, org = "openscapes", names_only = TRUE, ...) { - check_gh_pat() - - org_teams <- list_teams(org) - - if (!team %in% org_teams) { - stop("'", team, "' is not part of the '", org, "' organization", - call. = FALSE) - } - - team_members <- gh( - "GET /orgs/{org}/teams/{team_slug}/members", - org = org, - team_slug = team, - ... - ) - - if (!names_only) return(team_members) - - vapply(team_members, `[[`, FUN.VALUE = character(1), "login") -} - -#' List teams in a GitHub organization -#' -#' @inheritParams list_team_members -#' @param names_only Should only the team names be returned (as a character vector; `TRUE`, the default), -#' or should all of the team metadata be returned? -#' -#' @return a character vector of team names if `names_only = TRUE`, otherwise -#' a `gh_response` object containing team information -#' @export -#' -#' @examples -#' \dontrun{ -#' list_teams(org = "openscapes") -#' list_teams(org = "openscapes", names_only = FALSE) -#' } -list_teams <- function(org = "openscapes", names_only = TRUE, ...) { - check_gh_pat() - - teams <- gh("GET /orgs/{org}/teams", org = org) - - if (!names_only) return(teams) - - vapply(teams, `[[`, FUN.VALUE = character(1), "name") -} diff --git a/R/list_teams.R b/R/list_teams.R new file mode 100644 index 0000000..1f12ac0 --- /dev/null +++ b/R/list_teams.R @@ -0,0 +1,62 @@ +#' List members of a GitHub Team +#' +#' @inheritParams add_team_members +#' @param names_only Should only the team member names be returned (as a character vector; `TRUE`, the default), +#' or should all of the team member metadata be returned? +#' @param ... passed on to [gh::gh()] +#' +#' @return a character vector of team member GitHub usernames if `names_only = TRUE`, otherwise +#' a `gh_response` object containing team member information +#' @export +#' +#' @examples +#' \dontrun{ +#' list_team_members(team = "2023-superdogs-test-cohort", org = "openscapes") +#' list_team_members(team = "2023-superdogs-test-cohort", org = "openscapes", names_only = FALSE) +#' } +list_team_members <- function(team, org = "openscapes", names_only = TRUE, ...) { + check_gh_pat() + + org_teams <- list_teams(org) + + if (!team %in% org_teams) { + stop("'", team, "' is not part of the '", org, "' organization", + call. = FALSE) + } + + team_members <- gh( + "GET /orgs/{org}/teams/{team_slug}/members", + org = org, + team_slug = team, + ... + ) + + if (!names_only) return(team_members) + + vapply(team_members, `[[`, FUN.VALUE = character(1), "login") +} + +#' List teams in a GitHub organization +#' +#' @inheritParams list_team_members +#' @param names_only Should only the team names be returned (as a character vector; `TRUE`, the default), +#' or should all of the team metadata be returned? +#' +#' @return a character vector of team names if `names_only = TRUE`, otherwise +#' a `gh_response` object containing team information +#' @export +#' +#' @examples +#' \dontrun{ +#' list_teams(org = "openscapes") +#' list_teams(org = "openscapes", names_only = FALSE) +#' } +list_teams <- function(org = "openscapes", names_only = TRUE, ...) { + check_gh_pat() + + teams <- gh("GET /orgs/{org}/teams", org = org) + + if (!names_only) return(teams) + + vapply(teams, `[[`, FUN.VALUE = character(1), "name") +} diff --git a/man/list_team_members.Rd b/man/list_team_members.Rd index f7a2367..2be2466 100644 --- a/man/list_team_members.Rd +++ b/man/list_team_members.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/add_team_members.R +% Please edit documentation in R/list_teams.R \name{list_team_members} \alias{list_team_members} \title{List members of a GitHub Team} diff --git a/man/list_teams.Rd b/man/list_teams.Rd index 466e54a..fc454e1 100644 --- a/man/list_teams.Rd +++ b/man/list_teams.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/add_team_members.R +% Please edit documentation in R/list_teams.R \name{list_teams} \alias{list_teams} \title{List teams in a GitHub organization}