{"id":47683267,"url":"https://github.com/viadee/roboscope","last_synced_at":"2026-04-02T14:17:45.969Z","repository":{"id":340990814,"uuid":"1167554260","full_name":"viadee/roboscope","owner":"viadee","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-26T07:47:40.000Z","size":3412,"stargazers_count":28,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T12:21:40.906Z","etag":null,"topics":["tools"],"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/viadee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T12:25:47.000Z","updated_at":"2026-03-26T07:47:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/viadee/roboscope","commit_stats":null,"previous_names":["viadee/roboscope"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/viadee/roboscope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viadee%2Froboscope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viadee%2Froboscope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viadee%2Froboscope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viadee%2Froboscope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viadee","download_url":"https://codeload.github.com/viadee/roboscope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viadee%2Froboscope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["tools"],"created_at":"2026-04-02T14:17:45.250Z","updated_at":"2026-04-02T14:17:45.959Z","avatar_url":"https://github.com/viadee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RoboScope\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Build Distribution](https://github.com/viadee/roboscope/actions/workflows/build.yml/badge.svg)](https://github.com/viadee/roboscope/actions/workflows/build.yml)\n[![E2E Tests](https://github.com/viadee/roboscope/actions/workflows/e2e.yml/badge.svg)](https://github.com/viadee/roboscope/actions/workflows/e2e.yml)\n[![Website](https://img.shields.io/badge/website-roboscope.eu-blue)](https://roboscope.eu)\n\nWeb-based Robot Framework Test Management Tool with Git integration, GUI execution, report analysis, environment management, and container runtime.\n\nBuilt by [viadee Unternehmensberatung AG](https://www.viadee.de).\n\n![RoboScope Screenshot](docs/screenshots/dashboard.png)\n\n## Features\n\n- **Project Management** — Clone Git repos or link local folders, branch management, auto-sync\n- **Test Explorer** — Browse test files, parse Robot Framework keywords/tests, library dependency check\n- **Visual Flow Editor** — Node-based graphical test editor with keyword palette, drag \u0026 drop, control structures (IF/FOR/WHILE/TRY)\n- **Test Execution** — Run tests via subprocess or Docker, live WebSocket status updates, scheduling\n- **Environment Management** — Create Python virtual environments, install/manage packages, set variables, secrets encryption\n- **Report Analysis** — Parse `output.xml`, compare runs, view embedded HTML reports\n- **AI-Powered Analysis** — LLM-based failure root-cause analysis with fix suggestions (OpenAI, Anthropic, OpenRouter, Ollama)\n- **Statistics \u0026 KPIs** — Pass rate trends, flaky test detection, heatmaps, deep analysis (15 KPIs in 5 categories)\n- **AI Code Generation** — Generate `.robot` files from `.roboscope` YAML specs, reverse-engineer specs from `.robot` files\n- **CI/CD Integration** — API tokens for service accounts, outbound webhooks (6 events), git webhook triggers for automatic test runs\n- **Audit \u0026 Compliance** — Full audit log with CSV export, retention enforcement, secrets encryption at rest\n- **rf-mcp Integration** — Optional Robot Framework keyword knowledge server for enhanced AI suggestions\n- **Role-Based Access** — Four roles: Viewer, Runner, Editor, Admin\n- **Multi-Language UI** — English, German, French, Spanish\n- **In-App Documentation** — Searchable docs with print/PDF export\n- **Offline Deployment** — Standalone ZIP with bundled dependencies for air-gapped environments\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Backend | FastAPI, SQLAlchemy 2.0, Pydantic v2, Python 3.12+ |\n| Frontend | Vue 3, TypeScript, Pinia, Vue Router, Chart.js, CodeMirror 6, Vite |\n| Database | SQLite (default) or PostgreSQL |\n| Tests | pytest (~885 tests), Vitest (113 tests), Playwright (~249 E2E tests) |\n| AI | OpenAI, Anthropic, OpenRouter, Ollama (configurable) |\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.12+\n- Node.js 20+\n- No Redis or external services required\n\n### Development\n\n```bash\n# Install dependencies\nmake install\n\n# Copy environment config\ncp backend/.env.example backend/.env\n\n# Start backend (port 8000) + frontend (port 5173)\nmake dev\n```\n\n### Docker\n\n```bash\nmake docker-dev    # Development (SQLite)\nmake docker-up     # Production (PostgreSQL + Nginx)\n```\n\n### Standalone Deployment\n\nDownload the latest `roboscope.zip` from [Releases](../../releases), then:\n\n```bash\nunzip roboscope.zip\ncd roboscope\n./install-mac-and-linux.sh       # Creates venv, installs dependencies offline\n./start-mac-and-linux.sh         # Starts server at http://localhost:8000\n```\n\nOn Windows, use `install-windows.bat` and `start-windows.bat` instead.\n\nDefault login: `admin@roboscope.local` / `admin123`\n\n## Screenshots\n\n| Dashboard | Test Explorer | Statistics |\n|-----------|--------------|------------|\n| ![Dashboard](docs/screenshots/dashboard.png) | ![Explorer](docs/screenshots/explorer.png) | ![Statistics](docs/screenshots/stats.png) |\n\n## Project Structure\n\n```\nRoboScope/\n├── backend/          # FastAPI application\n│   ├── src/          # Source code (domain-driven modules)\n│   │   ├── auth/     # JWT auth + RBAC\n│   │   ├── repos/    # Git repository management\n│   │   ├── explorer/ # File browser + Robot parser\n│   │   ├── execution/# Test runs + scheduling\n│   │   ├── environments/ # venv + packages\n│   │   ├── reports/  # output.xml parser + comparison\n│   │   ├── stats/    # KPIs + deep analysis\n│   │   ├── ai/       # LLM integration (generate, reverse, analyze)\n│   │   ├── settings/ # App settings\n│   │   ├── webhooks/ # API tokens + webhooks\n│   │   └── audit/    # Audit log + retention\n│   ├── tests/        # pytest tests\n│   ├── migrations/   # Alembic (SQLite + PostgreSQL)\n│   └── examples/     # Example Robot Framework test files\n├── frontend/         # Vue 3 + TypeScript SPA\n│   └── src/\n│       ├── views/    # 12 application views\n│       ├── stores/   # 9 Pinia stores\n│       ├── api/      # 9 Axios API clients\n│       ├── docs/     # In-app documentation (EN, DE, FR, ES)\n│       └── i18n/     # Translations (EN, DE, FR, ES)\n├── e2e/              # Playwright end-to-end tests\n├── docker/           # Dockerfiles and nginx config\n├── scripts/          # Build and utility scripts\n└── Makefile          # All common commands\n```\n\n## API\n\nSwagger UI available at `http://localhost:8000/api/v1/docs`\n\n| Endpoint | Description |\n|----------|-------------|\n| `/api/v1/auth` | Authentication \u0026 user management |\n| `/api/v1/repos` | Project CRUD \u0026 Git sync |\n| `/api/v1/explorer/{repo_id}` | File browser, test parser, library check |\n| `/api/v1/runs` | Test execution \u0026 scheduling |\n| `/api/v1/environments` | Virtual environments \u0026 packages |\n| `/api/v1/reports` | Report parsing \u0026 comparison |\n| `/api/v1/stats` | KPIs, trends, deep analysis |\n| `/api/v1/ai` | AI providers, code generation, failure analysis |\n| `/api/v1/webhooks` | API tokens, outbound webhooks, git triggers |\n| `/api/v1/audit` | Audit log, retention enforcement |\n| `/api/v1/settings` | Application settings (admin) |\n\n## Testing\n\n```bash\nmake test-backend       # Backend unit tests (pytest)\nmake test-frontend      # Frontend unit tests (Vitest)\nmake test-e2e           # Playwright E2E tests\nmake test               # All tests\nmake lint               # Ruff + ESLint + vue-tsc\n```\n\n## Building\n\n```bash\n# Build standalone offline distribution\nbash scripts/build-mac-and-linux.sh\n\n# Output: dist/roboscope.zip (includes wheels for Linux, macOS, Windows)\n```\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DATABASE_URL` | `sqlite:///./roboscope.db` | Database connection |\n| `SECRET_KEY` | `dev-key` | JWT secret (change in production!) |\n| `RUNNER_TYPE` | `auto` | `subprocess`, `docker`, or `auto` |\n| `DEFAULT_TIMEOUT_SECONDS` | `3600` | Timeout per test run |\n| `WORKSPACE_DIR` | `~/.roboscope/workspace` | Git repos directory |\n| `REPORTS_DIR` | `~/.roboscope/reports` | Report files directory |\n| `VENVS_DIR` | `~/.roboscope/venvs` | Virtual environments directory |\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/my-feature`)\n3. Commit your changes (`git commit -m 'feat: add my feature'`)\n4. Push to the branch (`git push origin feature/my-feature`)\n5. Open a Pull Request\n\nPlease follow the existing code style (Ruff for Python, ESLint for TypeScript) and include tests for new features.\n\n## License\n\nLicensed under the [Apache License 2.0](LICENSE).\n\nCopyright 2026 [viadee Unternehmensberatung AG](https://www.viadee.de).\n\n## Acknowledgments\n\n- [Robot Framework](https://robotframework.org/) — The test automation framework\n- [rf-mcp](https://github.com/manykarim/rf-mcp) by Many Kasiriha — Robot Framework keyword knowledge server\n- Built with [FastAPI](https://fastapi.tiangolo.com/), [Vue.js](https://vuejs.org/), and [Playwright](https://playwright.dev/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviadee%2Froboscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviadee%2Froboscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviadee%2Froboscope/lists"}