You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub WebHook与Drone集成失效求助:OAuth有效但推送无响应

GitHub WebHook与Drone集成故障排查

我已确认OAuth配置有效,但推送代码时GitHub WebHook无法触发Drone流水线。相关信息如下:

配置截图

  • [OAuth配置截图1]
  • [OAuth配置截图2]

相关日志

服务器日志

{
  "acme": false,
  "host": "5685-220-136-43-106.ngrok-free.app",
  "level": "info",
  "msg": "starting the http server",
  "port": ":80",
  "proto": "http",
  "time": "2023-04-13T11:54:15Z",
  "url": "http://5685-220-136-43-106.ngrok-free.app"
}
{
  "interval": "30m0s",
  "level": "info",
  "msg": "starting the cron scheduler",
  "time": "2023-04-13T11:54:15Z"
}
{
  "interval": "24h0m0s",
  "level": "info",
  "msg": "starting the zombie build reaper",
  "time": "2023-04-13T11:54:15Z"
}

注:我怀疑日志中的starting the zombie build reaper可能是问题点,但不确定。

Runner日志

time="2023-04-13T11:54:15Z" level=info msg="successfully pinged the remote server"
time="2023-04-13T11:54:15Z" level=info msg="polling the remote server" arch=amd64 capacity=3 endpoint="http://drone-server" kind=pipeline os=linux type=docker

Drone通过ngrok生成公网URL。

Docker Compose配置

drone-server:
    image: drone/drone:2
    container_name: drone-server
    volumes:
      - ./var/drone_server/:/var/lib/drone/
    environment:
      - DRONE_SERVER_HOST=${DRONE_SERVER_HOST}
      - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO}
      - DRONE_RPC_SECRET=${DRONE_RPC_SECRET}

      - DRONE_GITHUB_SERVER=https://github.com
      - DRONE_GITHUB_CLIENT_ID=${DRONE_GITHUB_CLIENT_ID}
      - DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET}

      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_COLOR=true
    ports:
      - 80:80
    restart: always
      
  drone-runner:
    image: drone/drone-runner-docker:1
    container_name: drone-runner
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_HOST=${DRONE_RPC_HOST}
      - DRONE_RPC_PROTO=${DRONE_RPC_PROTO}
      - DRONE_RPC_SECRET=${DRONE_RPC_SECRET}

      - DRONE_RUNNER_CAPACITY=3
    restart: always

.env文件内容

DRONE_SERVER_HOST=5685-220-136-43-106.ngrok-free.app
DRONE_SERVER_PROTO=http

DRONE_RPC_HOST=drone-server
DRONE_RPC_SECRET=5a9289b7d9676e80498738883e072b5c
DRONE_RPC_PROTO=http

DRONE_GITHUB_CLIENT_ID=9ebf7416####1724ebd
DRONE_GITHUB_CLIENT_SECRET=1f3d#####f52dfd9e8a51dc13873#####d3eb34

drone.yml配置

kind: pipeline
type: docker
name: default

trigger:
  branch: 
    - master
  event: 
    - push

platform:
  os: linux
  arch: amd64

steps:
- name: build-image
  image: docker:latest
  commands:
  - docker build -t backendtest .
  - docker rmi $(docker images -q -f dangling=true)

请问我还需要进行哪些额外设置?


排查建议

1. 检查GitHub WebHook配置

  • 确认仓库WebHook URL是http://5685-220-136-43-106.ngrok-free.app/hook,必须带/hook路径,这是Drone接收WebHook的固定端点。
  • 验证WebHook的Secret和Drone的DRONE_RPC_SECRET完全一致,注意大小写、特殊字符。
  • 确认WebHook触发事件勾选了Push,和drone.yml的trigger.event匹配。
  • 查看GitHub WebHook的「Recent Deliveries」,如果有失败记录,直接看错误详情(比如404、403状态码)。

2. 验证ngrok连通性

  • 访问http://5685-220-136-43-106.ngrok-free.app,确认Drone页面正常加载,排除隧道失效。
  • 查看ngrok终端日志,确认有来自GitHub的请求到达。

3. 补充Drone服务器配置

  • 添加环境变量DRONE_LOGS_LEVEL=debug,重启服务器后再推送代码,查看是否有WebHook相关日志(当前日志只有启动信息,没有请求记录)。
  • 确认Drone控制台中对应仓库是「Active」状态,若为「Inactive」需手动激活。

4. 流水线配置检查

  • 确保.drone.yml在master分支根目录下,和触发器的branch: master对应。

关于「zombie build reaper」的说明

这条日志是正常的,Drone会定期清理僵尸构建进程,和WebHook触发问题无关,不用在意。

内容的提问来源于stack exchange,提问作者GoldenMagicDoge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:07:39