R包中的私有Bitbucket包依赖

Private Bitbucket package dependency in R package

总结

创建包时,我可以在 DESCRIPTION 文件的 Depends 列表中列出 CRAN 依赖项。 This documentation 概述了如何列出 Bitbucket 依赖项,例如。 Remotes: bitbucket::sulab/mygene.r@default.

但是,当需要身份验证才能访问存储库时,我不知道如何执行此操作。

尝试

我尝试将以下代码放入主 packagename.R 文件中。函数内容作为独立脚本顶部的片段工作正常:

.onLoad <- function(libname, pkgname) {
  otherPackageVersion <- "1.0"
  if (suppressWarnings(suppressPackageStartupMessages(require("otherPackageName", quietly = TRUE, character.only = TRUE)))) {
    if (installed.packages()[installed.packages()[,"Package"] == "otherPackageName", "Version"] != otherPackageVersion) {
      remove.packages("otherPackage")
      devtools::install_bitbucket(sprintf("bitbucketUser/otherPackageName@%s", otherPackageVersion), auth_token = Sys.getenv("BITBUCKET_PAT"))
    }
  } else {
    devtools::install_bitbucket(sprintf("bitbucketUser/otherPackageName@%s", otherPackageVersion), auth_token = Sys.getenv("BITBUCKET_PAT"))
  }
}

但是R CMD检查失败说挂了一段时间后无法加载:

checking whether package ‘packageName’ can be installed ... ERROR
Installation failed.

更多细节

我加载的 devtools 版本是 1.12.0.9000(请参阅存储在环境变量中的 this Github thread) which I installed using devtools::install_github("hadley/devtools#1220"). This allows me to install private Bitbucket R packages using an App Password,而不是以明文形式提交我的 username/password。

this(使用 Bitbucket PAT 的拉取请求)合并到 devtools 包中之前,这是不可能的。