Как скачать отдельный файл из конкретная ветвь репозитория GitHub частныйиспользуя R?
Это можно легко сделать для ветки по умолчанию, например:
require(httr)
github_path = "https://api.github.com/repos/{user}/{repo}/contents/{path_to}/{file}"
github_pat = Sys.getenv("GITHUB_PAT"))
req <- content(GET(github_path,
add_headers(Authorization = paste("token", github_pat))), as = "parsed")
tmp <- tempfile()
r1 <- GET(req$download_url, write_disk(tmp))
... но я не могу понять, как это сделать для конкретной ветки.
Пытался включить название ветки в github_path
, но это не сработало (Error in handle_url(handle, url, ...)
).
Так как это легко с классическим curl
, например:
curl -s -O https://{PAT}@raw.githubusercontent.com/{user}/{repo}/{branch}/{path_to}/{file}
... Я пытался сделать это так:
tmp <- tempfile()
curl::curl_download("https://{PAT}@raw.githubusercontent.com/{user}/{repo}/{branch}/{path_to}/{file}", tmp)
Но это тоже не сработало.
Что мне не хватает? Спасибо!
Вы можете использовать curl в R, чтобы включить заголовок авторизации и путь к нужному файлу:
library(curl)
h <- new_handle(verbose = TRUE)
handle_setheaders(h,
"Authorization" = "token ghp_XXXXXXX"
)
con <- curl("https://raw.githubusercontent.com/username/repo/branch/path/file.R", handle = h)
readLines(con)