diff --git a/01_卡资(金)/_团队成员/金仓/Gitea管理/SKILL.md b/01_卡资(金)/_团队成员/金仓/Gitea管理/SKILL.md index 668184c2..851f4315 100644 --- a/01_卡资(金)/_团队成员/金仓/Gitea管理/SKILL.md +++ b/01_卡资(金)/_团队成员/金仓/Gitea管理/SKILL.md @@ -116,7 +116,18 @@ git push -u gitea main --- -## 十、上传时同步的板块(卡若AI 有更新就上传) +## 十、本地有更新 → 同步到 Gitea(实时协同) + +| 项目 | 脚本 | 说明 | +|------|------|------| +| 卡若AI | `bash _共享模块/auto_sync_gitea.sh` | 代码+百科+代码管理 | +| 分布式算力矩阵 | `bash 01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh` | 代码 | + +**Webhook 说明**:Webhook 是 Gitea→外部(push 后通知飞书/触发部署),**不能**实现本地→Gitea。本地→Gitea 用上述脚本,可定时执行或对话结束时执行。详见 `references/Webhook与本地协同方案.md`。 + +--- + +## 十(续)、卡若AI 上传时同步的板块 执行 `bash _共享模块/auto_sync_gitea.sh` 时会: @@ -132,7 +143,8 @@ git push -u gitea main | 文档 | 路径 | 说明 | |------|------|------| -| Gitea 推送手册 | `_共享模块/references/Gitea推送_卡若AI调用手册.md` | 卡若AI 调用、有更新就上传、代码管理 | +| Webhook与本地协同 | `Gitea管理/references/Webhook与本地协同方案.md` | 本地→Gitea、Webhook 用途、定时 sync | +| Gitea 推送手册 | `_共享模块/references/Gitea推送_卡若AI调用手册.md` | 卡若AI 调用、有更新就上传 | | 工单/合并请求/Wiki/发布 | `_共享模块/references/Gitea_工单与合并请求使用说明.md` | 各功能使用说明 | | 代码管理 | `_共享模块/工作台/代码管理.md` | 每次上传记录 | | 账号与 API | `_共享模块/工作台/00_账号与API索引.md` § Gitea | 凭证 | diff --git a/01_卡资(金)/_团队成员/金仓/Gitea管理/references/Webhook与本地协同方案.md b/01_卡资(金)/_团队成员/金仓/Gitea管理/references/Webhook与本地协同方案.md new file mode 100644 index 00000000..3cb5d87f --- /dev/null +++ b/01_卡资(金)/_团队成员/金仓/Gitea管理/references/Webhook与本地协同方案.md @@ -0,0 +1,76 @@ +# Gitea Webhook 与本地协同方案 + +> 目标:Gitea 上项目与存客宝 NAS Gitea 实时同步,本地有更新即推送到 Gitea,Webhook 负责下游通知。 + +--- + +## 一、角色分工 + +| 方向 | 实现方式 | Webhook 能否实现? | +|:-----|:---------|:-------------------| +| **本地 → Gitea** | 定时/对话结束执行 sync 脚本 | ❌ 不能(Webhook 是 Gitea→外部) | +| **Gitea → 下游** | Webhook 通知外部 URL | ✅ 能 | +| **GitHub → Gitea** | NAS 上 sync_github_to_gitea.sh 每 30 分钟 | 已实现 | + +--- + +## 二、本地有更新 → 同步到 Gitea + +### 2.1 已纳入的项目与脚本 + +| 项目 | 脚本 | 说明 | +|------|------|------| +| 卡若AI | `_共享模块/auto_sync_gitea.sh` | 代码+百科+代码管理 | +| 分布式算力矩阵 | `Gitea管理/scripts/auto_sync_suanli_juzhen.sh` | 代码 | + +### 2.2 定时执行(可选) + +```bash +# 每 5 分钟同步 卡若AI +*/5 * * * * /bin/bash /Users/karuo/Documents/个人/卡若AI/_共享模块/auto_sync_gitea.sh + +# 每 10 分钟同步 分布式算力矩阵 +*/10 * * * * /bin/bash "/Users/karuo/Documents/个人/卡若AI/01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh" +``` + +`crontab -e` 添加上述行,或使用 macOS launchd。 + +### 2.3 卡若AI 行为 + +对话或任务对 卡若AI / 分布式算力矩阵 产生变更后,在对话结束前执行对应 sync 脚本。 + +--- + +## 三、Webhook 用途(Gitea → 外部) + +Webhook 在 **Gitea 有 push/PR 等事件时** 向外部 URL 发 HTTP POST,可用于: + +| 用途 | 目标 URL 示例 | 说明 | +|------|---------------|------| +| 飞书/钉钉通知 | 飞书机器人 Webhook | push 后通知团队 | +| 触发部署 | 自建服务 /deploy?repo=xxx | 收到 push 后拉取并部署 | +| 触发 NAS 拉取 | NAS 上的 HTTP 服务 | Gitea 有更新时拉取到指定目录 | + +### 3.1 配置 Webhook + +1. Gitea → 用户设置 → Web 钩子 → 添加 Web 钩子 +2. 选「Gitea」或「HTTP」,填目标 URL +3. 勾选触发事件:push、pull request 等 +4. 用户级钩子会对**所有拥有的仓库**生效 + +### 3.2 局限性 + +- **不能**实现:本地文件变化 → 自动 push 到 Gitea +- **能**实现:Gitea 有 push → 通知/触发下游 + +--- + +## 四、整体流程 + +``` +本地编辑 ──(定时/对话结束)──▶ sync 脚本 ──▶ push ──▶ Gitea + │ + ▼ + Webhook 通知外部 + (飞书/部署/NAS拉取) +``` diff --git a/01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh b/01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh new file mode 100755 index 00000000..b35483fd --- /dev/null +++ b/01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# 分布式算力矩阵 → Gitea 同步 +# 本地有更新即推送到 open.quwanzhi.com:3000/fnvtk/suanli-juzhen +# 用法:定时执行 或 对话/任务结束后执行 + +REPO_DIR="/Users/karuo/Documents/1、金:项目/3、自营项目/分布式算力矩阵" +REMOTE="gitea" +BRANCH="main" +MAX_SIZE_MB=5 +mkdir -p "$REPO_DIR/00_agent对话记录" +LOG_FILE="$REPO_DIR/00_agent对话记录/sync.log" + +log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE" 2>/dev/null || true; } + +cd "$REPO_DIR" || { log "错误:无法进入 $REPO_DIR"; exit 1; } + +# 排除 >5MB +if [ -f ".gitignore" ] && grep -q "超过.*MB" .gitignore 2>/dev/null; then + LARGE=$(find . -type f -size +${MAX_SIZE_MB}M -not -path "./.git/*" 2>/dev/null | wc -l) + [ "$LARGE" -gt 0 ] && log "排除 ${LARGE} 个 >${MAX_SIZE_MB}MB 文件" +fi + +git add -A 2>/dev/null +if git diff --cached --quiet 2>/dev/null; then + log "无变更,跳过" + exit 0 +fi + +CNT=$(git diff --cached --numstat | wc -l | tr -d ' ') +git commit -m "🔄 同步 $(date '+%Y-%m-%d %H:%M') | ${CNT} 个文件" --quiet 2>/dev/null || exit 1 +git push "$REMOTE" "$BRANCH" --quiet 2>&1 +[ $? -eq 0 ] && log "推送成功 ${CNT} 个文件" || log "推送失败" diff --git a/_共享模块/工作台/gitea_push_log.md b/_共享模块/工作台/gitea_push_log.md index da561a13..3baf3754 100644 --- a/_共享模块/工作台/gitea_push_log.md +++ b/_共享模块/工作台/gitea_push_log.md @@ -9,3 +9,4 @@ | 2026-02-15 23:26:43 | 🔄 卡若AI 同步 2026-02-15 23:26 | 变更 21 个文件 | 排除 >20MB: 4 个 | | 2026-02-15 23:34:04 | 🔄 卡若AI 同步 2026-02-15 23:34 | 变更 7 个文件 | 排除 >20MB: 4 个 | | 2026-02-15 23:38:04 | 🔄 卡若AI 同步 2026-02-15 23:38 | 变更 7 个文件 | 排除 >20MB: 4 个 | +| 2026-02-15 23:38:29 | 🔄 卡若AI 同步 2026-02-15 23:38 | 变更 4 个文件 | 排除 >20MB: 4 个 | diff --git a/_共享模块/工作台/代码管理.md b/_共享模块/工作台/代码管理.md index 621b7246..e1f48fb6 100644 --- a/_共享模块/工作台/代码管理.md +++ b/_共享模块/工作台/代码管理.md @@ -12,3 +12,4 @@ |:---|:---|:---|:---|:---| | 2026-02-15 23:34:04 | 成功 | 失败(百科未初始化或网络) | 🔄 卡若AI 同步 2026-02-15 23:34 | 变更 7 个文件 | 排除 >20MB: 4 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-02-15 23:38:04 | 成功 | 失败(百科未初始化或网络) | 🔄 卡若AI 同步 2026-02-15 23:38 | 变更 7 个文件 | 排除 >20MB: 4 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-02-15 23:38:29 | 成功 | 失败(百科未初始化或网络) | 🔄 卡若AI 同步 2026-02-15 23:38 | 变更 4 个文件 | 排除 >20MB: 4 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |