2017-03-12 1 views
2

Ich möchte eine .R-Datei von einem privaten Gitlab Server. Ich brauche die Standardauthentifizierung mit Benutzer/PasswortQuelle R-Datei von privaten Gitlab mit grundlegenden Auth

Ich habe versucht, diese Art von Unterricht ohne Erfolg verwenden

httr::GET("http://vpsxxxx.ovh.net/root/project/raw/9f8a404b5b33c216d366d80b7d48e34577598069/R/script.R", 
authenticate("user", "password",type="basic")) 

irgendeine Idee?

Grüße

edit: Ich fand diese Art und Weise ... aber ich brauche die ganze Projekt zum Download ...

bundle <- tempfile() 
git2r::clone("http://vpsxxx.ovh.net/root/projet.git", 
      bundle, credentials=git2r::cred_user_pass("user", "password")) 
source(file.path(bundle,"R","script.R")) 
+0

Ich bin an der Lösung interessiert! Habe das gleiche Problem jetzt. Ich weiß, wie man das auf gitlab gehostete Paket mit 'install_git' installiert, aber keine Datei ausgibt. Wird sich etwas einfallen lassen, aber wenn es schon existiert, würde es helfen. – cderv

+0

Ich schaffe es, die Datei mit der gitlab-API und 'gitlabr' zu bekommen. – cderv

+0

können Sie bitte Ihren Code teilen? –

Antwort

0

Sie Gitlab API verwenden, können eine Datei aus einem Repository zu bekommen. gitlabr kann Ihnen dabei helfen. Die aktuelle Version 0.9 ist kompatibel mit apiV3 und V4.

Dies sollte funktionieren (es auf einem privaten Gitlab mit apiv3 an meinem Ende arbeiten)

library(gitlabr) 
my_gitlab <- gl_connection("https://private-gitlab.com", 
         login = "username", 
         password = "password", 
         api_version = "v4") # by default. put v3 here if needed 
my_file <- my_gitlab(gl_get_file, project = "project_name", file_path = "path/to/file") 

Dies wird Ihnen ein Zeichen Version der Datei erhalten. Sie können auch eine rohe Version erhalten, um auf andere Weise damit umzugehen.

raw <- gl_get_file(project = "project_name", 
        file_path = "file/to/path", 
        gitlab_con = my_gitlab, 
        to_char = F) 
temp_file <- tempfile() 
writeBin(raw, temp_file) 

können Sie nun den Quellcode

source(temp_file) 

Es ist eine Lösung, unter anderem. Ich habe es nicht geschafft, die Datei ohne die API zu beziehen.

dass Wissen: * Sie ein Access-Token statt Benutzernamen und Passwort können * Sie die gitlabr verschiedene Möglichkeiten nutzen können. Es ist in der Vignette dokumentiert. Ich habe hier 2 verschiedene Wege benutzt. * Version 1.0 ist nicht mit v3 api kompatibel. Aber ich denke du verwendest v4.

Fühlen Sie sich frei, um zu mir zurück, so dass ich diesen Beitrag aktualisieren, wenn eine klarere Antwort benötigen.

Verwandte Themen