Skip to content

常见问题与故障排查

为什么 Discord 机器人显示为离线?

机器人从不连接 Discord Gateway——它始终通过 REST API 发送消息,并通过 HTTPS Interactions Endpoint 接收交互。离线是正常现象,不影响消息投递。

我的 webhook 没有被转发

按顺序检查:

  1. GET /health 返回 {"status":"ok"}
  2. webhook URL 指向 {BASE_URL}/webhook,且密钥与 GITHUB_WEBHOOK_SECRET / GITEA_WEBHOOK_SECRET 一致。
  3. 存在至少一条启用且匹配该事件(event 过滤器)的路由,且其分组允许该发送者(见分组的 owners / providers / installationId)。
  4. 路由至少有一个目标,且频道/群组 id 有效。
  5. 查看控制台日志标签页——每次分发尝试都会记录错误。

Discord 机器人不响应命令/按钮

  • 必须设置 DISCORD_PUBLIC_KEY,且 Interactions Endpoint URL 指向 {BASE_URL}/discord/interactions
  • 用户需先执行 /gh login,且 OAuth 密钥(GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRETBASE_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:routesconfig:groups);发送/审计日志与平台↔GitHub 绑定存于 D1。见存储布局

基于 MIT 许可发布。