从私有 GitLab 服务器下载文件(不是来自 repo)

Downloading files (not from repo) from private GitLab server

我需要在脚本中从私人 GitLab 获取文件(如果重要的话,实际上是 Yocto 配方)。

发布:https://gitlab2server.com/api/v4/projects/53/packages/generic/paCKAGE/21.08.16/FILE.tar.xz 在浏览器上工作正常,但 wget <same URL> 失败并显示“401 未授权”。

我可以使用 curl --header "PRIVATE_TOKEN: xxxx" ... 解决这个问题,但这意味着将我的私人令牌编码到 shell 脚本中,这似乎不正确。

要访问常规 git 存储库,我可以使用 git clone git:... 并且由于上传了密钥,它可以正常工作。

使用等效的 scp gitlab2server.com:/api/v4/... . 不起作用,因为“权限被拒绝(公钥)”。

正确的做法是什么?

理想情况下,我需要使用预共享密钥进行 ssh(当然实际上是 scp)访问以访问文件。我不想将大型二进制文件放入 git 存储库,只是为了能够访问它们。

使用 GitLab API(包括此处的包 API)进行身份验证的唯一方法是使用个人访问令牌,或者 CI_JOB_TOKEN 环境变量,如果 运行 在 GitLab CI/CD 中。 CI_JOB_TOKEN 是每个 CI/CD 管道作业可用的 Predefined Variables 之一,并持有非管理员令牌。