在私有 github 文件夹中获取 R 文件

tho*_*mas 3 authentication r github devtools

我希望在私人 github 文件夹中获取一些 R 脚本,并通过 R 使其在某些环境中可用。

当使用公共 github 文件夹时,这两个命令都可以完成这项工作:get_URL 和 source_url(来自 devtools)。

然而,当文件夹是私有的并且需要身份验证时,事情会变得复杂。

有没有办法实现这一点,并将登录详细信息放入这些函数中,如果需要进行一些 github 身份验证,这些函数会自动传递用户名和密码?

感谢是提前,

塔马斯

Eth*_*ker 5

TL;DR:这是可能的,请参阅下面的代码。


为了供任何人将来使用,这里有一种从私人 Github 存储库获取 R 脚本的方法,使用httr,也可以选择使用devtools

我进行了足够多的搜索,找到了解决方案的各个部分,然后将它们全部缝合在一起。因此,功劳归于多个其他线程和网站。

一些来源在这里这里这里

见下面的代码:

library(httr)

# Source R script from Github
script <-
  GET(
    url = "https://api.github.com/repos/{user_name}/{repo_name}/contents/{script_name}.R",
    authenticate({github_email}, {github_personal_access_token}),     # Instead of PAT, could use password
    accept("application/vnd.github.v3.raw")
  ) %>%
  content(as = "text")

# Evaluate and parse to global environment
eval(parse(text = script))
Run Code Online (Sandbox Code Playgroud)

这可能仅适用于您拥有的私人存储库。我不确定它是否适用于与您共享的私人仓库。

请参阅此链接以创建 Github 个人访问令牌 (PAT)。如果需要,您还可以将其保存为 R 中的环境变量。 devtools::github_pat()在这里很有用。

您的电子邮件和 PAT(或密码)都需要用引号引起来。