120 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# 📡 铸渊指令飞书SYSLOG接收workflow · feishu-syslog → syslog-inbox 自动桥接2026-03-14·曜冥签发
---
> **签发者**:曜冥(语言主控层·观察层)
>
> **签发时间**2026-03-14 21:30+08:00
>
> **执行者**铸渊GitHub侧执行体
>
> **优先级**P0-紧急
>
> **目的**:打通 飞书舒舒 → GitHub铸渊 → Notion霜砚 的SYSLOG自动闭环
>
---
## 背景
飞书舒舒feishu-shushu v2.0.0已具备SYSLOG识别+转发能力。当开发者在飞书发送SYSLOG时舒舒会通过 `repository_dispatch` 将SYSLOG转发到GitHub仓库event_type 为 `feishu-syslog`
**当前问题**:仓库根目录 `.github/workflows/` 下没有监听 `feishu-syslog` 事件的workflow导致舒舒发出的dispatch无人接收SYSLOG链路断裂。
仓库内已有完整的SYSLOG处理pipeline`guanghulab-main/.github/workflows/syslog-pipeline.yml`),触发条件是 `syslog-inbox/` 目录有新文件push到main。
**解决方案**在仓库根目录创建一个桥接workflow监听 `feishu-syslog` dispatch事件 → 将SYSLOG内容写入 `syslog-inbox/` 目录 → 自动触发已有pipeline。
---
## 执行指令
在仓库根目录创建文件:`.github/workflows/feishu-syslog-bridge.yml`
文件内容如下:
```yaml
name: 铸渊 · 飞书SYSLOG桥接
on:
repository_dispatch:
types: [feishu-syslog]
jobs:
bridge-feishu-syslog:
name: 📡 飞书SYSLOG → syslog-inbox
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: main
- name: 📥 写入 syslog-inbox
env:
SYSLOG_RAW: ${{ toJson(github.event.client_payload) }}
run: |
mkdir -p syslog-inbox
TIMESTAMP=$(date -u +%Y%m%d-%H%M%S)
SOURCE=$( echo "$SYSLOG_RAW" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('source','unknown'))" 2>/dev/null || echo 'feishu' )
FILENAME="syslog-inbox/${TIMESTAMP}_${SOURCE}.json"
echo "$SYSLOG_RAW" > "$FILENAME"
echo "📥 SYSLOG已写入: $FILENAME"
echo "📋 内容预览:"
cat "$FILENAME" | head -20
- name: 提交到仓库
run: |
git config user.name "铸渊[bot]"
git config user.email "zhu-yuan-bot@guanghulab.com"
git add syslog-inbox/
git diff --staged --quiet || git commit -m "📡 feishu-syslog: 飞书舒舒转发SYSLOG [auto-bridge]"
git push
- name: ✅ 桥接完成
run: |
echo "✅ 飞书SYSLOG已桥接到 syslog-inbox/"
echo "📡 等待 syslog-pipeline 自动触发处理"
```
---
## 验收标准
1. 文件 `.github/workflows/feishu-syslog-bridge.yml` 存在于仓库根目录
2. 飞书发送SYSLOG后GitHub Actions出现 `铸渊 · 飞书SYSLOG桥接` workflow运行记录
3. `syslog-inbox/` 目录出现新的JSON文件
4. 随后 `铸渊 · SYSLOG Pipeline (A/D/E)` 被自动触发
---
## 注意事项
- `syslog-pipeline.yml` 目前在 `guanghulab-main/.github/workflows/` 子目录下GitHub Actions不会自动执行子目录里的workflow。如果pipeline没有触发需要将 `syslog-pipeline.yml` 也复制到仓库根目录 `.github/workflows/` 下。
- 舒舒侧代码无需改动,当前的 `repository_dispatch` + `feishu-syslog` event_type已正确。
- 此workflow不处理SYSLOG内容不解析、不判断只做桥接搬运。解析和处理由已有的 `process-syslog.js` 负责。
---
## 链路全景
```
开发者在飞书发SYSLOG
→ 舒舒识别SYSLOG → repository_dispatch(feishu-syslog)
→ [本workflow] 写入 syslog-inbox/xxx.json → git push
→ syslog-pipeline.yml 自动触发
→ process-syslog.js 处理
→ Notion SYSLOG收件箱 + 霜砚工单
```
---
> 曜冥签发 · 2026-03-14 · 最小改动原则 · 舒舒不动 · 铸渊配合桥接
>