Skip to content

agentic-azure-devops/ado-coding-agent

Repository files navigation

Azure DevOps Webhook 接收服务

一个高性能的webhook接收服务,用于监听Azure DevOps发送的hooks事件,并将每个POST消息保存为JSON文件。

特性

  • 🚀 高性能: 基于FastAPI和Uvicorn,支持异步处理
  • 📝 自动记录: 自动将所有webhook事件保存到本地JSON文件
  • 🔒 安全性: 支持webhook签名验证(可选)
  • 📊 日志记录: 完整的请求日志和错误处理
  • 并发处理: 支持多worker进程处理高并发请求
  • 🎯 易于部署: 简单的配置和启动脚本

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

复制 .env.example.env 并根据需要修改配置:

cp .env.example .env

3. 启动服务

# 开发模式
python main.py

# 或使用启动脚本
chmod +x start.sh
./start.sh

4. 配置Azure DevOps Webhook

  1. 在Azure DevOps项目中,进入 Project Settings > Service Hooks
  2. 点击 Create Subscription
  3. 选择 Web Hooks
  4. 配置URL为: http://your-server:8000/webhook/azure-devops
  5. 选择需要监听的事件类型
  6. 保存配置

API端点

  • GET / - 健康检查端点
  • POST /webhook/azure-devops - Azure DevOps webhook接收端点
  • GET /health - 服务健康状态检查
  • GET /stats - 查看接收统计信息

数据存储

所有接收到的webhook事件会保存在 hooks/ 目录下,文件命名格式:

hooks/{event_type}_{timestamp}_{uuid}.json

例如:

hooks/git.push_20251023_143052_a1b2c3d4.json

配置说明

环境变量

  • HOST: 服务绑定的主机地址(默认: 0.0.0.0)
  • PORT: 服务端口(默认: 8000)
  • WORKERS: worker进程数(默认: 4)
  • WEBHOOK_SECRET: webhook签名验证密钥(可选)
  • LOG_LEVEL: 日志级别(DEBUG/INFO/WARNING/ERROR)
  • HOOKS_DIR: webhook数据存储目录
  • MAX_PAYLOAD_SIZE: 最大请求体大小(字节)

性能优化

  • 使用异步I/O处理文件写入
  • 支持多worker进程并发处理
  • 自动处理大payload
  • 高效的JSON序列化

监控和维护

查看实时日志:

tail -f logs/webhook.log

查看接收统计:

curl http://localhost:8000/stats

安全建议

  1. 在生产环境中使用HTTPS
  2. 配置 WEBHOOK_SECRET 进行签名验证
  3. 使用防火墙限制访问来源
  4. 定期清理旧的webhook数据
  5. 监控磁盘空间使用

故障排除

服务无法启动

  • 检查端口是否被占用: lsof -i :8000
  • 检查依赖是否正确安装: pip list
  • 查看错误日志

Webhook未接收到

  • 确认Azure DevOps配置的URL正确
  • 检查防火墙设置
  • 查看服务日志确认请求是否到达

许可证

查看 LICENSE 文件了解详情。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published