ishanvinaysoni-netizen/AISquare Studio AutoQA
AI-powered test generation with metadata-driven organization (flow_name, tier, area) using CrewAI + Playwright
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Mar 30, 2026
- License
- Apache 2.0
Pinned Snippet
uses: ishanvinaysoni-netizen/speedathon.@895bd90f21c38c7553d34d1b77724d33690e81ad # v0.2.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| openai-api-key | OpenAI API key for test generation | yes | — |
| qa-github-token | GitHub token with access to AutoQA repository (required for private repos) | no | ${{ github.token }} |
| staging-url | Staging environment URL for testing | yes | — |
| staging-email | Test email for staging environment login | no | test@example.com |
| staging-password | Test password for staging environment login | no | password123 |
| target-repo-path | Path to the target repository (usually ".") | no | . |
| git-user-name | Git user name for commits | no | AutoQA Bot |
| git-user-email | Git user email for commits | no | rabia.tahirr@opengrowth.com |
| pr-body | Pull request description to parse for AutoQA metadata block (```autoqa\nflow_name: ...\ntier: ...\n```) | no | ${{ github.event.pull_request.body }} |
| test-directory | Base directory for generated tests (will create tests/autoqa/{tier}/{area}/test_{flow_name}.py structure) | no | tests/autoqa |
| create-pr | Create a pull request instead of pushing directly to main branch | no | false |
| execution-mode | Mode of operation: "generate" (new test only), "suite" (run all tests), "all" (generate + run all), "auto-criteria" (AI generates test criteria from PR diff for developer review), "gap-driven" (uses memory coverage gaps to generate test criteria for uncovered modules), or "gap-analysis" (scans for present/missing test workflows and persists results to a SQLite database) | no | generate |
| action-ref | Git ref (branch, tag, or SHA) to checkout for the AutoQA action repository. Defaults to main when not provided. | no | main |
| auto-criteria-fallback | When true, if no autoqa block is found in the PR description, automatically generate test criteria from the PR diff (Proposal 16) | no | false |
| auto-criteria-mode | Auto-criteria mode: "suggest" (post for review) or "auto" (proceed if high confidence) | no | suggest |
| auto-criteria-threshold | Confidence score threshold (0-100) for auto-proceed mode | no | 85 |
| auto-criteria-approval | Approval mechanism: "reaction" (👍), "comment" (/autoqa approve), or "label" (autoqa:approved) | no | reaction |
| gap-analysis-scope | Scope for gap-analysis mode: "auto" (detect from event), "pr" (PR changed files only), or "full" (entire repo) | no | auto |
Outputs
| name | description |
|---|---|
| test_generated | Whether a test was successfully generated |
| test_file_path | Path to the generated test file (e.g., tests/autoqa/A/auth/test_user_login.py) |
| test_results | JSON string of test execution results |
| generation_metadata | JSON string of test generation metadata (includes flow_name, tier, area, etag, steps) |
| screenshot_path | Path to the generated screenshot |
| etag | ETag hash for idempotency (SHA256 of metadata + steps) |
| flow_name | Flow name from AutoQA metadata |
| tier | Test tier from AutoQA metadata (A, B, or C) |
| area | Test area from AutoQA metadata (optional) |
| error | Error message if test generation or validation failed |
| auto_criteria_results | JSON string of auto-criteria generation results (when using auto-criteria mode) |
| criteria | JSON string of generated test criteria (when using auto-criteria mode, before approval) |
| gap_analysis_results | JSON string of gap analysis results including present and missing workflows (when using gap-analysis mode) |
| dashboard_results | JSON string conforming to the AutoQA Dashboard schema (gap_analysis, summary, test_cases) for populating the dashboard UI |
| tests_failed | Whether tests failed during execution (true/false). When true, the action defers failure to the final step so that artifacts are still uploaded. |