--- belongs_to: - "[[INDEX · 铸渊·协作指令|GitHub ↔ Notion 桥接协议]]" --- # 🧪 铸渊指令|Notion数据桥连通性验证(2026-03-09·霜砚签发) --- ## 指令目标 验证 GitHub Actions 能否通过已配置的 `NOTION_TOKEN` 成功调用 Notion API,确认数据桥双向通路已打通。 --- ## 验证步骤(铸渊自行执行·不等人) ### Step 1 · Secrets 可读性验证 在任意 workflow 中确认 `NOTION_TOKEN` secret 存在且非空: ```yaml - name: Check NOTION_TOKEN exists run: | if [ -z "$NOTION_TOKEN" ]; then echo "❌ NOTION_TOKEN is empty or not set" exit 1 else echo "✅ NOTION_TOKEN is set (length: ${#NOTION_TOKEN})" fi env: NOTION_TOKEN: $ secrets.NOTION_TOKEN ``` ### Step 2 · Notion API 基础连通测试 调用 Notion API 的 `/v1/users/me` 端点,验证 Token 有效: ```yaml - name: Test Notion API connectivity run: | RESPONSE=$(curl -s -w "\n%{http_code}" \ -H "Authorization: Bearer $NOTION_TOKEN" \ -H "Notion-Version: 2022-06-28" \ https://api.notion.com/v1/users/me) HTTP_CODE=$(echo "$RESPONSE" | tail -1) BODY=$(echo "$RESPONSE" | head -n -1) echo "HTTP Status: $HTTP_CODE" echo "Response: $BODY" if [ "$HTTP_CODE" = "200" ]; then echo "✅ Notion API 连通成功!Token 有效。" else echo "❌ Notion API 连通失败。HTTP $HTTP_CODE" echo "可能原因:Token无效 / Token未关联Integration / 网络问题" exit 1 fi env: NOTION_TOKEN: $ secrets.NOTION_TOKEN ``` ### Step 3 · 目标数据库写入测试 向 **📥 GitHub SYSLOG 收件箱** 数据库尝试查询,验证 Integration 有权限访问: ```yaml - name: Test SYSLOG Inbox DB access run: | # SYSLOG收件箱数据库ID DB_ID="330ab17507d542c9bbb96d0749b41197" RESPONSE=$(curl -s -w "\n%{http_code}" \ -X POST \ -H "Authorization: Bearer $NOTION_TOKEN" \ -H "Notion-Version: 2022-06-28" \ -H "Content-Type: application/json" \ -d '{"page_size": 1}' \ https://api.notion.com/v1/databases/$DB_ID/query) HTTP_CODE=$(echo "$RESPONSE" | tail -1) BODY=$(echo "$RESPONSE" | head -n -1) echo "HTTP Status: $HTTP_CODE" if [ "$HTTP_CODE" = "200" ]; then echo "✅ SYSLOG收件箱数据库 读取权限正常" else echo "❌ SYSLOG收件箱数据库 访问失败。HTTP $HTTP_CODE" echo "可能原因:Integration未连接到该数据库 → 妈妈需在数据库 ··· → 连接 → 添加铸渊信号桥" exit 1 fi env: NOTION_TOKEN: $ secrets.NOTION_TOKEN ``` ### Step 4 · 变更日志数据库访问测试 ```yaml - name: Test Change Log DB access run: | # GitHub变更日志数据库ID DB_ID="e740b77aa6bd4ac0a2e8a75f678fba98" RESPONSE=$(curl -s -w "\n%{http_code}" \ -X POST \ -H "Authorization: Bearer $NOTION_TOKEN" \ -H "Notion-Version: 2022-06-28" \ -H "Content-Type: application/json" \ -d '{"page_size": 1}' \ https://api.notion.com/v1/databases/$DB_ID/query) HTTP_CODE=$(echo "$RESPONSE" | tail -1) if [ "$HTTP_CODE" = "200" ]; then echo "✅ GitHub变更日志数据库 读取权限正常" else echo "❌ GitHub变更日志数据库 访问失败。HTTP $HTTP_CODE" exit 1 fi env: NOTION_TOKEN: $ secrets.NOTION_TOKEN ``` ### Step 5 · 巡检日志数据库写入测试 ```yaml - name: Test Patrol Log DB access run: | # 霜砚维护日志数据库ID(妈妈已连接铸渊信号桥) DB_ID="这里铸渊从routing-map.json的infra.notion_bridge中读取" echo "✅ 巡检日志数据库ID从routing-map.json获取" echo "如routing-map.json中未包含此ID,铸渊跳过此步,在报告中标注" env: NOTION_TOKEN: $ secrets.NOTION_TOKEN ``` --- ## 推荐执行方式 铸渊可以选择以下任一方式执行: **方式A(推荐)**:创建一个专用验证 workflow ```yaml # .github/workflows/test-notion-bridge.yml name: "🧪 Notion Bridge Connectivity Test" on: workflow_dispatch: # 手动触发 push: paths: - '.github/workflows/test-notion-bridge.yml' jobs: test-notion: runs-on: ubuntu-latest steps: # 把上面 Step 1-5 的所有步骤放这里 ``` **方式B**:在现有的 `zhuyuan-daily-selfcheck.yml` 中新增一个 Notion 连通性检查 step --- ## 验收标准 | **检查项** | **期望结果** | NOTION_TOKEN 存在 | ✅ 非空 | | --- | --- | --- | --- | | /v1/users/me 返回 200 | ✅ Token 有效 | SYSLOG收件箱可查询 | ✅ HTTP 200 | | 变更日志可查询 | ✅ HTTP 200 | 巡检日志可查询 | ✅ HTTP 200(妈妈已连接Integration) | --- ## 执行完成后 铸渊在本次验证 workflow 的日志中输出完整报告,格式: ``` ━━━ Notion数据桥连通性验证报告 ━━━ 验证时间:2026-03-09 HH:mm UTC ① NOTION_TOKEN:✅/❌ ② API基础连通:✅/❌(HTTP xxx) ③ SYSLOG收件箱:✅/❌(HTTP xxx) ④ 变更日志库:✅/❌(HTTP xxx) ⑤ 巡检日志库:✅/❌(HTTP xxx) 总结:X/5 通过 数据桥状态:已打通 / 部分打通 / 未打通 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` 如果全部通过 → 铸渊在 commit message 中标注 `[GL-BRIDGE] Notion连通性验证全通 ✅` 如果部分失败 → 铸渊自动在工单簿创建工单,标注哪个环节失败 + 建议修复方案