Instalowanie niepublicznych pakietów z Gitlab przy użyciu devtools:: install git

Moja instytucja niedawno zainstalowała dla nas GitLab. Wymyśliłem jak zainstalować pakiety R z serwera GitLab używając devtools::install_git i działa tak długo, jak projekt jest publiczny.

#* When modeltable project has Public status
devtools::install_git('https://mini-me2.lerner.ccf.org/nutterb/modeltable.git')

Jednakże, jeśli mam pakiet, który jest wymieniony jako "wewnętrzny" lub "prywatny", nie mogę zainstalować pakietu bez jakiejś formy uwierzytelniania. Jak na razie Nie wiem, jak przekazać uwierzytelnianie za pośrednictwem adresu URL. Czy ktoś ma doświadczenie z pobieraniem pakietów z 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.
Author: Benjamin, 2014-12-05

3 answers

Możesz spróbować kombinacji pakietów devtools i getPass.

Https://github.com/wrathematics/getPass

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

Gdzie uname jest twoją Gitlab nazwą użytkownika.

 11
Author: jsta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-19 12:21:52

Gorąco polecam przejście na trasę SSH, a poniżej działa do tego. Okazało się, że przejście do SSH było łatwe, szczególnie z R i RStudio. Używam systemu Windows w poniższym przykładzie. Edycje kodu, których używam w praktyce, są pisane wielkimi literami.

creds = git2r::cred_ssh_key("C:\\Users\\MYSELF\\.ssh\\id_rsa.pub",
                            "C:\\Users\\MYSELF\\.ssh\\id_rsa")
devtools::install_git("[email protected]:GITLABGROUP/PACKAGE.git",
                      credentials = creds)

Dwa szybkie dodatkowe komentarze:

  • git2r jest importowany z devtools, nie powinieneś instalować go osobno.
  • również nie sądzę, że należy o tym wspominać, ale hasła w tekście jawnym w skrypcie to bardzo zły pomysł.
 15
Author: Rafael Zayas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 03:12:13

Per Ciro ' s comment, authenticating using

https://user:[email protected]/user/repo.git
Wystarczy. Więc całkowite wywołanie będzie
devtools::install_git('https://user:[email protected]/nutterb/modeltable.git')

Należy pamiętać, że podanie nazwy użytkownika i hasła w ten sposób może mieć problemy z bezpieczeństwem. Nie jestem do końca wykształcony w tych sprawach. Działa to wystarczająco dobrze dla moich celów, ponieważ jestem uwierzytelniony w sieci mojej firmy, aby nawet zobaczyć Serwer GitLab.

 4
Author: Benjamin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-05 17:08:49