【问题标题】:Downloading files (not from repo) from private GitLab server从私有 GitLab 服务器下载文件(不是从仓库)
【发布时间】:2021-11-11 15:33:07
【问题描述】:

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

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

我可以通过 curl --header "PRIVATE_TOKEN: xxxx" ... 解决这个问题,但这意味着将我的私有令牌编码到一个看起来不正确的 shell 脚本中。

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

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

这样做的正确方法是什么?

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

【问题讨论】:

    标签: ssh gitlab authorization


    【解决方案1】:

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

    【讨论】:

    • 我更希望能够使用预共享密钥来下载文件,但这很有效。但它仅适用于 CI/CD,不适用于命令行 :(
    • 如果你有一个访问令牌就可以了,但就像你说的那样,它要么必须在脚本或环境变量中进行硬编码。
    猜你喜欢
    • 2023-03-23
    • 2021-11-04
    • 2020-04-27
    • 2022-07-21
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多