{"id":50564495,"url":"https://github.com/anandtopu/testlookup","last_synced_at":"2026-06-04T13:30:35.419Z","repository":{"id":354279335,"uuid":"1201749221","full_name":"anandtopu/testlookup","owner":"anandtopu","description":"Local-first test failure intelligence for CI pipelines and QA teams.  Turn raw automated test results into actionable failure intelligence and release-risk signals -- locally, offline, and through API / CLI / UI / MCP.","archived":false,"fork":false,"pushed_at":"2026-05-30T02:54:13.000Z","size":5900,"stargazers_count":0,"open_issues_count":16,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T04:21:42.377Z","etag":null,"topics":["qualityengineering","software-engineering","software-testing","test-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anandtopu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":"THREAT_MODEL.md","audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-05T05:19:42.000Z","updated_at":"2026-05-30T02:54:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/anandtopu/testlookup","commit_stats":null,"previous_names":["anandtopu/testlookup"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/anandtopu/testlookup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandtopu%2Ftestlookup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandtopu%2Ftestlookup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandtopu%2Ftestlookup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandtopu%2Ftestlookup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anandtopu","download_url":"https://codeload.github.com/anandtopu/testlookup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandtopu%2Ftestlookup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33907693,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["qualityengineering","software-engineering","software-testing","test-automation"],"created_at":"2026-06-04T13:30:34.443Z","updated_at":"2026-06-04T13:30:35.414Z","avatar_url":"https://github.com/anandtopu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TestLookup\n\n**Local-first test failure intelligence for CI pipelines and QA teams.**\n\nTurn raw automated test results into actionable failure intelligence and release-risk signals -- locally, offline, and through API / CLI / UI / MCP.\n\n\u003e 📖 **This README is the short, evaluator-facing pitch.** For the deep marketing/product walkthrough (architecture diagrams, full feature inventory, framework matrix, integrations), see [`README_FULL.md`](README_FULL.md). Contributors should also read [`CLAUDE.md`](CLAUDE.md) and the subdirectory guides under `backend/` and `frontend/`.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-blue)](https://python.org)\n[![React 18](https://img.shields.io/badge/React-18-61DAFB)](https://reactjs.org)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688)](https://fastapi.tiangolo.com)\n[![MCP](https://img.shields.io/badge/MCP-Server-blueviolet)](https://modelcontextprotocol.io)\n\n\u003c!-- TODO (OS-3): replace with screenshot/GIF of ingestion → triage → release gate flow --\u003e\n\n## What it does\n\n1. **Ingest test results** from JUnit, pytest, TestNG, Allure, Cypress, Playwright, and more\n2. **Cluster failures** and surface regressions vs flaky recurrences vs infra anomalies\n3. **Explain likely root causes** using rules, ML classifiers, or a local LLM (Ollama) -- no cloud calls required\n4. **Provide release-risk signals** -- GO / CONDITIONAL_GO / NO_GO with reasons and override audit trail\n5. **Expose everything** through UI, REST API, CLI, and [MCP server](https://modelcontextprotocol.io) (48 tools, 9 resources, 6 prompt workflows)\n6. **Run fully offline** when required -- air-gapped mode blocks all outbound network calls\n\n## Quick Start\n\nThree run modes. Pick the one that fits.\n\n| Mode | Command | What you get | Time |\n|------|---------|-------------|------|\n| **Core** (no LLM) | `make dev` | Rules/ML analysis, dashboards, CLI, MCP | ~5 min |\n| **Full** (local LLM) | `make dev-llm` then `docker compose exec ollama ollama pull qwen2.5:7b` | Core + AI-assisted triage via Ollama + ChromaDB | ~10 min |\n| **Demo** | `make demo` | Core + pre-loaded sample data (coming in v0.1.0) | ~3 min |\n\n```bash\ngit clone https://github.com/anandtopu/testlookup.git\ncd testlookup\ncp .env.example .env\n# edit .env before starting; see the required first-run secrets below\nmake dev                 # or: make dev-llm for full mode\n```\n\nDashboard: http://localhost:3000 | API docs: http://localhost:8000/docs | MCP SSE: http://localhost:8002/sse\n\nPrerequisites: Docker + Compose v2. Core mode: 4 GB RAM / 2 vCPU. Full mode: 8 GB / 4 vCPU.\n\n### Required first-run secrets\n\nDocker Compose intentionally refuses to start until the required secrets in `.env` are set. After copying `.env.example`, replace these values:\n\n| Variable | Example generation |\n|----------|--------------------|\n| `POSTGRES_PASSWORD` | `openssl rand -hex 24` |\n| `MONGO_PASSWORD` | `openssl rand -hex 24` |\n| `MINIO_ACCESS_KEY` | `openssl rand -hex 12` |\n| `MINIO_SECRET_KEY` | `openssl rand -base64 32` |\n| `FLOWER_PASSWORD` | `openssl rand -hex 24` |\n| `APP_SECRET_KEY` | `openssl rand -hex 32` |\n| `JWT_SECRET_KEY` | `openssl rand -hex 32` |\n| `WEBHOOK_SECRET` | `openssl rand -hex 32` |\n\nKeep `DATABASE_URL` and `MONGO_URI` in sync with the database passwords you choose.\n\n### Ollama model storage\n\nOllama model files are stored in Docker's named volume for this Compose project, normally `testlookup_ollama_models`, not in the repository directory. The volume name is prefixed by the Compose project name. Verify installed models with:\n\n```bash\ndocker compose exec ollama ollama list\n```\n\n## Feature matrix\n\nEvery feature is labelled **Core** (on by default in OSS), **Experimental** (in-repo but flag-off, may change), or **Enterprise** (future / commercial).\n\n### Core\n\n| Feature | Description |\n|---------|-------------|\n| Multi-framework ingestion | JUnit XML, TestNG, Allure JSON, Cypress, Playwright, pytest, Robot Framework, Cucumber |\n| Analysis modes | Rules (pattern match, ~0.2ms) / ML (HistGradientBoosting, ~2ms) / LLM (Ollama ReAct, ~300ms) / Auto (smart fallback) |\n| Run Intelligence | Single-pane summary: failure clusters, regression diff, risk score, role actions |\n| Release gate | GO / CONDITIONAL_GO / NO_GO with explainable reasons and QA Lead override audit |\n| Failure clustering | Regression Watchman: new_regression / known_flaky_recurrence / environmental_anomaly |\n| Jira integration | Auto-promote failure clusters to Jira with 7-dimension severity scoring + duplicate dedup |\n| Decision trail | Per-run \"why did the AI do that\" drawer with per-stage filter and full-text search |\n| Two-run compare | Side-by-side diff with classification (new failures, regressions, duration spikes, renamed tests) |\n| Flaky quarantine | Detection, QA Lead approval, active quarantine, nightly recheck, release/re-quarantine state machine |\n| Perf regression | Per-test duration baselines (Welford algorithm) with 3-sigma spike detection at release-gate time |\n| CLI | 11 command groups, multi-profile auth, table/JSON/YAML output |\n| MCP server | 48 tools, 9 resources, 6 prompts -- query test health from IDE or CI agents ([reference](mcp/README.md)) |\n| Dashboards | 30+ customizable analytics widgets, drag-and-drop layout |\n| Live streaming | Real-time WebSocket dashboard during test execution via Redis Streams |\n| User management | RBAC (VIEWER / TESTER / QA_ENGINEER / QA_LEAD / ADMIN), JWT + API key auth |\n| PII redaction | Auto-scrub at all system boundaries (persistence, logging, LLM prompts, reports) |\n| Email notifications | Async SMTP with daily/weekly digest subscriptions |\n| Observability | OpenTelemetry traces (Jaeger), Prometheus metrics, Grafana dashboards, deep health checks |\n| Feature flags | Per-project / per-role / rollout-percent gates with audit history |\n| Global search | Multi-entity keyword search across runs, tests, suites, defects |\n\n### Experimental (flag-off by default)\n\n| Feature | Flag key | Description |\n|---------|----------|-------------|\n| Deep investigation | -- | Multi-agent LangGraph pipeline (semantic clustering, distributed traces, log anomaly, API contract validation) |\n| RAG test generation | `knowledge_rag` | Knowledge-grounded test case generation from Jira, Confluence, URLs, documents |\n| RAG faithfulness | `rag_faithfulness` | Pluggable Ollama/Ragas evaluator gates auto-accept on citation quality |\n| LLM cost budget | `llm_cost_budget` | Per-project quota with auto-downgrade to ML/rules when budget is exhausted |\n| GitHub Checks | `github_checks` | Post a check run to the commit SHA on every ingested run |\n| Outbound webhooks | `outbound_webhooks` | HMAC-signed event fan-out with retry + DLQ + replay |\n| Compliance pack | `release_compliance_pack` | One-click audit ZIP for a release decision (SOX/HIPAA/SOC 2) |\n| Weekly retro digest | `weekly_retro_digest` | Monday-morning automated retrospective per project |\n| Team value metrics | -- | Ownership-rule-aware team attribution |\n| Continuous fine-tuning | -- | Self-improving models trained on verified failure data |\n| Semantic search | -- | ChromaDB-backed hybrid keyword + vector search |\n\n### Enterprise (future)\n\n| Feature | Notes |\n|---------|-------|\n| SSO / SAML / SCIM | Enterprise identity federation |\n| Cloud LLM routing | OpenAI / Gemini with cost controls (requires `AI_OFFLINE_MODE=false`) |\n| Multi-cloud K8s overlays | Staging / production Kustomize overlays |\n| Project-scoped API keys | Admin-only creation for CI service accounts |\n| Report share links | Public token-authenticated PDF/evidence downloads |\n\nSee `docs/features/FEATURE_FLAG_INVENTORY.md` for the full flag inventory with defaults, owners, and graduation criteria.\n\n## Architecture\n\n```\nReact SPA (port 3000)  --\u003e  FastAPI backend (port 8000)  --\u003e  PostgreSQL + MongoDB + Redis + MinIO\n                                    |\n                              Celery workers  --\u003e  Ollama (optional) + ChromaDB (optional)\n                                    |\n                              MCP server (port 8002)\n```\n\nFor the full architecture diagram, component descriptions, and deployment matrix, see [ARCHITECTURE.md](ARCHITECTURE.md).\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [ARCHITECTURE.md](ARCHITECTURE.md) | System architecture, component diagram, deployment matrix |\n| [CONTRIBUTING.md](CONTRIBUTING.md) | Development setup, code style, PR process, DCO |\n| [ROADMAP.md](ROADMAP.md) | What's in progress, planned, and on hold |\n| [SECURITY.md](SECURITY.md) | Vulnerability reporting and disclosure policy |\n| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Contributor Covenant v2.1 |\n| [GETTING_STARTED.md](GETTING_STARTED.md) | Step-by-step walkthrough: clone to first failure clustered in under 15 minutes |\n| [THREAT_MODEL.md](THREAT_MODEL.md) | Data flow, offline guarantees, auth boundaries, PII redaction scope |\n| [benchmarks/](benchmarks/) | Classification accuracy + throughput benchmarks with methodology (`make benchmark`) |\n| [README_FULL.md](README_FULL.md) | Full feature documentation (SDK setup, ingestion options, MCP config, CLI reference, etc.) |\n| [docs/deployment/](docs/deployment/) | Multi-cloud deployment guides (AWS EKS / GCP GKE / Azure AKS / self-hosted K8s) — start with [docs/deployment/README.md](docs/deployment/README.md) |\n\n## License\n\nApache 2.0 -- see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandtopu%2Ftestlookup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanandtopu%2Ftestlookup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandtopu%2Ftestlookup/lists"}