运行时依赖
版本
1.1.0
安装命令
点击复制技能文档
AI 代码审查技能 自动代码审查服务,结合LLM驱动的差异分析、语音笔记转录和Discord通知,形成统一的审查流程。 功能 LLM 代码分析:将差异发送给GPT-4o,输出结构化JSON(问题数量、建议、批准状态、摘要) 语音笔记转录:通过OpenAI Whisper API转录审查会议录音,文件验证 Discord通知:带有批准状态、问题数量和颜色编码指示器的丰富嵌入通知 URL安全:方案验证防止SSRF攻击所有获取的URL 请求超时:所有HTTP调用强制30秒超时,防止挂起 结构化日志:整个过程中一致的日志记录,使用日志模块 ClawHub发布:内置publish_skill()帮助函数,使用ClawHub CLI 快速开始 # 设置所需环境变量 export OPENAI_API_KEY="sk-..." export DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..." # 可选 # 运行审查 python src/code_review_service.py API 参考 process_pull_request(pr_number, diff_url, voice_note_path=None) 端到端PR审查:获取差异,运行LLM分析,选项转录语音笔记,并发送Discord通知。 返回一个字典,包含keys:issues_found, suggestions, approval, summary, 和可选的voice_note_transcription。 analyze_code_changes(diff_content) 将差异文本发送给GPT-4o进行分析。 返回结构化JSON,包含issues_found, suggestions, approval(approved/needs_changes/rejected),和summary。 transcribe_voice_note(audio_file_path) 验证音频文件存在且非空,然后通过Whisper-1转录。 返回转录文本。 send_discord_notification(message, embed=None) 向配置的Discord webhook发布消息(带有可选的丰富嵌入)。 返回True表示成功。 publish_skill(skill_path, version) 使用clawhub CLI将技能目录发布到ClawHub,指定版本。 配置变量 所需 默认 描述 OPENAI_API_KEY 是 — OpenAI API密钥,用于GPT-4o和Whisper DISCORD_WEBHOOK_URL 否 — Discord webhook URL,用于通知 CLAWHUB_API_URL 否 https://api.clawhub.com/v1 ClawHub API基础URL 健康检查 包含的scripts/healthcheck.sh监控nginx、docker、code-review-service和whisper-api-gateway。 它自动重启失败的服务,并发送Discord警报。 磁盘使用警告在80%触发,临界警报在90%。 更改日志 1.1.0 修复SSRF漏洞:添加_validate_url(),为所有获取的URL添加方案允许列表 添加30秒请求超时,所有请求调用(差异获取+Discord webhook) 替换裸except子句,使用特定的异常类型(requests.RequestException, FileNotFoundError, ValueError, json.JSONDecodeError) 添加输入验证:文件存在/大小检查,空差异处理 实现实际LLM基于代码分析,通过GPT-4o(替换stub analyze_code_changes) 添加日志模块,整个过程中;删除静默错误吞噬 懒初始化OpenAI客户端,清晰错误,缺少密钥 改进语音笔记转录错误处理(优雅跳过失败) 增强健康检查脚本,兼容chroot/容器环境