update skill: add auto create repo feature, complete flow documentation

This commit is contained in:
ai_member_only 2026-03-31 10:56:21 +08:00
parent e707cf6c63
commit 51fadd5feb
2 changed files with 36 additions and 0 deletions

View File

@ -2,11 +2,21 @@
## 功能说明
自动将OpenClaw workspace内容定期备份到Git仓库自动过滤敏感信息无硬编码凭证。
## 特性
- ✅ 全流程自动化无需手动提前创建Git仓库
- ✅ 自动排除密钥、密码等敏感文件secrets.md、.env、*.key等
- ✅ 内置公司Git服务git.valavala.com支持无需额外配置地址
- ✅ 支持自定义定时备份时间
- ✅ 敏感信息通过参数传入不存储在skill代码中
- ✅ 自动生成备份日志,便于排查问题
## 完整执行流程
1. 检查传入的Git Token是否有效
2. 自动检查对应Git仓库是否存在不存在则调用API自动创建
3. 初始化本地Git仓库如果未初始化
4. 配置.gitignore敏感文件过滤规则
5. 配置Git用户信息和远程仓库地址
6. 首次提交并推送所有非敏感文件
7. 创建备份执行脚本和日志目录
8. 添加定时任务到系统crontab按指定时间自动执行备份
## 配置参数
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|

View File

@ -6,6 +6,32 @@ GIT_USERNAME="$2"
GIT_EMAIL="$3"
GIT_REPO_URL="${4:-https://git.valavala.com/${GIT_USERNAME}/ai_member_${GIT_USERNAME}.git}"
CRON_SCHEDULE="${5:-30 8 * * *}"
# 自动创建Git仓库如果不存在
REPO_NAME="ai_member_${GIT_USERNAME}"
echo "🔍 检查Git仓库是否存在: $REPO_NAME"
REPO_CHECK=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $GIT_TOKEN" "https://git.valavala.com/api/v1/repos/$GIT_USERNAME/$REPO_NAME")
if [ "$REPO_CHECK" -eq 404 ]; then
echo "🆕 仓库不存在,自动创建中..."
CREATE_RESPONSE=$(curl -s -X POST "https://git.valavala.com/api/v1/user/repos" \
-H "Authorization: token $GIT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$REPO_NAME\",
\"private\": false,
\"description\": \"${GIT_USERNAME} workspace 备份\",
\"auto_init\": false
}")
if echo "$CREATE_RESPONSE" | grep -q '"id":'; then
echo "✅ 仓库创建成功: https://git.valavala.com/$GIT_USERNAME/$REPO_NAME"
else
echo "❌ 仓库创建失败: $CREATE_RESPONSE"
exit 1
fi
elif [ "$REPO_CHECK" -eq 200 ]; then
echo "✅ 仓库已存在,跳过创建"
else
echo "⚠️ 仓库检查失败HTTP状态码: $REPO_CHECK,继续执行配置"
fi
WORKSPACE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../" && pwd)"
# 初始化Git仓库
cd "$WORKSPACE_DIR"