Compare commits

...

12 Commits

Author SHA1 Message Date
66d3801e43 chore: auto release commit (2026-03-30 19:25:21)
All checks were successful
技能自动化发布 / release (push) Successful in 17s
2026-03-30 19:25:21 +08:00
973547b6fb chore: auto release commit (2026-03-30 19:10:46)
Some checks failed
技能自动化发布 / release (push) Failing after 0s
2026-03-30 19:10:46 +08:00
edaac8aa45 chore: auto release commit (2026-03-24 18:22:46)
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 9s
2026-03-24 18:22:46 +08:00
157f51c765 chore: auto release commit (2026-03-24 18:07:44)
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 9s
2026-03-24 18:07:44 +08:00
d54a69cba8 chore: auto release commit (2026-03-24 18:06:10) 2026-03-24 18:06:10 +08:00
3b6f15ecbb chore: auto release commit (2026-03-24 18:05:25) 2026-03-24 18:05:25 +08:00
cd131697d5 修改版本
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 14s
2026-03-24 16:42:34 +08:00
2e3ac2cfe7 feat: separate skill display name from slug
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 11s
Set SKILL name to Chinese display text and add openclaw.slug for stable machine identifier, so database records can keep readable names while preserving stable install path keys.

Made-with: Cursor
2026-03-24 16:24:09 +08:00
bea22d5e9e ci: enforce tag-based version and strict sync checks
Use Git tag as release version, validate SKILL.md version consistency, and fail workflow when API business code is not success.
2026-03-24 16:14:06 +08:00
7759e0b376 fix: add required openclaw metadata for skill sync
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 12s
Include category and pricing-related openclaw metadata in SKILL frontmatter so /api/skill/update validation can pass during CI sync.

Made-with: Cursor
2026-03-24 15:55:39 +08:00
92a9d61007 ci: use mirrored checkout action
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 11s
Switch workflow checkout step to internal Gitea mirrored actions-checkout to reduce external GitHub dependency and speed up setup.

Made-with: Cursor
2026-03-24 15:09:02 +08:00
16b3f50dac ci: set artifact_type=skill for release upload
All checks were successful
技能自动化发布 (测试版-无鉴权) / build-and-deploy (push) Successful in 14s
2026-03-24 14:20:34 +08:00
3 changed files with 37 additions and 101 deletions

View File

@@ -1,75 +1,11 @@
name: 技能自动化发布 (测试版-无鉴权)
name: 技能自动化发布
on:
push:
tags: ["v*"]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 1. 下载源码
- uses: actions/checkout@v3
# 2. 环境及工具准备
- name: Setup Tools
# 优化:使用国内清华源加速安装速度
run: pip install pyarmor requests python-frontmatter --break-system-packages -i https://pypi.tuna.tsinghua.edu.cn/simple
# 3. 【核心步骤】PyArmor 源代码混淆加密
- name: Encrypt Source Code
run: |
mkdir -p dist/package
pyarmor gen -O dist/package scripts/*.py
cp SKILL.md dist/package/
# 4. 提取元数据并物理打包
- name: Parse Metadata and Pack
id: build_task
run: |
python -c "
import frontmatter, os, json, shutil
post = frontmatter.load('SKILL.md')
metadata = post.metadata
slug = metadata['name']
version = metadata['version']
# 安全写入输出
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
f.write(f'slug={slug}\n')
f.write(f'version={version}\n')
f.write(f'metadata={json.dumps(metadata)}\n')
# 制作最终的发布 ZIP 包
shutil.make_archive(slug, 'zip', 'dist/package')
"
# 5. 同步数据库记录
- name: Sync Database (V2.0)
env:
METADATA_JSON: ${{ steps.build_task.outputs.metadata }}
run: |
python -c "
import requests, json, os
metadata = json.loads(os.environ['METADATA_JSON'])
url = 'https://jc2009.com/api/skill/update'
res = requests.post(url, json=metadata)
print(f'DB Sync Result: {res.text}')
if res.status_code != 200: exit(1)
"
# 6. 上传物理包
- name: Upload Encrypted ZIP
env:
SLUG: ${{ steps.build_task.outputs.slug }}
VERSION: ${{ steps.build_task.outputs.version }}
run: |
python -c "
import requests, os
url = 'https://jc2009.com/api/upload'
slug = os.environ['SLUG']
version = os.environ['VERSION']
payload = {'plugin_name': slug, 'version': version}
with open(f'{slug}.zip', 'rb') as f:
res = requests.post(url, data=payload, files={'file': f})
print(f'Upload Result: {res.text}')
if res.status_code != 200: exit(1)
"
release:
uses: admin/jiangchang-platform-kit/.github/workflows/reusable-release-skill.yaml@main
with:
artifact_platform: windows
pyarmor_platform: windows.x86_64

View File

@@ -1,16 +1,21 @@
---
name: account-manager
name: 账号管理
description: 多平台多账号管理。管理各平台账号与Chrome Profile的对应关系供publisher类Skill调用获取账号信息。
version: 1.0.1
author: 深圳匠厂科技有限公司
metadata:
openclaw:
slug: account-manager
emoji: "👤"
category: "通用"
skill_type: 1
monthly_price: 0
yearly_price: 0
allowed-tools:
- bash
---
# 账号管理
# 账号管理
## 使用时机
@@ -24,31 +29,3 @@ allowed-tools:
### 列出某平台所有账号
```bash
python3 {baseDir}/scripts/account.py list <platform>
```
### 获取某个账号详情
```bash
python3 {baseDir}/scripts/account.py get <account_id>
```
### 初始化账号登录(首次使用,打开浏览器手动登录)
```bash
python3 {baseDir}/scripts/account.py login <account_id>
```
## 输出格式
- list逐行返回账号ID和名称
- get返回账号完整信息
- login打开浏览器后提示用户手动完成登录
## 错误处理
- 账号不存在:提示"未找到该账号请检查账号ID是否正确"
- 平台无账号:提示"该平台暂无账号请先在accounts.json中添加"
## 注意事项
- 账号档案存储在 `accounts.json`,新增账号需手动编辑该文件
- Chrome Profile目录首次登录后自动创建登录态永久保存
- 每个账号只需初始化登录一次

23
release.ps1 Normal file
View File

@@ -0,0 +1,23 @@
[CmdletBinding()]
param(
[string]$Prefix = "v",
[string]$Message = "正式发布",
[switch]$AutoCommit,
[switch]$RequireClean,
[string]$CommitMessage,
[switch]$DryRun
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$sharedScript = Join-Path $scriptDir "..\jiangchang-platform-kit\tools\release.ps1"
$sharedScript = [System.IO.Path]::GetFullPath($sharedScript)
if (-not (Test-Path $sharedScript)) {
throw "Shared release script not found: $sharedScript"
}
& $sharedScript @PSBoundParameters
exit $LASTEXITCODE