32 lines
915 B
R
32 lines
915 B
R
|
library(tidyverse)
|
||
|
contribs_all_json <- gh::gh("/repos/:owner/:repo/contributors",
|
||
|
owner = "hadley",
|
||
|
repo = "r4ds",
|
||
|
.limit = Inf
|
||
|
)
|
||
|
contribs_all <- tibble(
|
||
|
login = contribs_all_json %>% map_chr("login"),
|
||
|
n = contribs_all_json %>% map_int("contributions")
|
||
|
)
|
||
|
|
||
|
contribs_old <- read_csv("contributors.csv", col_types = list())
|
||
|
contribs_new <- contribs_all %>% anti_join(contribs_old)
|
||
|
|
||
|
# Get info for new contributors
|
||
|
needed_json <- map(
|
||
|
contribs_new$login,
|
||
|
~ gh::gh("/users/:username", username = .x)
|
||
|
)
|
||
|
info_new <- tibble(
|
||
|
login = map_chr(needed_json, "login", .default = NA),
|
||
|
name = map_chr(needed_json, "name", .default = NA),
|
||
|
blog = map_chr(needed_json, "blog", .default = NA)
|
||
|
)
|
||
|
info_old <- contribs_old %>% select(login, name, blog)
|
||
|
info_all <- bind_rows(info_old, info_new)
|
||
|
|
||
|
contribs_all <- contribs_all %>%
|
||
|
left_join(info_all) %>%
|
||
|
arrange(login)
|
||
|
write_csv(contribs_all, "contributors.csv")
|