AI pull-request reviews
Context-aware summaries, inline comments and an approve / request-changes verdict on every PR.
No pipeline to rewrite, no config to commit. Connect a repository and this runs on every pull request.
A pull request is opened on your git platform.
The moment a PR opens, ReviewIQ scans the diff, flags the exact vulnerable line with a severity and CWE, and posts a one-click committable fix — then sets the merge verdict.
import boto3, os def s3_client(): return boto3.client("s3") key = "AKIA5X7EXAMPLE9QID2" secret = "wJalrXUtnFEMI/K7MDENG/EXAMPLEKEY" return boto3.client("s3", key, secret) Hard-coded AWS credentials
A live AWS access key is committed to source — anyone with repo read access can use it. Load it from an environment variable or your secrets manager instead.
- key = "AKIA5X7EXAMPLE9QID2" + key = os.environ["AWS_ACCESS_KEY_ID"]
Works where your code already lives
Not a linter bolted onto a webhook. A reviewer that understands the change, the codebase around it, and what your team cares about.
Context-aware summaries, inline comments and an approve / request-changes verdict on every PR.
One-click, apply-ready fixes posted straight onto the diff — the feature developers actually use.
Ask anything about the change and get answers grounded in the diff and the surrounding files.
Re-reviews only the newly changed lines when you push follow-up commits. No re-litigating.
Scores each PR Fully / Partially / Not compliant against its linked Jira issue — a rival-beating check.
Steer the reviewer with your own prompts and policies, and block merges on quality or security gates.
Pick a real defect class. Watch ReviewIQ trace the tainted value across files, then hand back a committable fix.
Why a single-file linter misses it: The controller trusts an x-tenant-id header that only becomes dangerous three files later, where it is concatenated into a tenant-scoped query. No single file looks wrong on its own.
// session.guard.ts — forwards header verbatim
const tenantId = req.headers['x-tenant-id'];
return ctx.forward({ tenantId });// session.guard.ts — bind tenant to the verified JWT claim
const { tenantId } = verifyJwt(req).claims;
return ctx.forward({ tenantId });A tainted header enters one file and surfaces as a vulnerability three files away. Hover any node to see its neighbourhood; the trace plays on its own.
Not sure why something was flagged, or whether it's safe to merge? Just ask. ReviewIQ answers in seconds — grounded in the diff, the files around it, and the review it already ran.
Security and code-quality analysis run alongside the AI review on the same pull request, then feed merge-blocking gates. One platform, one signal.
Connect a repository and ReviewIQ reviews your next pull request in minutes — free to start.