关于 glab-packages
glab-packages 是用于管理 GitLab 项目软件包注册表的 glab 命令行技能,可列出软件包、上传和下载通用软件包文件,并按 ID 或名称与版本删除条目。
主要功能
- 01列出并筛选项目软件包
- 02上传通用软件包文件
- 03下载通用软件包文件
- 04按 ID 或名称与版本删除软件包
- 05使用分页和 JSON 筛选
适用场景
- 01按名称或类型查找软件包
- 02向项目发布通用软件包文件
- 03下载并校验软件包文件
- 04删除已核实的注册表条目
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vince-winkintel/ gitlab-cli-skills --skill glab-packages安装后在 Claude Code 中输入/glab-packages确认已加载。
附带文件references/commands.md
详细介绍
glab packages
列出 GitLab 项目的软件包注册表,上传/下载通用软件包文件,并按数字 ID 或 --name/--version 删除软件包注册表条目。
glab packages list/ls 会列出项目的软件包注册表。当前命令还包括用于上传通用软件包的 upload/ul、用于下载通用软件包的 download/dl,以及按数字 ID 或 --name/--version 删除软件包的 delete/rm。
按名称和版本删除
glab packages delete --name example-generic --version 1.0.0 会在所选项目中查找软件包;--package-type 默认为 generic。其他软件包生态系统需显式指定类型。--name 和 --version 必须同时提供。位置参数数字 ID、--id 和 --name 是互斥的选择方式,不要组合使用。rm 别名接受相同的选项。
批准删除前,请预览准确的项目、软件包名称、版本、类型和解析出的 ID。删除操作不可撤销,且需要交互式确认;非交互式使用时必须指定 --yes,并且仅在获得明确批准后才能使用。
快速入门
# List all packages in the current project
glab packages list
# Alias
glab packages ls
# List packages from another project
glab packages list -R owner/repo
# Upload a file as a generic package version
glab packages upload ./build/app.zip --name my-package --version 1.0.0
# Download a generic package file
glab packages download --name my-package --version 1.0.0 --filename app.zip
# Delete a package by numeric ID after listing packages
glab packages delete 12345 --yes
筛选
# Filter by package name substring
glab packages list --name my-package
# Filter by package type
glab packages list --package-type npm
glab packages list --package-type maven
glab packages list --package-type generic
glab 帮助文档支持的软件包类型:
composer, conan, debian, generic, golang, helm, maven, npm, nuget, pypi, terraform_module
分页与自动化
# Select a page and page size
glab packages list --page 2 --per-page 10
# JSON output filtering is available through the global --jq support on this command
glab packages list --jq '.[].name'
在目标项目的 Git 工作区之外运行时,请使用 -R/--repo。编写脚本时,优先使用结构化输出/--jq,而不要解析文本表格。
上传通用软件包文件
# Upload a local file under its original filename
glab packages upload ./build/app.zip --name my-package --version 1.0.0
# Store the uploaded file under a different package filename
glab packages upload ./build/app.zip --name my-package --version 1.0.0 --filename release.zip
# Alias and explicit target project
glab packages ul ./build/app.zip -n my-package --version 1.0.0 -R owner/repo
上传会将文件作为通用软件包存储在目标项目的软件包注册表中。必须提供 --name 和 --version;--filename 默认为本地文件的基本名称。在目标项目工作区之外上传时,请使用 -R/--repo。
下载通用软件包文件
# Download a package file to the current directory
glab packages download --name my-package --version 1.0.0 --filename app.zip
# Download into a directory, keeping the original file name
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/
# Download to an exact path, renaming the file
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/renamed.zip
# Download to an absolute path (missing parent directories are created)
glab packages download -n my-package --version 1.0.0 --filename app.zip --path /tmp/downloads/app.zip
# Skip checksum verification only when you intentionally accept the integrity risk
glab packages download -n my-package --version 1.0.0 --filename app.zip --no-verify
# Alias, overwrite an existing target, and explicit project targeting
glab packages dl -n my-package --version 1.0.0 --filename app.zip --force -R owner/repo
下载仅适用于通用软件包文件,并且必须提供 --name、--version 和 --filename。默认情况下,glab 会根据注册表中的校验和元数据验证下载的文件;如果目标文件已存在,则操作会失败。使用 --path 指定相对或绝对目录/确切的输出文件名;glab 会创建缺失的父目录。使用 --force 覆盖文件;仅在有意跳过校验和验证时才使用 --no-verify。
对于文件名重复的下载,校验和验证会使用最新的匹配软件包文件(最高的文件 ID)。
删除软件包
# Find the package ID first
glab packages list --name my-package
# Delete by numeric package ID; prompts for confirmation
glab packages delete 12345
# Skip confirmation for automation after independently confirming the ID
glab packages delete 12345 --yes
# Alias
glab packages rm 12345
删除时可指定数字 ID,或使用上文所述的 --name/--version 组合。使用 glab packages list(在脚本中优先搭配 JSON/--jq)查找 ID,然后仅在确认目标软件包无误后才传入 --yes。
参考
请参阅 references/commands.md,了解命令概要和标志。