2018 年 12 月 25 日更新:
只要您不下载大文件,这应该可以工作:
curl -s -H "Private-Token: <token>" "https://gitlab.com/api/v4/projects/<urlencode("gitlab_username/project_name")>/repository/files/<path/to/file>/raw?ref=<branch_name>"
,一个真实的例子,/README.md
从私人存储库下载文件https://gitlab.com/divinity76/Yur17
,其中网络下载网址是https://gitlab.com/divinity76/Yur17/raw/master/README.md?inline=false
,是:
curl -s -H "Private-Token: afF2s1xgk6xcwXHy3J4C" "https://gitlab.com/api/v4/projects/divinity76%2Fyur17/repository/files/README%2Emd/raw?ref=master"
特别注意gitlab_username/repo_name
url 编码的方式,例如/
变成%2F
(您可以通过打开浏览器 javascript 终端并encodeURIComponent("your_username/repo_name");
在终端中写入并按 Enter 来检查您的用户名和 repo 名称是如何作为 url 编码的。)
感谢Jonathan Hall
mg.gitlab.com 的 @ gitlab 和https://docs.gitlab.com/ee/api/repository_files.html以及tvl帮助达成解决方案。
2018 年 12 月 11日更新:此方法不再有效,现在它只提供登录页面,并显示一条消息need to log in to continue
,即使使用 HTTP 200 OK(对他们感到羞耻),如果我找出原因将更新(@XavierStuvw 声称它是安全的相关问题)
我找到了比@tvl 的答案更简单的方法,
首先在此处创建具有 API 访问权限的访问令牌:https://gitlab.com/profile/personal_access_tokens,然后执行以下操作:
wget --header 'PRIVATE-TOKEN: <token>' 'https://gitlab.com/<username>/<repo>/raw/master/path/to/file.ext'
我在这里找到了解决方案。