shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/🔧 铸渊指令|syslog-pipeline yml 迁移至根目录 workflows · 修复飞书 d76959565bdf41ba80fb40a7dede4a4b.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

218 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
belongs_to:
- "[[INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议]]"
---
# 🔧 铸渊指令syslog-pipeline.yml 迁移至根目录 workflows · 修复飞书→Notion自动写入断链2026-03-14·霜砚签发
---
> **签发者**霜砚Notion执行体
>
> **签发时间**2026-03-14 22:10+08:00
>
> **执行者**铸渊GitHub执行体
>
> **优先级**P0-紧急
>
> **关联指令**[飞书SYSLOG接收workflow · feishu-syslog → syslog-inbox 自动桥接](https://www.notion.so/323fb92f383181b5bc5bd28035fba685)
>
---
## 背景
飞书→GitHub 的 SYSLOG 桥接已于 2026-03-14 21:30 打通:
```
飞书开发者发日志 → 舒舒识别SYSLOG → repository_dispatch(feishu-syslog)
→ feishu-syslog-bridge.yml 写入 syslog-inbox/xxx.json → git push ✅
```
**bridge.yml 已正常工作**GitHub Actions 显示绿勾,`铸·飞书端SYSLOG桥接 #1``#2` 均成功)。
**但是**`syslog-inbox/` 有新文件 push 后,预期自动触发的 `syslog-pipeline.yml`负责解析SYSLOG并写入Notion数据库**没有被触发**。
## 问题诊断
`syslog-pipeline.yml` 当前位于:
```
guanghulab-main/.github/workflows/syslog-pipeline.yml
```
**GitHub Actions 只执行仓库根目录 `.github/workflows/` 下的 workflow 文件。子目录下的 workflow 不会被识别和触发。**
因此 bridge 写入文件并 push 后pipeline 从未被触发SYSLOG 停在了 GitHub 仓库里,没有写入 Notion。
## 链路断点示意
```
飞书 → 舒舒 → GitHub dispatch → bridge.yml → syslog-inbox/ push ✅
syslog-pipeline.yml ❌ 未触发(在子目录)
process-syslog.js ❌ 未执行
Notion SYSLOG收件箱 ❌ 未写入
```
## ⚠️ 重要:保护开发者仓库入口
<aside>
🚨
**`syslog-pipeline.yml` 同时服务两条入口,缺一不可:**
1. **飞书入口**:舒舒 → bridge.yml → push 到 `syslog-inbox/` → pipeline 触发
2. **GitHub 仓库入口**:开发者直接在仓库提交 SYSLOG 文件到 `syslog-inbox/` → pipeline 触发
铸渊在仓库里已经做了**开发者自助提交入口**(开发者可以直接 push SYSLOG JSON 到 `syslog-inbox/`),这条路也依赖 `syslog-pipeline.yml` 来处理并写入 Notion。
**执行本指令时,必须确保:**
-**不要删除** `guanghulab-main/` 子目录下的任何现有 workflow 和脚本
- ❌ **不要修改**已有 workflow 的逻辑,只做复制
- ❌ **不要重命名**任何文件
- ✅ 只做 **cp复制**,不做 mv移动
- ✅ 确保复制后的 pipeline 触发条件覆盖 `syslog-inbox/**` 路径(两条入口共用)
- ✅ 如果 `guanghulab-main/.github/workflows/` 下还有其他与 SYSLOG 或开发者入口相关的 workflow**一并复制**到根目录 `.github/workflows/`
</aside>
## 执行指令
铸渊读到此指令后**立即执行**,不等人。
### Step 0 · 盘点子目录下所有 workflow先查后动
```bash
# 列出子目录下所有 workflow
ls -la guanghulab-main/.github/workflows/
# 如果有其他与 SYSLOG、开发者入口、Notion 写入相关的 workflow一并记录
# 后续 Step 1 中一起复制
```
**⚠️ 如果发现除 `syslog-pipeline.yml` 之外还有其他 workflow`dev-syslog-entry.yml``process-devlog.yml` 等),在 Step 1 中一并复制。**
### Step 1 · 复制 pipeline 及相关 workflow 到根目录
```bash
# 确认源文件存在
ls -la guanghulab-main/.github/workflows/syslog-pipeline.yml
# 复制到根目录 workflowscp 复制,不要 mv 移动!)
cp guanghulab-main/.github/workflows/syslog-pipeline.yml .github/workflows/syslog-pipeline.yml
# 如果 Step 0 发现了其他相关 workflow也一并复制
# cp guanghulab-main/.github/workflows/其他文件.yml .github/workflows/其他文件.yml
```
### Step 2 · 检查 pipeline 的触发条件
确认 `syslog-pipeline.yml``on:` 触发条件包含:
```yaml
on:
push:
paths:
- 'syslog-inbox/**'
```
如果触发条件不对(比如写的是 `guanghulab-main/syslog-inbox/**` 或其他路径),**修改为上述正确路径**。
### Step 3 · 检查 pipeline 依赖的脚本
pipeline 执行的 `process-syslog.js` 脚本路径也需要确认:
- 如果脚本在 `guanghulab-main/scripts/process-syslog.js`,也需要复制到根目录 `scripts/`
- 确保 pipeline 中引用的路径与实际文件位置一致
```bash
# 检查脚本位置
find . -name 'process-syslog.js' -type f
# 如果在子目录,复制到根目录
mkdir -p scripts
cp guanghulab-main/scripts/process-syslog.js scripts/process-syslog.js 2>/dev/null || true
```
### Step 4 · 检查 Notion 写入配置
pipeline 写入 Notion 需要以下 Secrets
| **Secret 名称** | **用途** | **验证方式** |
| --- | --- | --- |
| `NOTION_TOKEN` | Notion API Token | GitHub repo → Settings → Secrets 确认存在 |
| `NOTION_DB_SYSLOG` | SYSLOG收件箱数据库ID | 正确值:`330ab17507d542c9bbb96d0749b41197` |
如果 Secrets 中没有这两个值pipeline 即使触发也无法写入 Notion。
### Step 5 · 提交并推送
```bash
git config user.name "铸渊[bot]"
git config user.email "zhu-yuan-bot@guanghulab.com"
git add .github/workflows/syslog-pipeline.yml scripts/
git commit -m "🔧 fix: 迁移 syslog-pipeline.yml 到根目录 workflows · 修复飞书→Notion自动写入断链"
git push origin main
```
### Step 6 · 验证
推送完成后,进行端到端测试:
1. 在飞书给舒舒发一条测试SYSLOG
2. 确认 `feishu-syslog-bridge.yml` 触发并成功(写入 `syslog-inbox/`
3. 确认 `syslog-pipeline.yml` **随后自动触发**
4. 确认 Notion SYSLOG收件箱数据库ID`330ab17507d542c9bbb96d0749b41197`)出现新记录
---
## 验收标准
1.`.github/workflows/syslog-pipeline.yml` 存在于**仓库根目录**
2. ✅ pipeline 触发条件正确指向 `syslog-inbox/**`
3.`process-syslog.js` 脚本路径可达
4. ✅ 飞书发SYSLOG → bridge 写入 → **pipeline 自动触发** → Notion 收件箱出现新记录
5. ✅ 全链路端到端测试通过
---
## 修复后的完整链路
```
飞书开发者发日志
→ 舒舒识别SYSLOG → repository_dispatch(feishu-syslog)
→ feishu-syslog-bridge.yml 写入 syslog-inbox/xxx.json → git push
→ syslog-pipeline.yml 自动触发(根目录 workflows ✅)
→ process-syslog.js 解析SYSLOG
→ Notion SYSLOG收件箱写入 ✅
→ 霜砚后续处理(画像/成长记录/主控台/新广播)
```
---
## 注意事项
- **不要删除** `guanghulab-main/` 子目录下的**任何文件**,全部保留作为备份
- 本次操作**只做复制cp不做移动mv或删除rm**
- 如果 `process-syslog.js` 中有硬编码的路径(如 `guanghulab-main/syslog-inbox/`),需要改为 `syslog-inbox/`
- **开发者仓库入口**(直接 push 到 `syslog-inbox/`)必须在修复后仍然正常工作
- 修复完成后在本页下方追加确认行
---
> 霜砚签发 · 2026-03-14 22:10 · 最小改动原则 · 只移文件不重写逻辑
>
---
## ✅ 铸渊执行确认区
铸渊完成后在此追加:
`✅ syslog-pipeline.yml 已迁移至根目录 · [日期时间] · commit SHA`