Install
openclaw skills install @weidongkl/kojiManage Koji build system tasks, packages, tags, repos, users, SRPM/RPMs with full API support for build and task operations.
openclaw skills install @weidongkl/koji名称 | Name: koji
版本 | Version: 2.0.0
作者 | Author: OS Build Agent
领域 | Domain: Koji Build System (Fedora/CentOS/RHEL)
专业级 Koji 构建系统管理技能,提供完整的构建任务、包管理、标签、仓库、用户、归档、构建根等所有核心功能管理能力。
Professional-level Koji Build System management skill with comprehensive API coverage for build tasks, package management, tags, repositories, users, archives, buildroots, and all core functionalities.
# 从 SRPM 构建
# Build from SRPM
koji build --target "f39" "./package-1.0-1.fc39.src.rpm"
# 从 Git 构建 (DistGit)
# Build from Git (DistGit)
koji build --target "f39" --git "https://src.fedoraproject.org/rpms/package.git"
# 查看构建信息
# View build info
koji build-info 123456
# 查看构建状态
# View build status
koji build-state 123456
# 查看构建日志
# View build logs
koji build-logs 123456
# 查看构建产物
# View build artifacts
koji list-builds --package "mypackage"
# 取消构建
# Cancel build
koji cancel-build 123456
# 重试构建
# Retry build
koji retry-build 123456
# 取消所有待处理构建
# Cancel all pending builds
koji cancel-all --user "username"
# 列出用户构建
# List user builds
koji list-builds --user "username"
# 列出构建历史
# List build history
koji list-builds --package "mypackage" --quiet
# 查看构建任务
# View build tasks
koji list-task --owner "username" --state "open"
# 搜索包
# Search packages
koji list-packages --query "mypackage"
# 获取包信息
# Get package info
koji package-info "mypackage"
# 列出包维护者
# List package owners
koji list-owners "mypackage"
# 添加包维护者
# Add package owner
koji add-owner "mypackage" "username"
# 删除包维护者
# Remove package owner
koji remove-owner "mypackage" "username"
# 列出所有包
# List all packages
koji list-packages
# 列出包组
# List package groups
koji list-groups --tag "f39"
# 列出所有标签
# List all tags
koji list-tags
# 获取标签信息
# Get tag info
koji tag-info "f39-updates"
# 创建标签
# Create tag
koji create-tag --name "f39-custom" --parent "f39"
# 删除标签
# Delete tag
koji delete-tag "f39-custom"
# 复制标签
# Clone tag
koji clone-tag --name "f39-custom" --clone "f39-updates"
# 列出标签继承关系
# List tag inheritance
koji list-tag-inheritance "f39-custom"
# 列出标签下的包
# List packages in tag
koji list-tag-packages "f39-updates"
# 添加包到标签
# Add package to tag
koji add-to-tag "f39-updates" "mypackage-1.0-1"
# 从标签删除包
# Remove package from tag
koji remove-from-tag "f39-updates" "mypackage-1.0-1"
# 设置包的标签权限
# Set package tag permissions
koji set-pkg-perm "f39-updates" --perms "read/write" "mypackage"
# 列出标签的外部仓库
# List tag external repos
koji list-tag-ext-repos "f39-updates"
# 添加外部仓库到标签
# Add external repo to tag
koji add-ext-repo "f39-updates" --url "https://example.com/repo" --priority 1
# 查看任务状态
# View task status
koji task-info 789012
# 查看任务结果
# View task results
koji task-results 789012
# 取消任务
# Cancel task
koji cancel-task 789012
# 查看任务日志
# View task logs
koji task-logs 789012
# 重试任务
# Retry task
koji retry-task 789012
# 列出任务
# List tasks
koji list-tasks --user "username" --state "open"
# 查看用户信息
# View user info
koji user-info "username"
# 查看用户权限
# View user permissions
koji user-permissions "username"
# 列出用户构建
# List user builds
koji list-builds --user "username"
# 创建用户
# Create user
koji create-user --name "username" --email "user@example.com"
# 删除用户
# Delete user
koji delete-user "username"
# 设置用户权限
# Set user permissions
koji grant-perm "perm-name" --user "username"
# 撤销用户权限
# Revoke user permissions
koji revoke-perm "perm-name" --user "username"
# 上传 SRPM
# Upload SRPM
koji upload-srpm "./package-1.0-1.fc39.src.rpm"
# 下载 SRPM
# Download SRPM
koji download-srpm "mypackage-1.0-1.fc39.src.rpm"
# 下载构建的 SRPM
# Download build SRPM
koji download-build 123456 --srpm
# 下载 RPM
# Download RPM
koji download-rpm "mypackage-1.0-1.fc39.x86_64.rpm"
# 下载构建产物
# Download build artifacts
koji download-build 123456 --arch "x86_64"
# 列出构建的 RPM
# List build RPMs
koji list-rpms --build-id 123456
# 列出所有目标
# List all targets
koji list-targets
# 获取目标信息
# Get target info
koji target-info "f39-build"
# 创建构建目标
# Create build target
koji create-target --name "f39-custom" --build "f39-build" --destination "f39"
# 删除目标
# Delete target
koji delete-target "f39-custom"
# 复制目标
# Clone target
koji clone-target --name "f39-custom" --clone "f39-build"
# 设置目标的构建根
# Set target buildroot
koji set-buildquota "f39-custom" --quota 100
# 列出构建根
# List buildroots
koji list-buildroots --target "f39-build"
# 获取构建根信息
# Get buildroot info
koji buildroot-info 123456
# 列出构建根内容
# List buildroot contents
koji buildroot-list 123456
# 清理构建根
# Clean buildroot
koji clean-buildroot --id 123456
# 列出所有仓库
# List all repos
koji list-repos
# 获取仓库信息
# Get repo info
koji repo-info "f39"
# 创建仓库
# Create repo
koji create-repo --name "f39-custom" --tag "f39-custom"
# 删除仓库
# Delete repo
koji delete-repo "f39-custom"
# 刷新仓库
# Refresh repo
koji refresh-repo "f39"
# 列出标签的外部仓库
# List tag external repos
koji list-tag-ext-repos "f39-updates"
# 添加外部仓库到标签
# Add external repo to tag
koji add-ext-repo "f39-updates" --url "https://example.com/repo" --priority 1
# 删除外部仓库
# Delete external repo
koji remove-ext-repo "f39-updates" --repo-id 1
# 列出归档
# List archives
koji list-archives --build-id 123456
# 获取归档信息
# Get archive info
koji archive-info 123456
# 下载归档
# Download archive
koji download-archive 123456
# 删除归档
# Delete archive
koji delete-archive 123456
# 列出归档类型
# List archive types
koji list-archive-types
# 搜索归档
# Search archives
koji search-archives --type "tar" --name "mypackage"
# 从 DistGit 构建
# Build from DistGit
koji build --target "f39" --git "https://src.fedoraproject.org/rpms/package.git"
# 从 DistGit 特定分支构建
# Build from DistGit specific branch
koji build --target "f39" --git "https://src.fedoraproject.org/rpms/package.git" --branch "main"
# 从 DistGit 特定提交构建
# Build from DistGit specific commit
koji build --target "f39" --git "https://src.fedoraproject.org/rpms/package.git" --revision "abc123"
# 创建 DistGit 仓库
# Create DistGit repo
koji clone-repo --name "mypackage" --source "source-package"
位置 | Location: ~/.koji/config
[koji]
server = https://koji.fedoraproject.org/kojihub
weburl = https://koji.fedoraproject.org/koji
topdir = ~/koji
# 认证方式 | Authentication Methods
# 方法 1: Kerberos
auth_method = kerberos
# 方法 2: SSL 证书
# auth_method = ssl
# ssl_ca_cert = /etc/koji/koji_ca.crt
# ssl_cert = ~/.koji/client.crt
# ssl_key = ~/.koji/client.key
# 方法 3: GSSAPI
# auth_method = gssapi
# 其他配置 | Other config
ca_cert = /etc/koji/koji_ca.crt
client_cert = ~/.koji/client.crt
server_cert = ~/.koji/server.crt
cert_cn = Koji Client
krb_principal = username@FEDORAPROJECT.ORG
krb_keytab = /etc/krb5.keytab
# Koji 配置文件路径
export KOJI_CONF=~/.koji/config
# Koji 目录
export KOJI_DIR=~/koji
# 调试模式
export KOJI_DEBUG=1
# 禁用 SSL 验证(不推荐)
export KOJI_SSL_VERIFY=0
# 检查 KRB5 票据
# Check KRB5 ticket
klist
# 刷新票据
# Refresh ticket
kinit username@FEDORAPROJECT.ORG
# 查看配置
# Check config
koji config show
# 生成证书 | Generate certificate
koji create-cert --cn "username" --email "user@example.com"
# 导出证书 | Export certificate
koji export-cert --cn "username" --output "~/.koji/client.crt"
# 配置文件配置 | Config file setup
[koji]
auth_method = ssl
ssl_cert = ~/.koji/client.crt
ssl_key = ~/.koji/client.key
ssl_ca_cert = /etc/koji/koji_ca.crt
| 命令 | 描述 | Description |
|---|---|---|
build | 创建构建 | Create build |
build-info | 构建信息 | Build info |
build-state | 构建状态 | Build state |
build-logs | 构建日志 | Build logs |
cancel-build | 取消构建 | Cancel build |
retry-build | 重试构建 | Retry build |
cancel-all | 取消所有构建 | Cancel all builds |
| 命令 | 描述 | Description |
|---|---|---|
list-packages | 列出包 | List packages |
package-info | 包信息 | Package info |
list-owners | 列出维护者 | List owners |
add-owner | 添加维护者 | Add owner |
remove-owner | 删除维护者 | Remove owner |
| 命令 | 描述 | Description |
|---|---|---|
list-tags | 列出标签 | List tags |
tag-info | 标签信息 | Tag info |
create-tag | 创建标签 | Create tag |
delete-tag | 删除标签 | Delete tag |
clone-tag | 复制标签 | Clone tag |
list-tag-packages | 标签包列表 | Tag packages |
add-to-tag | 添加到标签 | Add to tag |
remove-from-tag | 从标签删除 | Remove from tag |
list-tag-ext-repos | 标签外部仓库 | Tag ext repos |
| 命令 | 描述 | Description |
|---|---|---|
task-info | 任务信息 | Task info |
task-results | 任务结果 | Task results |
cancel-task | 取消任务 | Cancel task |
task-logs | 任务日志 | Task logs |
retry-task | 重试任务 | Retry task |
list-tasks | 列出任务 | List tasks |
| 命令 | 描述 | Description |
|---|---|---|
user-info | 用户信息 | User info |
user-permissions | 用户权限 | User permissions |
list-builds | 用户构建 | User builds |
create-user | 创建用户 | Create user |
delete-user | 删除用户 | Delete user |
grant-perm | 授予权限 | Grant permission |
revoke-perm | 撤销权限 | Revoke permission |
| 命令 | 描述 | Description |
|---|---|---|
upload-srpm | 上传 SRPM | Upload SRPM |
download-srpm | 下载 SRPM | Download SRPM |
download-rpm | 下载 RPM | Download RPM |
download-build | 下载构建产物 | Download build |
list-rpms | 列出 RPM | List RPMs |
# 检查 KRB5 票据
# Check KRB5 ticket
klist
# 刷新票据
# Refresh ticket
kinit username@FEDORAPROJECT.ORG
# 检查配置文件
# Check config file
koji config show
# 重启 D-Bus
# Restart D-Bus
systemctl --user restart dbus
# 查看构建日志
# View build logs
koji build-logs 123456
# 查看失败原因
# View failure reason
koji build-info 123456
# 重试构建
# Retry build
koji retry-build 123456
# 检查构建任务
# Check build task
koji list-task --build 123456
# 测试服务器连接
# Test server connection
koji server ping
# 检查服务器状态
# Check server status
koji server status
# 检查网络连接
# Check network connection
curl https://koji.fedoraproject.org/kojihub
# 检查防火墙
# Check firewall
firewall-cmd --list-ports
# 检查用户权限
# Check user permissions
koji user-permissions "username"
# 检查包权限
# Check package permissions
koji list-owners "mypackage"
# 检查标签权限
# Check tag permissions
koji list-tag-packages "f39-updates" --perms
# 检查构建状态
# Check build status
koji build-state 123456
# 检查任务状态
# Check task status
koji list-task --build 123456
# 检查构建根
# Check buildroot
koji buildroot-info <buildroot_id>
# 查看完整日志
# View complete logs
koji build-logs 123456 --all
# 检查用户权限
# Check user permissions
koji user-permissions "username"
# 检查包所有权
# Check package ownership
koji list-owners "mypackage"
# 检查标签权限
# Check tag permissions
koji list-tag-packages "f39-updates" --perms
# 联系管理员
# Contact admin
koji contact-admin
# 检查依赖
# Check dependencies
koji build-logs 123456 | grep "Cannot find"
# 解析依赖
# Resolve dependencies
dnf whatprovides "required-package"
# 添加缺失的依赖
# Add missing dependency
koji add-owner "missing-package" "username"
MIT License - 与 OpenClaw AgentSkills 规范兼容
MIT License - Compatible with OpenClaw AgentSkills specification