🔄 卡若AI 同步 2026-02-15 23:43 | 变更 5 个文件 | 排除 >20MB: 4 个
Some checks failed
Sync GitHub to CKB NAS Gitea / sync (push) Has been cancelled
Some checks failed
Sync GitHub to CKB NAS Gitea / sync (push) Has been cancelled
This commit is contained in:
@@ -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 | 凭证 |
|
||||
|
||||
76
01_卡资(金)/_团队成员/金仓/Gitea管理/references/Webhook与本地协同方案.md
Normal file
76
01_卡资(金)/_团队成员/金仓/Gitea管理/references/Webhook与本地协同方案.md
Normal file
@@ -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拉取)
|
||||
```
|
||||
32
01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh
Executable file
32
01_卡资(金)/_团队成员/金仓/Gitea管理/scripts/auto_sync_suanli_juzhen.sh
Executable file
@@ -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 "推送失败"
|
||||
@@ -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 个 |
|
||||
|
||||
@@ -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) |
|
||||
|
||||
Reference in New Issue
Block a user