shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/🔧 铸渊指令|修复 write-notion-syslog js 属性名映射(2026-03-15· aa29760179e841afb7cba31ddad5eda7.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

123 lines
3.8 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 桥接协议]]"
---
# 🔧 铸渊指令|修复 write-notion-syslog.js 属性名映射2026-03-15·霜砚签发
<aside>
🚨
**紧急修复 · P0 · 霜砚签发 · 2026-03-15 01:22**
**问题**`scripts/write-notion-syslog.js` 写入 Notion SYSLOG 收件箱时,属性名与数据库实际字段不匹配,导致 Notion API 返回 400 错误SYSLOG 无法写入。
**现象**GitHub Actions Pipeline A 显示 ✅(错误被 catch 静默吞掉),但 Notion 收件箱无新数据。
**影响**飞书→GitHub→Notion 全自动闭环断链。飞书和 GitHub 均正常,卡在 Notion 写入。
</aside>
---
## 一、错误日志(原文)
```
❌ Notion 写入失败: Notion API 400:
提交日期 is not a property that exists.
霜砚已读 is not a property that exists.
来源 is not a property that exists.
发邮者ID is not a property that exists.
```
---
## 二、属性名映射修正表
| **代码中当前使用的错误名称** | **Notion 数据库中的正确名称** | **属性类型** |
| --- | --- | --- |
| `提交日期` | `接收时间` | date |
| `霜砚已读` | `处理状态` | status |
| `来源` | `推送方` | text |
| `发邮者ID` | `DEV编号` | select |
---
## 三、修复指令
### 文件位置
```
scripts/write-notion-syslog.js
```
### 修改方式
`write-notion-syslog.js` 中找到所有 Notion API 写入的 properties 对象,将属性名替换为正确名称:
```jsx
// ❌ 错误(当前代码)
properties: {
"提交日期": { date: { start: ... } },
"霜砚已读": { status: { name: "待处理" } },
"来源": { rich_text: [{ text: { content: ... } }] },
"发邮者ID": { select: { name: ... } },
// ... 其他字段
}
// ✅ 正确(改为)
properties: {
"接收时间": { date: { start: ... } },
"处理状态": { status: { name: "待处理" } },
"推送方": { rich_text: [{ text: { content: ... } }] },
"DEV编号": { select: { name: ... } },
// ... 其他字段
}
```
### 快速 sed 命令(如果不想手动改)
```bash
sed -i 's/提交日期/接收时间/g' scripts/write-notion-syslog.js
sed -i 's/霜砚已读/处理状态/g' scripts/write-notion-syslog.js
sed -i 's/"来源"/"推送方"/g' scripts/write-notion-syslog.js
sed -i 's/发邮者ID/DEV编号/g' scripts/write-notion-syslog.js
```
---
## 四、SYSLOG 收件箱完整属性清单(权威参考)
以下是 Notion 数据库 `📥 GitHub SYSLOG 收件箱`ID: `330ab17507d542c9bbb96d0749b41197`)的完整属性名和类型:
| **属性名** | **类型** | **说明** |
| --- | --- | --- |
| `标题` | title | SYSLOG 文件名 / 标题 |
| `DEV编号` | select | DEV-001 ~ DEV-013, DT-USER |
| `commit_sha` | text | Git commit SHA |
| `处理状态` | status | 待处理 / 处理中 / 已处理 / 已归档 |
| `接收时间` | date | 铸渊推送到 Notion 的时间 |
| `推送方` | text | 固定值"铸渊" / "feishu-shushu" 等 |
| `文件内容` | text | SYSLOG 完整 JSON 文本 |
| `来源路径` | text | GitHub 仓库中的文件路径 |
| `协议版本` | select | SYSLOG-v4.0 / v3.0-legacy / 未标记 |
| `广播编号` | text | 对应广播编号 |
| `模块` | text | 模块编号 |
| `环节状态` | select | completed / partial / blocked |
---
## 五、验收标准
- [ ] `write-notion-syslog.js` 中不再包含 `提交日期``霜砚已读``来源`(作为属性名)、`发邮者ID` 四个字符串
- [ ] 从飞书发送一条测试消息 → GitHub Actions Pipeline A 触发 → Notion SYSLOG 收件箱出现新记录
- [ ] 新记录的 `处理状态` = 待处理,`推送方` = feishu-shushu`DEV编号` 正确
---
## 六、执行确认
铸渊完成后,在本页下方追加一行:
```
✅ 属性名映射修复完成 · [日期时间] · commit SHA
```