Installation de paquets non publics à partir de Gitlab en utilisant devtools:: install git
Mon institution a récemment installé GitLab pour nous. J'ai compris comment installer les paquets R à partir du serveur GitLab en utilisant devtools::install_git
et cela fonctionne tant que le projet est public.
#* When modeltable project has Public status
devtools::install_git('https://mini-me2.lerner.ccf.org/nutterb/modeltable.git')
Cependant, si j'ai un paquet répertorié comme "interne" ou "Privé", Je ne peux pas installer le paquet sans une certaine forme d'authentification. Pour l'instant, je n'ai pas compris comment passer l'authentification via L'URL. Quelqu'un a une expérience avec le téléchargement des paquets de GitLab?
#* After changing the 'modeltable' project to Private status
devtools::install_git('https://mini-me2.lerner.ccf.org/nutterb/modeltable.git')
Preparing installation of modeltable using the Git-URL: https://mini-me2.lerner.ccf.org/nutterb/modeltable.git
'/usr/bin/git'clone --depth 1 --no-hardlinks https://mini-me2.lerner.ccf.org/nutterb/modeltable.git /tmp/Rtmp5aj1cU/file24493dc03a32
Error: There seems to be a problem retrieving this Git-URL.
3 réponses
Vous pouvez essayer une combinaison de la devtools
et getPass
paquets.
Https://github.com/wrathematics/getPass
devtools::install_git(
"https://gitlab.com/foo/bar.git",
credentials = git2r::cred_user_pass("uname", getPass::getPass())
)
Où uname
est votre nom d'utilisateur Gitlab
.
Je recommande fortement d'aller sur la route SSH, et ce qui suit fonctionne pour cela. J'ai trouvé que faire le saut vers SSH était facile, surtout avec R et RStudio. Je suis à l'aide de Windows dans l'exemple ci-dessous. Les modifications du code que j'utilise dans la pratique sont en majuscules.
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)
Deux commentaires supplémentaires rapides:
- git2r est importé avec devtools, vous ne devriez pas avoir besoin de l'installer séparément.
- Aussi, je ne pense pas que cela devrait avoir besoin de mentionner, mais les mots de passe en clair dans votre script sont un très mauvaise idée.
Commentaire de Ciro, authentifiant en utilisant
https://user:password@domain.com/user/repo.git
Fait l'affaire. Donc, l'appel complet serait
devtools::install_git('https://user:password@mini-me2.lerner.ccf.org/nutterb/modeltable.git')
Veuillez noter que le passage du nom d'utilisateur et du mot de passe peut poser des problèmes de sécurité. Je ne suis pas complètement éduqué sur ces préoccupations. Cela fonctionne assez bien pour mes besoins car je suis authentifié sur le réseau de mon entreprise pour voir même le serveur GitLab.