R包中的私有Bitbucket包依赖

时间:2017-01-06 22:50:08

标签: r bitbucket devtools

摘要

创建包时,我可以在Depends文件的DESCRIPTION列表中列出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),我使用devtools::install_github("hadley/devtools#1220")安装了该版本。这允许我使用存储在环境变量中的App Password安装私有Bitbucket R包,而不是以明文提交我的用户名/密码。

1 个答案:

答案 0 :(得分:0)

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