具有私人 Github 依赖项的 R 包

12

我正在开发一个内部 R 包,将其存储并从 Github 安装,但它依赖于另一个在私有仓库中的 R 包。

我知道如何使用 devtools 的 Remotes: 标签指定远程依赖关系(vignette),也知道如何使用 install_github(source, PAT) 安装私有仓库。但如何同时做到这两点呢?我的想法是让服务器只安装包,并安装在 Github 上的所有依赖项。


也许可以创建一个私有的 “_存储库_”,而不是在完美工作的依赖机制周围打补丁?我们使用公共和私有的 drat 存储库... - Dirk Eddelbuettel
4
pat存储在环境变量中,使用Sys.setenv(GITHUB_PAT = pat)语句,然后devtools会自动在任何地方使用它。 - Jeroen Ooms
当然,那么我只需要在“Remotes:”中指定存储库,它就会正常安装。因为它将调用install_github(),而install_github()又会调用github_pat()来查找环境变量。你想把这个作为答案,以便我可以批准吗? - Shorpy
1
更新,看起来@Jeroen的方法应该可以工作,但似乎存在一个尚未解决的devtools错误:https://github.com/hadley/devtools/issues/1262 - Shorpy
1个回答

4

将 @jeroen 的回复放入答案格式:

将 PAT 存储在环境变量中 Sys.setenv(GITHUB_PAT = PAT) 然后 devtools/remotes 将自动在各处使用它。


当所有私有存储库都使用相同的 PAT 时,此方法有效。我想知道如何处理使用不同 PAT 的远程存储库...


我知道这是一个旧的线程,但为了明确起见 - 我将PAT存储在项目根目录下的.Renviron文件中。我是否应该将.Renviron添加到.gitignore中,因为显然我不想将PAT推送到可以看到它的存储库中。然后我像往常一样推送我的更改,GitHub操作将在安装CI依赖项时使用我.Renviron中的PAT,并因此下载我在DESCRIPTION文件的Remotes:部分中指定的私有存储库? - Dylan Russell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接