常见问题与故障排查
为什么 Discord 机器人显示为离线?
机器人从不连接 Discord Gateway——它始终通过 REST API 发送消息,并通过 HTTPS Interactions Endpoint 接收交互。离线是正常现象,不影响消息投递。
我的 webhook 没有被转发
按顺序检查:
GET /health返回{"status":"ok"}。- webhook URL 指向
{BASE_URL}/webhook,且密钥与GITHUB_WEBHOOK_SECRET/GITEA_WEBHOOK_SECRET一致。 - 存在至少一条启用且匹配该事件(
event过滤器)的路由,且其分组允许该发送者(见分组的owners/providers/installationId)。 - 路由至少有一个目标,且频道/群组 id 有效。
- 查看控制台日志标签页——每次分发尝试都会记录错误。
Discord 机器人不响应命令/按钮
- 必须设置
DISCORD_PUBLIC_KEY,且 Interactions Endpoint URL 指向{BASE_URL}/discord/interactions。 - 用户需先执行
/gh login,且 OAuth 密钥(GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET、BASE_URL)已配置。 - 斜杠命令由定时任务每 5 分钟同步;全局注册可能需要约 1 小时传播。
删除分支后收到"0 个提交"的推送消息
通过 git push --delete 删除分支时,事件以 deleted: true 的 push 事件到达——会被渲染为正常的删除消息。若仍看到"0 个提交",说明载荷中缺少 deleted 标志(例如旧投递)。
如何让分组使用自己的 webhook 端点?
见分组端点——在分组的 Webhook 端点面板(owner 角色)生成密钥,然后用 POST /webhook/{groupId} 与分组密钥发送。
可以脱离 Cloudflare Workers 运行吗?
不能——Worker 依赖 wrangler.jsonc 中声明的 KV 与 D1 绑定,并运行在 cloudflare_module Nitro preset 上。
数据存储在哪里?
配置存于 Cloudflare KV(config:routes、config:groups);发送/审计日志与平台↔GitHub 绑定存于 D1。见存储布局。