如何使用用户名和密码从私人 gitlab 存储库下载单个原始文件

Isa*_*aac 10 curl wget gitlab

我可以使用下面的命令克隆带有用户名和密码的私人存储库

git clone https://some-git-lab-token:someHash@git.xxx.com/foo/bar.git
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用相同的凭据从同一存储库curl获取wget单个原始文件some-git-lab-token:someHash

示例 gitlab 原始文件 url 如下

https://gitlab.com/athos.oc/lodash-has-plugin/-/raw/master/.eslintrc.json
Run Code Online (Sandbox Code Playgroud)

我尝试如下卷曲单个文件但失败

curl https://some-git-lab-token:someHash@git.xxx.com/foo/bar/-/raw/master/testing.js
Run Code Online (Sandbox Code Playgroud)

我得到的结果如下

<html><body>You are being <a href="https://git.xxx.com/users/sign_in">redirected</a>.</body></html>
Run Code Online (Sandbox Code Playgroud)

Art*_*han 15

要通过curl下载存储库文件,您需要使用存储库文件API端点

使用你的例子https://gitlab.com/athos.oc/lodash-has-plugin/-/raw/master/.eslintrc.json,会变成:

https://gitlab.com/api/v4/projects/30349314/repository/files/%2Eeslintrc%2Ejson/raw?ref=master

但是,API 身份验证不包括用户名和密码作为可用的身份验证方法,因此您需要使用令牌(或会话 cookie)。