Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
7.4 KiB
belongs_to
| belongs_to | |
|---|---|
|
🔧 铸渊指令|syslog-pipeline.yml 迁移至根目录 workflows · 修复飞书→Notion自动写入断链(2026-03-14·霜砚签发)
签发者:霜砚(Notion执行体)
签发时间:2026-03-14 22:10+08:00
执行者:铸渊(GitHub执行体)
优先级:P0-紧急
背景
飞书→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收件箱 ❌ 未写入
⚠️ 重要:保护开发者仓库入口
执行指令
铸渊读到此指令后立即执行,不等人。
Step 0 · 盘点子目录下所有 workflow(先查后动)
# 列出子目录下所有 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 到根目录
# 确认源文件存在
ls -la guanghulab-main/.github/workflows/syslog-pipeline.yml
# 复制到根目录 workflows(cp 复制,不要 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: 触发条件包含:
on:
push:
paths:
- 'syslog-inbox/**'
如果触发条件不对(比如写的是 guanghulab-main/syslog-inbox/** 或其他路径),修改为上述正确路径。
Step 3 · 检查 pipeline 依赖的脚本
pipeline 执行的 process-syslog.js 脚本路径也需要确认:
- 如果脚本在
guanghulab-main/scripts/process-syslog.js,也需要复制到根目录scripts/下 - 确保 pipeline 中引用的路径与实际文件位置一致
# 检查脚本位置
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 · 提交并推送
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 · 验证
推送完成后,进行端到端测试:
- 在飞书给舒舒发一条测试SYSLOG
- 确认
feishu-syslog-bridge.yml触发并成功(写入syslog-inbox/) - 确认
syslog-pipeline.yml随后自动触发 - 确认 Notion SYSLOG收件箱(数据库ID:
330ab17507d542c9bbb96d0749b41197)出现新记录
验收标准
- ✅
.github/workflows/syslog-pipeline.yml存在于仓库根目录 - ✅ pipeline 触发条件正确指向
syslog-inbox/** - ✅
process-syslog.js脚本路径可达 - ✅ 飞书发SYSLOG → bridge 写入 → pipeline 自动触发 → Notion 收件箱出现新记录
- ✅ 全链路端到端测试通过
修复后的完整链路
飞书开发者发日志
→ 舒舒识别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