从私有 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 之一,并持有非管理员令牌。
我需要在脚本中从私人 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 之一,并持有非管理员令牌。