GitLab Package Registry¶
Ihr könnt eure Verteilungspakete auch in der Paketregistrierung eures GitLab-Projekts veröffentlichen. Folgende Bedingungen müssen hierfür jedoch erfüllt sein:
Ihr müsst euch bei der Paketregistrierung authentifizieren.
Eure Versionsangabe muss gültig sein.
Das Paket muss kleiner als 5 GB sein und
description
darf höchstens 4000 Zeichen lang sein.Das Paket wurde noch nicht in der Paketregistrierung veröffentlicht. Der Versuch, die gleiche Version eines Pakets zu veröffentlichen, liefert
400 Bad Request
zurück.
Anschließend könnt ihr sowohl mit pip als auch mit uv das Paket nutzen.
Siehe auch
Authentifizierung¶
Zur Authentifizierung an der GitLab Package Registry könnt ihr eine der folgenden Methoden verwenden:
Ein persönlicher Zugriffstoken mit dem Geltungsbereich
api
.Ein Deploy-Token mit den Geltungsbereichen
read_package_registry
,write_package_registry
oder beiden.Ein CI-Job-Token.
variables:
UV_VERSION: 0.5
PYTHON_VERSION: 3.12
BASE_LAYER: bookworm-slim
UV_PUBLISH_USERNAME: <personal_access_token_name>
UV_PUBLISH_PASSWORD: <personal_access_token>
variables:
UV_VERSION: 0.5
PYTHON_VERSION: 3.12
BASE_LAYER: bookworm-slim
UV_PUBLISH_USERNAME: <deploy_token_username>
UV_PUBLISH_PASSWORD: <deploy_token>
variables:
UV_VERSION: 0.5
PYTHON_VERSION: 3.12
BASE_LAYER: bookworm-slim
UV_PUBLISH_USERNAME: <gitlab-ci-token>
UV_PUBLISH_PASSWORD: $CI_JOB_TOKEN
Authentifizierung für eine Gruppe¶
Verwendet statt der PROJECT_ID
die GROUP_URL
.
Veröffentlichen des Verteilungspakets¶
Nun könnt ihr euer Paket auf GitLab veröffentlichen mit:
…
stages:
- publish
uv:
stage: publish
image: ghcr.io/astral-sh/uv:$UV_VERSION-python$PYTHON_VERSION-$BASE_LAYER
script:
- uv build
- uv publish --publish-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
Tipp
Ggf. könnt ihr mit RUST_LOG=uv=trace
weitere
Informationen zu den Authentifizierungsversuchen erhalten, also z.B. mit RUST_LOG=uv=trace uv --verbose publish --publish-url
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
.
Siehe auch
In GitLab CI/CD erhaltet ihr weitere Ninweise zur Konfiguration der
.gitlab-ci.yml
-Datei.
Installieren des Pakets¶
Ihr könnt die neueste Version eures Pakets installieren z.B. mit
$ uv add -i https://{NAME}:{PERSONAL_ACCESS_TOKEN}@ce.cusy.io/api/v4/projects/{PROJECT_ID}/packages/pypi/simple --no-deps {PACKAGE_NAME}
… oder von der Gruppenebene aus mit
$ uv add -i https://{NAME}:{PERSONAL_ACCESS_TOKEN}@ce.cusy.io/api/v4/groups/{GROUP_ID}/-/packages/pypi/simple --no-deps {PACKAGE_NAME}
… oder in der pyproject.toml
-Datei mit:
[tool.uv]
extra-index-url = ["https://ce.cusy.io/api/v4/projects/{PROJECT_ID}/packages/pypi/simple {PACKAGE_NAME}"]