Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
123 lines
3.8 KiB
Markdown
123 lines
3.8 KiB
Markdown
---
|
||
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
|
||
``` |