Jak*_*sen 6 python gitlab python-poetry
我正在尝试设置Poetry以将包部署到我们内部的 Gitlab 包注册表。根据在线的其他来源,存储库 ID 应该是https://gitlab.com/api/v4/projects/<project id>/packages/pypi,但无论我尝试什么,Poetry 都会返回
[上传
错误] HTTP 错误 404:未找到
任何人得到这个工作?
tpl*_*usk 27
如果您尝试从 GitLab CI 进行部署,GitLab 会自动创建一个用户和令牌组合,可用于在变量gitlab-ci-token中的用户和密码下的 CI 上下文中进行身份验证$CI_JOB_TOKEN。
您需要做的就是诗歌特定的操作,即设置诗歌的配置值以了解包注册表是否存在,然后将其传递以进行身份验证。所有这些都可以在 CI 配置/脚本中完成。
script:
- poetry build
- poetry config repositories.gitlab "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/packages/pypi"
- poetry config http-basic.gitlab gitlab-ci-token "$CI_JOB_TOKEN"
- poetry publish --repository gitlab
Run Code Online (Sandbox Code Playgroud)
如果您从 GitLab CI 外部进行部署,那么您将需要该访问令牌并提供上面脚本中使用的值。
Jak*_*sen 11
我实际上自己完成了这项工作,并且上面的网址是正确的。我的问题是我试图发布到一个组(使用组 ID)而不是一个实际的项目(又名存储库)。
所以这里是如何做到这一点:
将存储库添加到您的诗歌.toml
[virtualenvs]
in-project = true
[repositories]
[repositories.my-gitlab]
url = "https://gitlab.com/api/v4/projects/<your project id>/packages/pypi"
Run Code Online (Sandbox Code Playgroud)
在 gitlab 中生成一个可以读写包存储库的令牌。
发布包
poetry publish --repository my-gitlab -u <token-username> -p <token-password>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |