如何通过curl从GitLab下载发布资产

如何通过curl从GitLab下载发布资产,curl,gitlab,Curl,Gitlab,我试图创建一个bash脚本,使用curl从GitLab下载一个私有版本,但它一直被重定向到signin页面 我该怎么做 我尝试了以下方法,但没有成功: curl --header "PRIVATE-TOKEN: XXXXXXXXX" "https://gitlab.com/mrhid6/test/-/archive/v0.0.5/test-v0.0.5.zip" 您不能像这样使用私有令牌访问存储库zip文件 选中,您应该使用以下选项: curl --header "PRIVATE-TOKEN:

我试图创建一个bash脚本,使用curl从GitLab下载一个私有版本,但它一直被重定向到signin页面

我该怎么做

我尝试了以下方法,但没有成功:

curl --header "PRIVATE-TOKEN: XXXXXXXXX" "https://gitlab.com/mrhid6/test/-/archive/v0.0.5/test-v0.0.5.zip"

您不能像这样使用私有令牌访问存储库zip文件

选中,您应该使用以下选项:

curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.com/api/v4/projects/mrhid6%2Ftest/repository/archive.zip
curl--header“PRIVATE-TOKEN:https://gitlab.com/api/v4/projects/mrhid6%2Ftest/repository/archive.zip
Gitlab说这是一个bug=(


我也想下载资产。

正如Win32Sector所说,这是一个问题,但这个问题已经存在了相当长的一段时间,并且一直被推到下一个里程碑

作为一种解决方法,您可以将其用作数据存储,然后从“发布”页面引用包文件,这样用户就不会识别任何内容:

  • 启用包注册表-在项目->设置->常规->可见性、项目功能、权限中勾选

  • 通过以下方式上载程序包:

  • curl--header“PRIVATE-TOKEN:#####”--upload file/local/file/asset-file.txthttps:///api/v4/projects//packages/generic///asset-file.txt
    
  • 使用以下命令添加到“发布”页面的链接:
  • curl--request POST--header“PRIVATE-TOKEN:######”--data name=“我的资产名称”--data link_type=“package”--data url=”https:///api/v4/projects//packages/generic///asset-file.txt" "https:///projects//releases//assets/links"
    
  • 然后通过单击GitLab中的链接(用户已登录)或使用access token和Packages API下载您的资产:
  • curl--header“PRIVATE-TOKEN:####”https:///api/v4/projects//packages/generic///asset-file.txt"
    
    我已经用我尝试过的代码进行了更新。该项目可能不存在。如果是私有的,则使用私有令牌不起作用。
     curl --header "PRIVATE-TOKEN: ####" --upload-file /local/file/asset-file.txt https://<your.gitlab.instance>/api/v4/projects/<PROJECT>/packages/generic/<PACKAGE_NAME>/<VERSION>/asset-file.txt
    
    curl --request POST --header "PRIVATE-TOKEN: ####" --data name="My asset name" --data link_type="package" --data url="https://<your.gitlab.instance>/api/v4/projects/<PROJECT>/packages/generic/<PACKAGE-NAME>/<VERSION>/asset-file.txt" "https://<your.gitlab.instance>/projects/<PROJECT>/releases/<VERSION>/assets/links"
    
    curl --header "PRIVATE-TOKEN: ####" "https://<your.gitlab.instance>/api/v4/projects/<PROJECT>/packages/generic/<PACKAGE-NAME>/<VERSION>/asset-file.txt"