无API从私有GitLab下载
我需要从一个私有的GitLab下载文件。
我之前看到过这个帖子: 从GitLab私有仓库下载
但是我不能使用API,因为我没有下载文件所需的ID。实际上,我需要通过它们的HTTP原始链接来下载文件,比如:
http://gitlab.private.com/group/repo_name/raw/master/diagrams/test.plantuml
由于我开启了身份验证,每次我尝试以编程方式访问某些内容时,都会被重定向到登录页面。我写了一个Python脚本来模拟登录过程,获取authenticity_token和_gitlab_session cookie,但还是不行。
如果我在成功登录后从Chrome浏览器中抓取一个会话cookie,所有操作(从下载文件的角度来看)在Python和curl中都能顺利进行。
所以,任何帮助我获取这个cookie的方法,或者其他不同的解决方案都非常感谢。要使用API,我首先需要在所有仓库中进行字符串匹配,以便找到正确的ID。这是最后的选择。
谢谢 Marco
1 个回答
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'