Installing non-public packages from Gitlab using devtools::install_git

后端 未结 3 507
余生分开走
余生分开走 2020-12-08 04:49

My institution recently installed GitLab for us. I\'ve figured out how to install R packages from the GitLab server using devtools::install_git and it works as

相关标签:
3条回答
  • 2020-12-08 04:56

    You could try a combination of the devtools and getPass packages.

    https://github.com/wrathematics/getPass

    devtools::install_git(
      "https://gitlab.com/foo/bar.git", 
      credentials = git2r::cred_user_pass("uname", getPass::getPass())
    )
    

    Where uname is your Gitlab user name.

    0 讨论(0)
  • 2020-12-08 05:04

    I'd highly recommend going the SSH route, and the below works for that. I found making the leap to SSH was easy, especially with R and RStudio. I'm using Windows in the below example. Edits from code I use in practice are in all caps.

    creds = git2r::cred_ssh_key("C:\\Users\\MYSELF\\.ssh\\id_rsa.pub",
                                "C:\\Users\\MYSELF\\.ssh\\id_rsa")
    devtools::install_git("git@gitlab.WORKDOMAIN.com:GITLABGROUP/PACKAGE.git",
                          credentials = creds)
    

    Two quick additional comments:

    • git2r is imported with devtools, you shouldn't need to install it separately.
    • Also I don't think this should need mentioning, but passwords in plaintext in your script is a very bad idea.
    0 讨论(0)
  • 2020-12-08 05:07

    Per Ciro's comment, authenticating using

    https://user:password@domain.com/user/repo.git
    

    does the trick. So the complete call would be

    devtools::install_git('https://user:password@mini-me2.lerner.ccf.org/nutterb/modeltable.git')
    

    Please note that there may be security concerns with passing the user name and password this way. I'm not completely educated on those concerns. This works well enough for my purposes because I am authenticated on my company's network to even see the GitLab server.

    0 讨论(0)
提交回复
热议问题