在专用 github 文件夹中获取 R 文件



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

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

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

有没有办法完成此操作并将登录详细信息放在这些功能中,如果需要一些 github 自动化来继续前进,这些功能将自动传递用户名和密码?

感谢是前进,

塔马斯

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))

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

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

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

感谢伊森和其他来源,我可以解决这个问题。

在 GitHub
  1. 上生成您的个人令牌
    1.1 转到 GitHub
    2.1 在右上角转到"设置" 2.2 然后在左侧转到"开发人员设置"2.3 选择"个人访问令牌"选项2.4 选择"生成新令牌">



    选项2.5 复制您的个人令牌
  2. 在您的主目录上,请按照以下步骤
    2.1 创建文件 。伦维隆
macbook@user:~$ touch .Reviron

在此文件上,像这样写下您的个人令牌:

macbook@user:~$ nano .Reviron
GITHUB_PAT=YOUR PERSONAL TOKEN
  1. 现在在 R 上,您可以检查您的个人令牌是否已保存:
Sys.getenv("GITHUB_PAT")

您也可以使用以下命令在 R 上编辑您的令牌:

usethis::edit_r_environ()

不要忘记重新启动 R 以保存更改。

3.最后在 R 上,这些是将从私有存储库加载数据的行代码

library(httr)
req <- content(GET(
"https://api.github.com/repos/you_group/your_repository/contents/your_path_to your_doc/df_test.Rdata",
add_headers(Authorization = "token YOUR_TOKEN")
), as = "parsed")
tmp <- tempfile()
r1 <- GET(req$download_url, write_disk(tmp))
load(tmp)

最新更新