Install
openclaw skills install obsComprehensive Open Build Service (OBS) management with full API support for projects, packages, repositories, builds, submit requests, files, users, and search.
openclaw skills install obs名称 | Name: obs
版本 | Version: 1.0.0
作者 | Author: OBS Agent
领域 | Domain: Open Build Service (OBS) 包管理和分发
这是一个全面的 OBS (Open Build Service) 管理技能,提供完整的 API 封装,支持项目、包、仓库、构建、提交请求等所有核心功能。
This is a comprehensive OBS (Open Build Service) management skill with full API coverage, supporting projects, packages, repositories, builds, submit requests, and all core functionalities.
# OBS API 地址 | OBS API URL
OBS_APIURL=https://api.opensuse.org
# 用户名 | Username
OBS_USERNAME=your_username
# API Token (在 OBS Web UI: Profile -> Settings -> API Tokens 创建)
# API Token (create via OBS Web UI: Profile -> Settings -> API Tokens)
OBS_TOKEN=your_api_token
或者使用 osc 配置文件 ~/.config/osc/oscrc:
Or use osc config file ~/.config/osc/oscrc:
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user = your_username
pass = your_token
# 创建新项目
# Create a new project
obs project create \
--name "home:username:myproject" \
--title "My Project" \
--description "Project description here"
# 获取项目元数据
# Get project metadata
obs project get --name "home:username:myproject"
# 列出所有包
# List all packages
obs package list --project "home:username:myproject"
# 创建新包
# Create a new package
obs package create \
--project "home:username:myproject" \
--name "mypackage"
# 上传 spec 文件和源码
# Upload spec file and sources
obs file upload \
--project "home:username:myproject" \
--package "mypackage" \
--file "./mypackage.spec" \
--file "./mypackage-1.0.tar.gz"
# 下载包源码到本地
# Download package sources to local
obs package checkout \
--project "home:username:myproject" \
--package "mypackage" \
--output "./mypackage"
# 重建包
# Rebuild package
obs build rebuild \
--project "home:username:myproject" \
--package "mypackage" \
--repository "openSUSE_Tumbleweed" \
--arch "x86_64"
# 查看构建结果
# View build results
obs build status \
--project "home:username:myproject" \
--package "mypackage"
# 获取构建日志
# Get build logs
obs build log \
--project "home:username:myproject" \
--package "mypackage" \
--repository "openSUSE_Tumbleweed" \
--arch "x86_64"
# 创建提交请求到 Factory
# Create submit request to Factory
obs request create \
--source-project "home:username:myproject" \
--source-package "mypackage" \
--target-project "openSUSE:Factory" \
--target-package "mypackage" \
--description "Update to version 1.0"
# 查看请求状态
# View request status
obs request get --id 123456
# 接受请求
# Accept request
obs request accept --id 123456
# 拒绝请求
# Reject request
obs request reject --id 123456
# 读取 spec 文件内容
# Read spec file content
obs file get \
--project "home:username:myproject" \
--package "mypackage" \
--file "mypackage.spec"
# 更新文件内容
# Update file content
obs file update \
--project "home:username:myproject" \
--package "mypackage" \
--file "mypackage.spec" \
--content "./updated.spec" \
--message "Update spec file"
# 列出包中的所有文件
# List all files in package
obs file list \
--project "home:username:myproject" \
--package "mypackage"
# 搜索项目
# Search projects
obs search projects --query "myproject"
# 搜索包
# Search packages
obs search packages --query "mypackage"
# 查看所有可用命令
# View all available commands
obs --help
# 查看特定命令的帮助
# View help for specific command
obs <command> --help
obs <resource> <action> [options]
# 资源类型 | Resource types:
# - project (项目)
# - package (包)
# - build (构建)
# - request (请求)
# - file (文件)
# - repository (仓库)
# - search (搜索)
# - user (用户)
# - group (组)
# 操作类型 | Action types:
# - get (获取)
# - list (列表)
# - create (创建)
# - update (更新)
# - delete (删除)
# - rebuild (重建)
# - checkout (检出)
# - commit (提交)
home:username:projectname 格式home:username:projectname format# 检查凭证配置
# Check credential configuration
obs auth test
# 重新配置凭证
# Reconfigure credentials
obs auth configure
# 查看构建日志
# View build logs
obs build log \
--project "home:username:myproject" \
--package "mypackage" \
--repository "openSUSE_Tumbleweed" \
--arch "x86_64" \
--last-failed
# 检查项目权限
# Check project permissions
obs project meta \
--name "home:username:myproject" \
--show-access
在 scripts/ 目录中创建新的脚本文件:
Create new script files in the scripts/ directory:
#!/bin/bash
# scripts/custom-command.sh
source "$(dirname "$0")/obs-lib.sh"
obs_custom_command() {
local project="$1"
local package="$2"
# 实现自定义逻辑
# Implement custom logic
obs_api_call "GET" "/source/$project/$package"
}
obs_custom_command "$@"
source references/obs-lib.sh
# API 调用示例
# API call examples
obs_api_call "GET" "/source/$project"
obs_api_call "PUT" "/source/$project/$package/$file" --data "@file.txt"
obs_api_call "DELETE" "/source/$project/$package/$file"
MIT License - 与 OpenClaw AgentSkills 规范兼容 MIT License - Compatible with OpenClaw AgentSkills specification