我需要从私人GitLab下载文件。
我已经看过这篇文章了: Download from a GitLab private repository
但是我无法使用API,因为我没有下载文件所需的ID。 事实上,我需要通过他们的HTTP原始网址下载它们,例如:
http://gitlab.private.com/group/repo_name/raw/master/diagrams/test.plantuml
由于我打开了身份验证,每次尝试以编程方式访问某些内容时,都会重定向到登录页面。 我编写了一个Python脚本来模仿登录过程,获取authenticity_token和_gitlab_session cookie,但仍然无效。
如果我在成功登录后从我的Chrome浏览器中获取会话cookie,那么一切都像Python上的魅力(从文件下载角度来看),甚至卷曲。
所以,任何帮助都是为了获得这个cookie,这是一种不同的方法。要使用API,我首先需要在执行字符串匹配的所有repos之间努力,以便找到正确的ID。这是最后一个选择。
韩国社交协会 马可
答案 0 :(得分:0)
首先从您的设置页面/profile/personal_access_tokens
中生成一个个人访问令牌。确保它具有 read_repository 范围。
然后,您可以使用以下两种方法之一,将PRIVATETOKEN
替换为您获得的令牌:
在您的请求中传递一个Private-Token
标头。例如
curl --header "Private-Token: PRIVATETOKEN" http://gitlab.private.com/group/repo_name/raw/master/diagrams/test.plantuml
向您的请求添加private_token
查询字符串。例如
curl 'http://gitlab.private.com/group/repo_name/raw/master/diagrams/test.plantuml?private_token=PRIVATETOKEN'