Files
novalon-website/scripts/tools/capture-webhook.sh
T

56 lines
1.7 KiB
Bash

#!/bin/bash
echo "=== 捕获 Gitea Webhook Header ==="
echo ""
echo "1. 创建临时 webhook 接收器..."
cat > /tmp/capture-webhook.py << 'PYEOF'
#!/usr/bin/env python3
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
import sys
class WebhookHandler(BaseHTTPRequestHandler):
def do_POST(self):
print("\n=== 收到 Webhook 请求 ===")
print(f"Path: {self.path}")
print("\nHeaders:")
for key, value in self.headers.items():
print(f" {key}: {value}")
content_length = int(self.headers.get('Content-Length', 0))
body = self.rfile.read(content_length)
print(f"\nBody (前 500 字符):")
print(body.decode('utf-8')[:500])
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(b'{"status":"ok"}')
def log_message(self, format, *args):
pass
if __name__ == '__main__':
port = int(sys.argv[1]) if len(sys.argv) > 1 else 9999
server = HTTPServer(('0.0.0.0', port), WebhookHandler)
print(f"监听端口 {port}...")
server.handle_request()
PYEOF
chmod +x /tmp/capture-webhook.py
echo "2. 在服务器上启动 webhook 接收器..."
echo " 请在另一个终端运行:"
echo " ssh root@139.155.109.62 'python3 /tmp/capture-webhook.py 9999'"
echo ""
echo "3. 或者,让我们检查 Gitea 的 webhook 配置..."
echo ""
echo "检查 Gitea 容器中的 webhook 设置..."
docker exec forgejo ls -la /data/gitea/data/hooks/ 2>/dev/null || echo "没有找到 hooks 目录"
echo ""
echo "检查最近的 webhook 日志..."
docker logs forgejo --since 5m 2>&1 | grep -i webhook | tail -10