120 lines
3.9 KiB
Markdown
120 lines
3.9 KiB
Markdown
|
|
# 📡 铸渊指令|飞书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 · 最小改动原则 · 舒舒不动 · 铸渊配合桥接
|
|||
|
|
>
|