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

How to download single raw file from private gitlab repo using username and password

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

git clone https://some-git-lab-token:someHash@git.xxx.com/foo/bar.git

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

示例 gitlab 原始文件 url 如下

https://gitlab.com/athos.oc/lodash-has-plugin/-/raw/master/.eslintrc.json

我试过如下 curl 单个文件但失败了

curl https://some-git-lab-token:someHash@git.xxx.com/foo/bar/-/raw/master/testing.js

我得到的结果如下

<html><body>You are being <a href="https://git.xxx.com/users/sign_in">redirected</a>.</body></html>

要通过 curl 下载存储库文件,您需要使用 repository files API endpoint

使用您的示例 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 authentication 不包括用户名和密码作为可用的身份验证方法,因此您需要使用令牌(或会话 cookie)。