私有组织中的 R 包 - 如何在组织内安装私有依赖项?

Dyl*_*ell 13 r github github-actions

我们的 GitHub 组织是私有的,并且正在我们组织的多个不同存储库中开发多个私有 R 包。其中一些包依赖于我们私有组织中的其他存储库。如何设置 GitHub 操作以安装这些私有依赖项?我的描述文件目前包含:

Imports:
    MyPackageDep
Remotes:
    MyOrg/MyPackageDep
Run Code Online (Sandbox Code Playgroud)

我的 GitHub 操作的相关部分.yaml是:

  - name: Install dependencies
    run: |
      remotes::install_deps(dependencies = TRUE)
      remotes::install_cran("rcmdcheck")
    shell: Rscript {0}
Run Code Online (Sandbox Code Playgroud)

我尝试通过将我的 PAT 存储在一个文件中来遵循这篇 SO 帖子的建议.Renviron。但这不仅仍然不起作用,我仍然不确定这将如何与包的多个贡献者一起工作。请问他们都只是需要建立自己的地方GITHUB_PAT自己.Renviron

我还尝试通过在我的 GitHub 工作流程中包含以下内容来遵循此GitHub 问题的建议:

 env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

工作流仍然无法下载依赖项。

无论如何,GitHub Secrets 是否可以预先配置存储库以访问组织中的所有其他私有存储库?

Sto*_*oof 1

唯一GITHUB_TOKEN允许您访问当前存储库。您需要生成 PAT 并授予其对您组织的访问权限:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

然后将 PAT 作为机密添加到您的存储库中:

在此输入图像描述

然后在您的操作 yaml 中您可以添加:

    env:
      # This allows installation of private github repos
      GITHUB_PAT: ${{ secrets.PAT }}
Run Code Online (Sandbox Code Playgroud)

然后 r-lib/actions 应该能够访问内部存储库。