如何使用curl从Gitlab CE(自托管)下载最新的构建作业工件



Gitlab的本地服务器安装版本目前为15.3.0。我已经创建了一个个人访问令牌(选择了所有作用域(,并确定了下载artifacts.zip文件的URL(登录Gitlab时可以在浏览器中使用(。

但是,当我尝试使用curl时,我总是会重定向到登录页面:

curl --header "PRIVATE-TOKEN: $TOKEN" "http://myserver/emu/myproject/-/jobs/artifacts/main/download?job=build"

导致。。

<html><body>You are being <a href="http://myserver/users/sign_in">redirected</a>.</body></html>

当然,添加-L参数可以得到登录页面的HTML标记,而不是我想要的工件。我还通过如下调用API验证了令牌的工作原理:

curl --header "PRIVATE-TOKEN: $TOKEN" "http://myserver/api/v4/projects"

这给了我预期的JSON格式的项目列表。

我知道Gitlab的免费版有一些限制,比如JOB-TOKEN不可用。但我在文档中没有发现任何迹象表明,使用个人访问令牌下载工件需要付费版本:https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html

您必须使用curl -L --output artifacts.zip --location --header "PRIVATE-TOKEN: <YOUR_TOKEN>" "<YOUR_SERVER>/api/v4/projects/<PROJECT_ID>/jobs/artifacts/main/download?job=<BUILD_JOB_NAME>"我希望这能解决你的问题

相关内容

  • 没有找到相关文章

最新更新