dd2a0999bb
ci/woodpecker/push/woodpecker Pipeline failed
- 使用 PAYLOAD=$(cat <<ENDPAYLOAD) 替代 cat > file <<EOF - 确保环境变量在 heredoc 中正确展开 - 添加测试脚本验证环境变量展开 - 修复构建详情链接和消息内容缺失问题
56 lines
1.7 KiB
Bash
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
|