| name | glab-packages |
| description | List, upload, download, and delete GitLab project package registry packages with glab. Use when inspecting packages, filtering GitLab package registry entries by package name/type, paginating package registry results, uploading or downloading generic package files, deleting packages, or using glab packages commands. Triggers on GitLab packages, package registry, glab packages, npm packages in GitLab, Maven packages in GitLab, generic package upload, generic package download, delete package. |
glab packages
List packages in a GitLab project's package registry, upload/download generic package files, and delete package registry entries by ID.
glab packages list / ls lists project package registries. The current command surface also includes upload / ul for generic package uploads, download / dl for generic package downloads, and delete / rm for package deletion by numeric ID.
Quick start
glab packages list
glab packages ls
glab packages list -R owner/repo
glab packages upload ./build/app.zip --name my-package --version 1.0.0
glab packages download --name my-package --version 1.0.0 --filename app.zip
glab packages delete 12345 --yes
Filtering
glab packages list --name my-package
glab packages list --package-type npm
glab packages list --package-type maven
glab packages list --package-type generic
Supported package types from glab help:
composer, conan, debian, generic, golang, helm, maven, npm, nuget, pypi, terraform_module
Pagination and automation
glab packages list --page 2 --per-page 10
glab packages list --jq '.[].name'
Use -R/--repo when running outside the target project's Git checkout. Prefer structured output/--jq for scripts rather than parsing text tables.
Upload generic package files
glab packages upload ./build/app.zip --name my-package --version 1.0.0
glab packages upload ./build/app.zip --name my-package --version 1.0.0 --filename release.zip
glab packages ul ./build/app.zip -n my-package --version 1.0.0 -R owner/repo
Upload stores the file as a generic package in the target project's package registry. --name and --version are required; --filename defaults to the local file basename. Use -R/--repo for uploads outside the target project checkout.
Download generic package files
glab packages download --name my-package --version 1.0.0 --filename app.zip
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/renamed.zip
glab packages download -n my-package --version 1.0.0 --filename app.zip --path /tmp/downloads/app.zip
glab packages download -n my-package --version 1.0.0 --filename app.zip --no-verify
glab packages dl -n my-package --version 1.0.0 --filename app.zip --force -R owner/repo
Download is limited to generic package files and requires --name, --version, and --filename. By default glab verifies the downloaded file against registry checksum metadata and fails if the destination already exists. Use --path for a relative or absolute directory/exact output filename; glab creates missing parent directories. Use --force to overwrite and --no-verify only when checksum verification is intentionally bypassed.
Delete packages
glab packages list --name my-package
glab packages delete 12345
glab packages delete 12345 --yes
glab packages rm 12345
Delete operates on a package's numeric ID, not the package name/version. Use glab packages list (preferably with JSON/--jq in scripts) to identify the ID, then pass --yes only when the target package has been verified.
Reference
See references/commands.md for command synopsis and flags.