使用 httr 从私有 GitHub 存储库加载 csv 文件

jal*_*pic 3 r

我想从私有 GitHub 存储库下载 csv 文件并将其加载到当前环境。我不想简单地这样做,read_csv("raw_git_url")因为脚本将是公开的,复制/粘贴 raw_git_url 会让我留下filename.csv?token=AHh_HT3Aetc....,我不希望我的令牌号被公开。

相反,我获得了 GitHub 身份验证令牌并将其作为.Renviron文件放入我的工作目录中。

例如,我可以将文件写入磁盘/工作目录,如下所示:

library(httr)
url <- "https://raw.githubusercontent.com/username/privatereponame/master/dataname.csv"
GET(url, write_disk("mynew.csv", overwrite=TRUE))
Run Code Online (Sandbox Code Playgroud)

但我不想写副本 - 只需在当前环境中提供 csv 文件即可。我错过了一些明显的东西吗?更改write_disk....readr::read_csv命令不起作用。

我可以做一件很奇怪的事情 - 像这样访问原始内容:

x=GET(url, authenticate(Sys.getenv("GITHUB_PAT1"), ""))
enc<-stringi::stri_enc_detect(content(x, "raw"))
content(x, "text", encoding = enc[[1]]$Encoding[1])
Run Code Online (Sandbox Code Playgroud)

...然后编写一些脚本将文本转换为 csv...但这感觉太啰嗦了。

jal*_*pic 5

有时你必须提出一个问题才能找到答案:

x=GET(url, authenticate(Sys.getenv("GITHUB_PAT1"), ""))
content(x, type="text/csv")
Run Code Online (Sandbox Code Playgroud)

使用type中的参数content()设置 MIME 类型。