v0.1
This commit is contained in:
commit
35cf9e004b
33
README.md
Normal file
33
README.md
Normal file
@ -0,0 +1,33 @@
|
||||
# use_vala_skillhub
|
||||
|
||||
Vala SkillHub 技能管理 —— 让数字员工推送和安装技能。
|
||||
|
||||
## 功能
|
||||
|
||||
- **推送技能**:将本地 `./skills` 下的技能上传到 SkillHub(Gitea 仓库)
|
||||
- **安装技能**:从 SkillHub 克隆技能到本地 `./skills` 目录
|
||||
- **查看技能**:列出 SkillHub 上的所有技能
|
||||
|
||||
## 命名规则
|
||||
|
||||
仓库名 = `技能名` + `.` + `来源名`
|
||||
|
||||
| 示例 | 含义 |
|
||||
|------|------|
|
||||
| `cron_job.xiaoxi` | xiaoxi 的定时任务技能 |
|
||||
| `web_scraper.vala` | 公司官方的爬虫技能 |
|
||||
|
||||
来源为 `vala` 的属于公司级别官方技能。
|
||||
|
||||
## 配置
|
||||
|
||||
首次使用需提供配置,保存在 `~/.vala_skillhub_config`:
|
||||
|
||||
- `GITEA_URL` — Gitea 服务地址(默认 `https://git.valavala.com`)
|
||||
- `GITEA_TOKEN` — API Token
|
||||
- `GITEA_OWNER` — SkillHub 账号(默认 `skillhub`)
|
||||
- `SOURCE_NAME` — 当前数字员工的 name
|
||||
|
||||
## 使用方式
|
||||
|
||||
本技能面向 AI 数字员工使用。请参阅 `SKILL.md` 了解完整操作流程和关键命令。
|
||||
127
SKILL.md
Normal file
127
SKILL.md
Normal file
@ -0,0 +1,127 @@
|
||||
# use_vala_skillhub
|
||||
|
||||
管理 Vala SkillHub 上的技能:推送(上传)和安装。
|
||||
|
||||
SkillHub 基于 Gitea,每个技能对应一个 Git 仓库。
|
||||
|
||||
## 命名规则
|
||||
|
||||
仓库名格式:`{skill_name}.{source_name}`
|
||||
|
||||
- `skill_name`:技能目录名(如 `cron_job`、`web_scraper`)
|
||||
- `source_name`:来源名称,即当前数字员工的 name(如 `xiaoxi`)
|
||||
- 如果 `source_name` 为 `vala`,表示公司级别的官方技能
|
||||
|
||||
示例:
|
||||
- `cron_job.xiaoxi` — xiaoxi 的定时任务技能
|
||||
- `web_scraper.vala` — 公司官方的爬虫技能
|
||||
|
||||
## 配置
|
||||
|
||||
操作前需要确认以下配置(保存到 `~/.vala_skillhub_config`):
|
||||
|
||||
| 配置项 | 说明 | 默认值 |
|
||||
|--------|------|--------|
|
||||
| `GITEA_URL` | Gitea 服务地址 | `https://git.valavala.com` |
|
||||
| `GITEA_TOKEN` | Gitea API Token(需有创建仓库和推送权限) | — |
|
||||
| `GITEA_OWNER` | SkillHub 统一账号 | `skillhub` |
|
||||
| `SOURCE_NAME` | 当前数字员工的 name,用于组合仓库名 | — |
|
||||
|
||||
如果配置文件不存在,请询问用户获取以上信息后创建:
|
||||
|
||||
```bash
|
||||
cat > ~/.vala_skillhub_config <<EOF
|
||||
GITEA_URL=https://git.valavala.com
|
||||
GITEA_TOKEN=<token>
|
||||
GITEA_OWNER=skillhub
|
||||
SOURCE_NAME=<name>
|
||||
EOF
|
||||
```
|
||||
|
||||
后续操作前先加载配置:
|
||||
```bash
|
||||
source ~/.vala_skillhub_config
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 操作一:推送技能到 SkillHub
|
||||
|
||||
将本地 `./skills` 下的技能目录推送到 SkillHub。
|
||||
|
||||
### 流程
|
||||
|
||||
1. **确定仓库名**:`repo_name = {skill_dir_name}.{SOURCE_NAME}`
|
||||
|
||||
2. **检查远程仓库是否存在**:
|
||||
```bash
|
||||
curl -s -o /dev/null -w "%{http_code}" \
|
||||
"${GITEA_URL}/api/v1/repos/${GITEA_OWNER}/${repo_name}" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}"
|
||||
```
|
||||
- 返回 200 → 仓库已存在,跳到步骤 4
|
||||
- 返回 404 → 需要创建,执行步骤 3
|
||||
|
||||
3. **创建远程仓库**:
|
||||
```bash
|
||||
curl -s -X POST "${GITEA_URL}/api/v1/user/repos" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name": "'${repo_name}'", "private": false, "description": "技能描述", "auto_init": false}'
|
||||
```
|
||||
|
||||
4. **在技能目录中初始化 Git 并推送**:
|
||||
```bash
|
||||
cd ./skills/<skill_dir_name>
|
||||
git init
|
||||
git checkout -b main
|
||||
git add -A
|
||||
git commit -m "update: sync skill"
|
||||
git remote add origin https://oauth2:${GITEA_TOKEN}@${GITEA_URL#https://}/${GITEA_OWNER}/${repo_name}.git
|
||||
git push -u origin main --force
|
||||
```
|
||||
|
||||
5. **推送后清理 token**(安全起见):
|
||||
```bash
|
||||
git remote set-url origin ${GITEA_URL}/${GITEA_OWNER}/${repo_name}.git
|
||||
```
|
||||
|
||||
### 批量推送
|
||||
|
||||
遍历 `./skills/` 下所有子目录,对每个目录重复以上流程。注意跳过 `use_vala_skillhub` 目录本身。
|
||||
|
||||
---
|
||||
|
||||
## 操作二:从 SkillHub 安装技能
|
||||
|
||||
将 SkillHub 上的技能克隆到本地 `./skills` 目录。
|
||||
|
||||
### 流程
|
||||
|
||||
1. **确定要安装的仓库名**(完整名,如 `cron_job.xiaoxi`)
|
||||
|
||||
2. **检查本地是否已存在**:
|
||||
- 已存在 → `git pull` 更新
|
||||
- 不存在 → `git clone`
|
||||
|
||||
```bash
|
||||
repo_name="cron_job.xiaoxi"
|
||||
target_dir="./skills/${repo_name}"
|
||||
|
||||
if [ -d "$target_dir" ]; then
|
||||
cd "$target_dir" && git pull
|
||||
else
|
||||
git clone "${GITEA_URL}/${GITEA_OWNER}/${repo_name}.git" "$target_dir"
|
||||
fi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 操作三:列出 SkillHub 上的技能
|
||||
|
||||
```bash
|
||||
curl -s "${GITEA_URL}/api/v1/users/${GITEA_OWNER}/repos?page=1&limit=50&sort=updated" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}"
|
||||
```
|
||||
|
||||
返回 JSON 数组,每个元素包含 `name`、`description`、`updated_at` 等字段。如结果满 50 条,继续翻页 `page=2`。
|
||||
8
skill.json
Normal file
8
skill.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "use_vala_skillhub",
|
||||
"version": "2.0.0",
|
||||
"description": "管理 Vala SkillHub 上的技能:推送和安装",
|
||||
"author": "vala",
|
||||
"tags": ["skillhub", "git", "管理"],
|
||||
"config_file": "~/.vala_skillhub_config"
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user