QA-Capsule/qa-capsule

GitHub: QA-Capsule/qa-capsule

面向SRE的轻量级QA控制平面,通过智能事件关联去重和自动化Runbook修复执行,解决CI/CD流水线中的警报疲劳与故障自愈问题。

Stars: 1 | Forks: 0

# QA Flight Recorder (QA Capsule) ![版本](https://img.shields.io/badge/version-v2.0.0--beta-blue.svg) ![Go 版本](https://img.shields.io/badge/Go-1.24+-00ADD8?logo=go) ![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker) ![许可证](https://img.shields.io/badge/license-MIT-green.svg) [![文档](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://ashraf-khabar.github.io/qa-capsule//) **QA Flight Recorder** 是一个企业级、面向 SRE 的控制平面,旨在监控系统遥测数据、检测不稳定测试并自动化事件响应。它填补了 CI/CD 流水线故障与基础设施自动修复之间的空白。

Dashboard View

Analytics View

Plugin Engine

## 为什么选择 QA Capsule? 现代 CI/CD 流水线会产生过多的噪音。当数据库宕机时,100 个测试会失败,从而生成 100 条完全相同的 Slack 警报。**QA Capsule 通过关联相同事件、跟踪不稳定测试以及自动触发修复脚本来解决“警报疲劳”问题。** ## 核心特性 ### 智能事件关联引擎 * **去重:** 使用 SHA-256 指纹识别和分组相同的流水线故障。 * **不稳定性检测:** 如果测试在 48 小时的时间窗口内间歇性地失败和通过,会自动标记为 `[FLAKY]`。 * **分析与 MTTR:** 可视化仪表盘 用于跟踪平均修复时间和技术债务(稳定故障与不稳定故障)。 ### 自动修复与插件引擎 * **动态路由:** 自动将特定项目的警报路由到专用的 Slack 频道、MS Teams 或 Jira 项目。 * **可操作的 Runbook:** 直接从 UI 执行自定义的 Bash/Python 脚本(例如,K8s pod 重启、缓存清理),或在出现特定触发词(`CRITICAL`、`Timeout`)时自动执行。 ### 多租户与 IAM (身份访问管理) * **分层工作区:** 创建团队和子组以实现精细的项目分配。 * **精细的 RBAC:** 将全局角色(Admin、Operator、Viewer)与团队级角色混合使用,以实现最大程度的安全性。 * **零信任就绪:** 强制执行域名锁定策略(例如,仅允许 `@company.com` 用户)以及强制重置密码。 ### 通用 CI/CD 网关 * 一键配置专用的 API Webhook 端点,支持 **GitHub Actions**、**GitLab CI** 和 **Jenkins**。 ## 技术栈 * **后端:** Go (Golang) 1.24+(高并发,极低内存占用) * **前端:** 原生 JavaScript (ES6+)、HTML5/CSS3(无重度框架,工业级 SRE 设计) * **数据库:** SQLite(嵌入式,通过 `modernc.org/sqlite` 实现的极速无 CGO 驱动) * **DevOps:** Docker、Docker Compose、Kubectl、JQ、cURL ## 快速开始 在生产环境中运行 QA Capsule 最简单的方法是通过 Docker。 ### 前置条件 * 已安装 Docker 与 Docker Compose。 ### 安装说明 1. **克隆仓库:** git clone [https://github.com/Ashraf-Khabar/qa-capsule.git](https://github.com/Ashraf-Khabar/qa-capsule.git) cd qa-capsule 2. 启动控制平面: docker-compose up -d --build 3. 访问仪表盘: 在浏览器中打开 http://localhost:9000。 * 默认初始登录凭据:`admin` / `admin` * 注意:出于安全考虑,系统会在您首次登录时强制要求更新此临时密码。 ## 插件系统示例 插件是链接到位于 `/plugins` 目录中执行脚本的 JSON 文件。 示例:Slack 自动通知器 (`plugins/slack/slack-notifier.json`) ``` { "name": "Smart Slack Routing", "version": "1.2", "description": "Dynamically alerts the responsible team on their assigned Slack channel.", "status": "Active", "command": "slack-action.sh", "trigger_on": ["CRITICAL", "Timeout"], "env": { "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/..." } } ``` ## 安全 如果您发现安全漏洞,请不要公开发布 issue。请直接联系维护人员。 ## 许可证 本项目采用 `MIT License` 授权 - 详见 `LICENSE` 文件。
标签:Alpine, Chart.js, Docker, EVTX分析, Go语言, IAM, Jira, MTTR, QA控制面板, SRE, Teams, 事件关联引擎, 互联网扫描, 偏差过滤, 可视化仪表盘, 告警疲劳, 安全防御评估, 技术债务, 提示词注入, 插件引擎, 数字取证, 数据可视化, 日志审计, 测试不稳定性检测, 版权保护, 程序破解, 系统稳定性, 自动修复, 自动化事件响应, 自动化脚本, 请求拦截, 身份与访问管理, 运行手册, 遥测监控, 重复数据删除, 飞行记录仪