Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

obs

v1.0.1

Comprehensive Open Build Service (OBS) management with full API support for projects, packages, repositories, builds, submit requests, files, users, and search.

0· 144·1 current·1 all-time
bywei dong@weidongkl

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for weidongkl/obs.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "obs" (weidongkl/obs) from ClawHub.
Skill page: https://clawhub.ai/weidongkl/obs
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install obs

ClawHub CLI

Package manager switcher

npx clawhub@latest install obs
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (OBS management) match the included scripts and library: the skill calls the OBS API, manages projects/packages/builds/files, and asks for OBS credentials (API token or oscrc). The only minor inconsistency is that the registry metadata lists no required env vars while SKILL.md and the scripts clearly expect OBS_APIURL/OBS_USERNAME/OBS_TOKEN or ~/.config/osc/oscrc.
!
Instruction Scope
Runtime instructions and included scripts read/write user config (~/.config/osc/oscrc), may append credentials to shell rc files (~/.bashrc or ~/.zshrc), create temp cookie files in /tmp, and suggest creating a symlink in /usr/local/bin. The API helper uses eval to build and run curl commands (obs_api_call), which can introduce command‑injection risk if inputs are not strictly sanitized. These behaviors are within the tool's purpose but increase risk and should be reviewed before use.
Install Mechanism
No network install/downloads or external installers are used; this is an instruction-and-script package bundled with the skill. That lowers supply-chain risk compared with arbitrary remote downloads. All code is present in the repository for inspection.
Credentials
The credentials requested (OBS username and API token or oscrc) are appropriate for an OBS client. However, the skill metadata did not declare these required env vars even though SKILL.md and scripts depend on them; that's an inconsistency to be aware of. The setup script stores the token in ~/.config/osc/oscrc and optionally appends it to the user shell rc — storing secrets in shell rc is not best practice.
Persistence & Privilege
The skill does not request global 'always' privilege. The included setup script writes to per-user config files and can append environment variables to shell rc; it also suggests creating a symlink in /usr/local/bin (which requires elevated privileges). These are reasonable for a CLI tool but require user consent and care (avoid running as root unless intended).
Assessment
What to check before installing/running: - Review the two bundled scripts (references/obs-lib.sh and scripts/obs-expert-setup.sh) yourself; all code is included. - The skill needs your OBS API token (OBS_USERNAME/OBS_TOKEN) or an oscrc file; only supply a token you trust and keep it minimal-scope and rotatable. - The setup script will write ~/.config/osc/oscrc and can append credentials to your shell rc (~/.bashrc or ~/.zshrc). Prefer using ~/.config/osc/oscrc with chmod 600 rather than storing tokens in shell rc. - Do not run the setup script as root unless you deliberately want to create system-wide symlinks; creating a symlink in /usr/local/bin requires root and expands the attack surface. - The API library uses eval to construct curl commands; if you plan to pass filenames or other inputs containing untrusted content, inspect or sanitize inputs to avoid command injection. - Test in a safe environment (non-production user or container) first. If you proceed, rotate the token after initial testing and follow least-privilege practices. - If anything looks unexpected (external endpoints other than api.opensuse.org, unusual network calls, or credential exfiltration), do not proceed and ask for clarification from the author.

Like a lobster shell, security has layers — review code before you run it.

latestvk972mh85zhcq265bftew31pw8n83fvseobsvk972mh85zhcq265bftew31pw8n83fvseopensusevk972mh85zhcq265bftew31pw8n83fvsepackagingvk972mh85zhcq265bftew31pw8n83fvse
144downloads
0stars
2versions
Updated 1mo ago
v1.0.1
MIT-0

OBS Skill - Open Build Service 专家技能

技能描述 | Skill Description

名称 | 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.


功能列表 | Features

1. 项目管理 | Project Management

  • 创建/删除项目 | Create/Delete projects
  • 获取项目元数据 | Get project metadata
  • 更新项目配置 | Update project configuration
  • 列出项目下的包 | List packages in project
  • 设置项目访问控制 | Set project access control

2. 包管理 | Package Management

  • 创建/删除包 | Create/Delete packages
  • 获取包信息 | Get package information
  • 上传包文件 (spec, tarball 等) | Upload package files (spec, tarball, etc.)
  • 下载包源码 | Download package sources
  • 查看包历史 | View package history
  • 锁定/解锁包 | Lock/Unlock packages

3. 仓库管理 | Repository Management

  • 添加/删除仓库 | Add/Remove repositories
  • 配置仓库路径 | Configure repository paths
  • 设置仓库架构 | Set repository architectures
  • 管理仓库依赖 | Manage repository dependencies

4. 构建管理 | Build Management

  • 触发重建 | Trigger rebuild
  • 查看构建状态 | View build status
  • 获取构建日志 | Get build logs
  • 停止构建 | Stop builds
  • 查看构建结果 | View build results

5. 提交请求 | Submit Requests

  • 创建提交请求 | Create submit requests
  • 查看提交请求状态 | View submit request status
  • 接受/拒绝提交请求 | Accept/Reject submit requests
  • 撤销提交请求 | Revoke submit requests
  • 列出待处理请求 | List pending requests

6. 文件操作 | File Operations

  • 读取文件内容 | Read file content
  • 上传/更新文件 | Upload/Update files
  • 删除文件 | Delete files
  • 列出目录内容 | List directory contents
  • 文件版本历史 | File version history

7. 用户和组 | Users and Groups

  • 获取用户信息 | Get user information
  • 获取组信息 | Get group information
  • 管理项目权限 | Manage project permissions
  • 添加/移除维护者 | Add/Remove maintainers

