R: 如何从私有 GitHub 仓库的特定分支下载单个文件?
R: How to download single file from specific branch of private GitHub repo?
如何从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)
但效果不佳。
我错过了什么?
谢谢!
您可以像这样在 R 中使用 curl 来包含身份验证 header 和所需文件的路径:
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)
如何从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)
但效果不佳。
我错过了什么? 谢谢!
您可以像这样在 R 中使用 curl 来包含身份验证 header 和所需文件的路径:
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)