initial backup 2026-03-31 11:01:23
This commit is contained in:
parent
2e2c647b48
commit
c8c3f2fb11
@ -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,按指定时间自动执行备份
|
||||
## 配置参数
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user