8. 搜索和发现 | Search and Discovery

  • 搜索项目 | Search projects
  • 搜索包 | Search packages
  • 查看依赖关系 | View dependencies
  • 查看反向依赖 | View reverse dependencies

配置 | Configuration

环境变量 | Environment Variables

# 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 配置文件 | osc Config File

或者使用 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

使用示例 | Usage Examples

项目操作 | Project Operations

创建项目 | Create Project

# 创建新项目
# Create a new project

obs project create \
  --name "home:username:myproject" \
  --title "My Project" \
  --description "Project description here"

获取项目信息 | Get Project Info

# 获取项目元数据
# Get project metadata

obs project get --name "home:username:myproject"

列出项目下的包 | List Packages in Project

# 列出所有包
# List all packages

obs package list --project "home:username:myproject"

包操作 | Package Operations

创建包 | Create Package

# 创建新包
# Create a new package

obs package create \
  --project "home:username:myproject" \
  --name "mypackage"

上传包文件 | Upload Package Files

# 上传 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

# 下载包源码到本地
# Download package sources to local

obs package checkout \
  --project "home:username:myproject" \
  --package "mypackage" \
  --output "./mypackage"

构建操作 | Build Operations

触发重建 | Trigger Rebuild

# 重建包
# Rebuild package

obs build rebuild \
  --project "home:username:myproject" \
  --package "mypackage" \
  --repository "openSUSE_Tumbleweed" \
  --arch "x86_64"

查看构建状态 | View Build Status

# 查看构建结果
# View build results

obs build status \
  --project "home:username:myproject" \
  --package "mypackage"

获取构建日志 | Get Build Logs

# 获取构建日志
# Get build logs

obs build log \
  --project "home:username:myproject" \
  --package "mypackage" \
  --repository "openSUSE_Tumbleweed" \
  --arch "x86_64"

提交请求 | Submit Requests

创建提交请求 | Create Submit Request

# 创建提交请求到 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 Submit Request

# 查看请求状态
# View request status

obs request get --id 123456

接受/拒绝请求 | Accept/Reject Request

# 接受请求
# Accept request

obs request accept --id 123456

# 拒绝请求
# Reject request

obs request reject --id 123456

文件操作 | File Operations

读取文件 | Read File

# 读取 spec 文件内容
# Read spec file content

obs file get \
  --project "home:username:myproject" \
  --package "mypackage" \
  --file "mypackage.spec"

更新文件 | Update File

# 更新文件内容
# Update file content

obs file update \
  --project "home:username:myproject" \
  --package "mypackage" \
  --file "mypackage.spec" \
  --content "./updated.spec" \
  --message "Update spec file"

列出文件 | List Files

# 列出包中的所有文件
# List all files in package

obs file list \
  --project "home:username:myproject" \
  --package "mypackage"

搜索 | Search

搜索项目 | Search Projects

# 搜索项目
# Search projects

obs search projects --query "myproject"

搜索包 | Search Packages

# 搜索包
# Search packages

obs search packages --query "mypackage"

API 参考 | API Reference

基础命令 | Base Commands

# 查看所有可用命令
# View all available commands

obs --help

# 查看特定命令的帮助
# View help for specific command

obs <command> --help

命令结构 | Command Structure

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 (提交)

最佳实践 | Best Practices

1. 认证安全 | Authentication Security

  • 使用 API Token 而非密码 | Use API Token instead of password
  • 不要将凭证提交到版本控制 | Do not commit credentials to version control
  • 定期轮换 Token | Rotate tokens regularly

2. 项目命名 | Project Naming

  • 个人项目使用 home:username:projectname 格式
  • Personal projects use home:username:projectname format
  • 官方项目遵循 OBS 命名规范
  • Official projects follow OBS naming conventions

3. 提交请求 | Submit Requests

  • 在提交前确保包在本地构建成功
  • Ensure package builds locally before submitting
  • 提供清晰的更新说明
  • Provide clear update descriptions
  • 先提交到 Factory,再同步到 Leap
  • Submit to Factory first, then sync to Leap

4. 错误处理 | Error Handling

  • 检查 API 响应状态码 | Check API response status codes
  • 记录详细的错误日志 | Log detailed error messages
  • 实现重试机制 | Implement retry mechanisms

故障排除 | Troubleshooting

常见问题 | Common Issues

认证失败 | Authentication Failed

# 检查凭证配置
# Check credential configuration

obs auth test

# 重新配置凭证
# Reconfigure credentials

obs auth configure

构建失败 | Build Failed

# 查看构建日志
# View build logs

obs build log \
  --project "home:username:myproject" \
  --package "mypackage" \
  --repository "openSUSE_Tumbleweed" \
  --arch "x86_64" \
  --last-failed

权限错误 | Permission Error

# 检查项目权限
# Check project permissions

obs project meta \
  --name "home:username:myproject" \
  --show-access

扩展开发 | Extension Development

添加新命令 | Add New Commands

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 "$@"

使用 OBS API 库 | Using OBS API Library

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"

参考资料 | References


许可证 | License

MIT License - 与 OpenClaw AgentSkills 规范兼容 MIT License - Compatible with OpenClaw AgentSkills specification


更新日志 | Changelog

v1.0.0 (2026-03-22)

  • 初始版本,完整的 OBS API 支持
  • Initial release with full OBS API coverage
  • 支持项目、包、构建、请求、文件操作
  • Support for projects, packages, builds, requests, file operations
  • 中英文双语文档
  • Bilingual documentation (Chinese/English)

Comments

Loading comments...