Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
5.9 KiB
5.9 KiB
belongs_to
| belongs_to | |
|---|---|
|
🧪 铸渊指令|Notion数据桥连通性验证(2026-03-09·霜砚签发)
指令目标
验证 GitHub Actions 能否通过已配置的 NOTION_TOKEN 成功调用 Notion API,确认数据桥双向通路已打通。
验证步骤(铸渊自行执行·不等人)
Step 1 · Secrets 可读性验证
在任意 workflow 中确认 NOTION_TOKEN secret 存在且非空:
- 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 有效:
- 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 有权限访问:
- 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 · 变更日志数据库访问测试
- 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 · 巡检日志数据库写入测试
- 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
# .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连通性验证全通 ✅
如果部分失败 → 铸渊自动在工单簿创建工单,标注哪个环节失败 + 建议修复方案