我想从私人gitlab服务器中获取.R文件。我需要使用用户/密码的基本身份验证
我尝试了这种没有成功的指令
httr::GET("http://vpsxxxx.ovh.net/root/project/raw/9f8a404b5b33c216d366d80b7d48e34577598069/R/script.R",
authenticate("user", "password",type="basic"))
任何想法?
此致
编辑:我发现了这种方式......但我需要下载所有项目...
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 :(得分:0)
您可以使用gitlab API从存储库中获取文件。 HashMap
可以帮助您做到这一点。当前版本0.9与apiV3和V4兼容。
这应该有用(它可以在私人gitlab上用apiv3工作)
gitlabr
这将为您提供文件的角色版本。你也可以用另一种方式取回原始版本来处理它。
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")
您现在可以获取代码
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)
这是一个解决方案。我没有设法在不使用API的情况下获取文件。
知道:
*您可以使用访问令牌而不是用户名和密码
*您可以使用source(temp_file)
几种方式。它在小插图中记录。我在这里使用了两种不同的方法。
*版本1.0与v3 api不兼容。但我认为你使用v4。
如果需要更清楚的答案,请随时回复我,以便我更新此帖。