QA-Capsule/qa-capsule-community

GitHub: QA-Capsule/qa-capsule-community

面向 SRE 的轻量级 QA 控制平面,通过智能事件关联去重、不稳定测试检测和自动化修复插件系统,解决 CI/CD 流水线中警报疲劳与事件响应自动化的问题。

Stars: 1 | Forks: 0

# QA Flight Recorder (QA Capsule) ![版本](https://img.shields.io/badge/version-v1.0.12--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/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:** 可视化仪表盘 可用于追踪平均恢复时间 (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-free 驱动) * **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 Linux, Chart.js, ChatOps, DevOps工具链, Docker, Flaky测试检测, Go语言, IAM, Jira集成, Kubernetes集成, Microsoft Teams集成, MTTR分析, QA, Runbook自动化, SHA-256指纹识别, SRE, 不稳定测试追踪, 互联网扫描, 企业级, 偏差过滤, 可视化仪表盘, 告警关联, 告警去重, 告警降噪, 安全防御评估, 开源, 微服务监控, 技术债管理, 控制面板, 插件引擎, 数据可视化, 日志审计, 测试质量分析, 版权保护, 程序破解, 自动修复, 自动化事件响应, 自定义脚本, 请求拦截, 身份与访问管理, 运维自动化, 遥测