如何在不暴露 url 中的访问令牌的情况下从 Gitlab 下载私有存储库?

How to download a private repository from Gitlab without exposing the access token in the url?

我想使用 curl 命令从 Gitlab 下载私有存储库(不幸的是我不得不这样做)。我知道以下工作:

curl 'https://gitlab.com/api/v4/projects/2222/repository/archive?private_token=hlpat-21321' > your_project.tar.gz

其中 21321 是项目 ID,hlpat-21321 是访问令牌(我将它们随机放置)。 我想做同样的事情,但不直接公开访问令牌。一个想法是使用 stdin,这意味着将令牌作为用户在命令行中的输入。我该怎么做?

引用 curl 手册页

Starting in 7.55.0, this option can take an argument in @filename style, which then adds a header for each line in the input file. Using @- will make curl read the header file from stdin.

将其用作 header 并从标准输入

传递 header
curl --header -@ ...url... <<< "PRIVATE-TOKEN: private_token"

这样你就不需要传递给 url