Skip to main content
Glama

Regression-JIRA Integration System

by nanyang12138
PROJECT_SUMMARY.md7.93 kB
# 项目完成总结 (Project Summary) ## 🎉 系统已完成! 您的 **Regression-JIRA智能集成系统** 已经成功创建! ## 📁 项目结构 ``` c:/Users/nanyang2/Downloads/regression/ │ ├── 📄 regression_db_pg.rb # 您现有的Ruby脚本(继续使用) │ ├── 📁 regression_jira_mcp/ # ✅ 新建的MCP服务器包 │ ├── __init__.py # 包初始化 │ ├── __main__.py # 可执行入口 │ ├── server.py # ⭐ MCP服务器主文件(10个工具) │ ├── db_queries.py # PostgreSQL数据库查询 │ ├── jira_client.py # JIRA API客户端 │ ├── log_analyzer.py # 日志分析器(基于analyzeFailure) │ ├── error_patterns.py # 80+错误检测模式 │ ├── error_matcher.py # 智能匹配算法 │ └── utils.py # 工具函数 │ ├── 📄 README.md # 项目文档 ├── 📄 SETUP_GUIDE.md # 详细设置指南 ├── 📄 requirements.txt # Python依赖清单 ├── 📄 config.env.example # 配置模板 ├── 📄 test_installation.py # 安装测试脚本 └── 📄 .gitignore # Git忽略文件 ``` ## ✨ 核心功能 ### 🔧 10个MCP工具 #### PostgreSQL工具 (5个) 1. **query_failed_tests** - 查询失败的测试用例 2. **get_test_details** - 获取测试详细信息 3. **get_regression_summary** - 获取regression run统计 4. **analyze_test_log** - 分析测试日志文件 5. **list_regression_runs** - 列出regression runs #### JIRA工具 (3个) 6. **search_jira_issues** - 使用JQL搜索JIRA 7. **search_jira_by_text** - 简单文本搜索 8. **get_jira_issue** - 获取JIRA问题详情 #### 智能组合工具 (2个) ⭐⭐⭐⭐⭐ 9. **find_solutions_for_test** - 一键查找测试解决方案 10. **batch_find_solutions** - 批量查找解决方案 ### 🎯 智能特性 - ✅ **基于analyzeFailure的日志分析** - 完全复用经过验证的Perl逻辑 - ✅ **80+错误检测模式** - 准确识别各种错误类型 - ✅ **智能关键词提取** - 自动生成JIRA搜索关键词 - ✅ **多算法相似度匹配** - 使用Jaccard、TF-IDF、编辑距离 - ✅ **自动降级策略** - 日志不可访问时使用test_name - ✅ **自然语言交互** - 通过Cline AI直接查询 ## 🚀 下一步操作 ### 步骤1: 安装依赖 ```bash cd c:\Users\nanyang2\Downloads\regression pip install -r requirements.txt ``` ### 步骤2: 配置环境变量 ```bash # 复制配置模板 copy config.env.example .env # 编辑.env文件,填入实际的数据库和JIRA配置 notepad .env ``` **需要配置的值:** - PostgreSQL: PGDATABASE, PGHOST, PGUSER, PGPASSWORD - JIRA: JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN ### 步骤3: 测试安装 ```bash python test_installation.py ``` 应该看到所有测试通过✅ ### 步骤4: 配置Cline MCP 编辑 `C:\Users\nanyang2\AppData\Roaming\Code\User\globalStorage\slai.claude-dev\settings\cline_mcp_settings.json` 添加: ```json { "mcpServers": { "regression-system": { "command": "python", "args": ["-m", "regression_jira_mcp.server"], "cwd": "c:/Users/nanyang2/Downloads/regression", "env": { "PGDATABASE": "your_database", "PGHOST": "your_host", "PGPORT": "5432", "PGUSER": "your_user", "PGPASSWORD": "your_password", "JIRA_URL": "https://amd.atlassian.net", "JIRA_USERNAME": "Nan.Yang@amd.com", "JIRA_API_TOKEN": "your_api_token" } } } } ``` ### 步骤5: 重启Cline并测试 重启VSCode或Cline扩展,然后在Cline中测试: ``` 您: "列出最近的regression runs" 您: "regression run 12345有哪些失败的测试?" 您: "test_xxx失败了,帮我找JIRA解决方案" ``` ## 💡 使用场景示例 ### 场景1: 日常查询 ``` 您: "帮我看看最近有哪些测试失败了" AI会调用: list_regression_runs + query_failed_tests 返回: 最近失败测试的列表 ``` ### 场景2: 深度分析 ``` 您: "test_memory_allocation为什么失败了?" AI会调用: get_test_details + analyze_test_log 返回: - 测试详细信息 - 错误日志分析 - 错误签名和关键词 ``` ### 场景3: 查找解决方案 ⭐ ``` 您: "test_dma_transfer失败了,JIRA有解决方案吗?" AI会调用: find_solutions_for_test 返回: - 测试失败信息 - 错误分析结果 - 匹配的JIRA问题(按相关性排序) - 每个JIRA的解决方案摘要 ``` ### 场景4: 批量处理 ``` 您: "regression run 12345的所有失败测试都有JIRA解决方案吗?" AI会调用: batch_find_solutions 返回: - 15个失败测试 - 10个有JIRA解决方案 - 5个需要创建新JIRA - 详细的匹配结果 ``` ## 🔧 技术亮点 ### 1. 完全基于现有数据库结构 - 从`regression_db_pg.rb`分析得出数据库schema - 支持动态表名({project}_{regression}_test_object_run) - 支持所有字段和关联表 ### 2. 经过验证的错误检测逻辑 - 完整移植Perl的analyzeFailure函数 - 保留所有80+错误模式 - 支持自定义模式扩展 ### 3. 智能JIRA匹配 - 多算法相似度计算 - 关键词提取和优先级排序 - 解决方案自动提取 ### 4. 用户友好的接口 - 基于test_name查询(不需要ID) - 自然语言交互 - 详细的错误信息和建议 ### 5. 健壮的错误处理 - 日志文件不可访问时自动降级 - 数据库连接池管理 - 详细的错误日志 ## 📊 系统工作流程 ``` 用户查询(自然语言) ↓ Cline AI (理解意图) ↓ 调用MCP工具 ↓ ┌─────────────────────┐ │ PostgreSQL查询 │ → 获取测试结果 │ ↓ │ │ 日志分析 │ → 提取错误信息 │ ↓ │ │ JIRA搜索 │ → 查找相关问题 │ ↓ │ │ 智能匹配 │ → 排序和评分 │ ↓ │ │ 返回结果 │ └─────────────────────┘ ↓ 展示给用户(格式化的结果) ``` ## 🎯 与现有系统的关系 ``` 现有Ruby脚本 (regression_db_pg.rb) ↓ 写入测试结果 PostgreSQL数据库 ↑ 读取测试结果(只读) 新的Python MCP服务器 ↓ 查询和分析 JIRA Cloud ``` **重要:** - ✅ 两个系统完全独立 - ✅ Ruby脚本继续负责写入 - ✅ Python MCP只负责读取和分析 - ✅ 可以同时运行 ## 📝 文件说明 ### 核心文件 - **server.py** - MCP服务器主入口,注册所有工具 - **db_queries.py** - 数据库查询,处理动态表名 - **log_analyzer.py** - 日志分析,基于analyzeFailure - **error_patterns.py** - 80+错误检测正则表达式 - **jira_client.py** - JIRA API封装 - **error_matcher.py** - 智能匹配算法 ### 配置文件 - **config.env.example** - 配置模板 - **.env** - 实际配置(需创建,不提交到git) - **requirements.txt** - Python依赖 ### 文档文件 - **README.md** - 项目主文档 - **SETUP_GUIDE.md** - 详细设置指南 - **PROJECT_SUMMARY.md** - 本文件 ### 测试文件 - **test_installation.py** - 安装验证脚本 ## 🎊 完成状态 - [x] PostgreSQL MCP服务器 - [x] JIRA集成(无需Docker) - [x] 智能日志分析 - [x] 错误模式检测(80+规则) - [x] 智能匹配算法 - [x] 10个MCP工具 - [x] 完整文档 - [x] 测试脚本 - [x] 配置模板 ## 🎯 准备就绪! 系统已完全准备好,请按照SETUP_GUIDE.md中的步骤进行配置和测试。 如有任何问题,随时在Cline中提问! 🚀

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nanyang12138/regression-jira-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server