【问题标题】:How to push to package registry of personal Gitlab project?个人Gitlab项目如何push到package registry?
【发布时间】:2023-01-24 04:58:47
【问题描述】:

我正在使用我组织的 Gitlab 实例,并希望从我的 CI 管道上传到个人项目的包注册表。 我已经能够使用文档中指定的格式从共享项目的包注册表中上传和下载:

-'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file path/to/file.txt "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/my_package/0.0.1/file.txt"'

但是,当我在 CI 管道中为我的个人项目应用相同的格式时,失败并显示消息:“找不到该页面或您无权查看它。” 这是有道理的海事组织,因为我的用户名是项目 URL 的一部分。所以我尝试了 URL 的不同组合,例如:

 "${CI_API_V4_URL}/my-username/projects/${CI_PROJECT_ID}/packages/generic/my_package/0.0.1/file.txt"' 

错误:“422:您请求的更改被拒绝”

"${CI_API_V4_URL}/my-username/${CI_PROJECT_ID}/packages/generic/my_package/0.0.1/file.txt"' 

错误:“不支持提供的内容类型”

我尝试使用个人令牌、ci 工作令牌、项目令牌和部署令牌进行身份验证,但没有任何效果,但我不认为这是一个访问问题,因为我可以毫无问题地推送到同一存储库的容器注册表。

有没有办法找到个人项目包注册表的正确 URL? 我无法在“projects/”下设置常规项目,因为我没有权限。 任何帮助表示赞赏。

【问题讨论】:

    标签: curl gitlab gitlab-ci gitlab-api gitlab-pipelines


    【解决方案1】:

    您应该按照 here 的说明对项目的路径进行 URL 编码。

    例如,给定用户名my-username 和项目名称my-project,您将使用my-username%2Fmy-project 作为项目 ID。

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 2021-05-28
      • 2019-04-08
      • 1970-01-01
      相关资源
      最近更新 更多