v0.1 · GitHub App

RepoWave

Human-reviewed cleanup plans for Python/FastAPI services, supported by static checks across code, GitHub Actions, and Docker.

Review surface Findings are posted on the pushed commit.
Guardrail secrets/, .env, Terraform, auth, and security paths are excluded from automated edits, not from analysis.
Workflow Free scans do not edit code. Audit delivery is a report.
Plans Free hosted scans cover public repos. Recurring paid plans are unavailable.
Workflow

From repository to reviewed findings.

The Free hosted plan reports findings on public repositories. The paid audit adds human verification and prioritization; it does not include code changes.

01

Install on a public repository

The RepoWave App is public and can be installed on other accounts. Select a public repository for the Free plan. Installation automatically starts an eligible default-branch scan; results appear as a comment on that GitHub commit.

02

Push code

A signed webhook schedules a scan for that commit.

03

Review findings on the commit

Findings include rule, severity, file, line, and message.

04

Choose the next change

Review each finding before acting. For a prioritized cleanup plan, request the fixed-scope audit.

Coverage

Repository checks.

Static checks identify candidates for review. They can miss issues and produce false positives; the paid audit verifies findings against the repository and records uncertainty.

Python

Dead code, blocking calls in async code, missing HTTP timeouts, logging hygiene, and Pydantic compatibility.

FastAPI

Untyped returns, missing response models, and route handlers that do too much directly.

GitHub Actions

Unpinned actions, missing permission blocks, and unsafe workflow patterns.

Docker

Root containers, missing health checks, and common Dockerfile quality issues.

Paid audit report

Repo Health Audit: $750 fixed scope.

For small teams inheriting a Python/FastAPI service, an engineer reviews scanner findings and source evidence to produce a scoped cleanup plan.

What you get

  • One Python/FastAPI repository reviewed across code, tests, GitHub Actions, and Docker.
  • Human-verified findings with reproduction steps, severity, effort, and stated limitations.
  • Up to three scoped pull-request candidates where evidence supports them; implementation is separate.
  • Markdown report and recommended CI configuration delivered within five business days after scope and repository access are confirmed.
  • A structured intake email prompt that captures repository URL, branch, deadline, and primary concern.

Fixed-scope terms

  • $750 for one repository and one default branch.
  • Best fit: Python, FastAPI, GitHub Actions, and Docker repositories.
  • Source is reviewed for the audit and not retained after delivery.
  • Additional repositories, migrations, or implementation work are scoped separately.
  • Reply with the repository URL and the default branch to get the audit started.

Include the repository URL, default branch, deadline, and primary concern when you reply so the audit can be scoped quickly.

Positioning

Pay for verified priorities and a cleanup plan.

Ruff and other scanners already cover many of these checks. RepoWave uses Ruff for mechanical import fixes. The audit adds source review, reproducible evidence, and a ranked plan for your service; it does not claim unique detection coverage.

RepoWave

  • Python, FastAPI, GitHub Actions, and Docker checks
  • Commit comments on every scanned SHA
  • Human-reviewed evidence and explicit uncertainty in the paid audit
  • No source-code persistence after scan completion
  • One repository and one agreed revision per $750 audit

Existing tools

  • Many languages and security categories
  • Central dashboards and alert queues
  • Useful existing checks to retain in your workflow
  • The audit complements these tools; it is not a security certification
Safety policy

Autofix limits.

The allow-list lives in core/security/autofix_gate.py. Autofix is disabled for the Free hosted plan. The implementation supports entitled draft PRs using Ruff import sorting and unused-import removal; recurring paid plans are not currently sold. Security, secrets, deployment, migration, CI permissions, Terraform, auth, and .env paths stay advisory.

You can read the entire safety boundary in the docs.

Trust

Operating details and limitations.

Buyers expect documentation, privacy, support, status, and pricing to be one click away. RepoWave keeps those surfaces explicit.

Data handling

Repository source is fetched for analysis and deleted after the scan. Finding metadata is retained for 90 days.

Privacy policy

Support and security

Support runs through support@repowave.dev. Security reports use the SECURITY: subject prefix.

Support page

Documentation

Install, scan behavior, autofix boundaries, uninstall, limits, and troubleshooting are documented in one place.

Read docs

Status

The health endpoint is public and returns a minimal readiness response for uptime monitoring.

Health check
Pricing

Plans.

The current GitHub Marketplace listing offers the Free plan. Recurring paid plans are not available for purchase there. For paid, fixed-scope help, request a repository audit below.

Free

$0/month

For public repositories that want continuous scanning without auto-remediation.

  • Public repositories only
  • All scan rules included
  • Commit-comment findings
  • No auto-fix PRs
FAQ

Before you add RepoWave.

Is this a Snyk, Semgrep, Codacy, or SonarQube replacement?

No. RepoWave is not a broad AppSec suite. It provides narrow Python/FastAPI repository checks and a separate human-reviewed audit.

Will RepoWave change production code automatically?

No. The Free hosted plan does not open fix PRs, and the paid audit delivers a report. Recurring paid plans are unavailable. The implementation never self-merges or automatically edits denied paths.

How fast is setup?

The App is public. Choose an account and a public repository for the Free plan. Installation automatically starts an eligible default-branch scan. You can request an audit without installing the App.