mcpField
G
glab-packages

glab-packages

github.com/vince-winkintel开发49105 次安装1 天前更新
代码仓库

关于 glab-packages

glab-packages 是用于管理 GitLab 项目软件包注册表的 glab 命令行技能,可列出软件包、上传和下载通用软件包文件,并按 ID 或名称与版本删除条目。

主要功能

  1. 01列出并筛选项目软件包
  2. 02上传通用软件包文件
  3. 03下载通用软件包文件
  4. 04按 ID 或名称与版本删除软件包
  5. 05使用分页和 JSON 筛选

适用场景

  1. 01按名称或类型查找软件包
  2. 02向项目发布通用软件包文件
  3. 03下载并校验软件包文件
  4. 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,了解命令概要和标志。

评论

支持 Markdown