Qodo ← Back to Scanner

Security & Architecture

Version 1.0 · March 2026

Executive Summary

Qodo Health Check is a free, zero-friction code review health assessment for public GitHub repositories. Users submit a repo URL, and Qodo's AI reviewer analyzes the repository's recent pull request history to identify bugs that slipped through code review. The service produces a health score, industry comparison, and detailed findings report.

Key commitments:

  • Public repos: No GitHub token required. Scanned using Qodo's own API credentials
  • Private repos: Token is encrypted on receipt and permanently deleted within seconds of scan start
  • No source code is stored. Code exists only in ephemeral memory during analysis
  • No customer data is used for model training
  • All infrastructure runs on Google Cloud Platform with encryption at rest and in transit
  • Rate limiting and bot verification protect the service without collecting unnecessary data

1. How It Works

Public Repos (Landing Page)

  1. User submits a public GitHub repository URL via the landing page
  2. Qodo's AI analyzes the repository's recent pull request history to identify bugs that slipped through code review
  3. Each finding is validated to confirm whether the issue still exists in the codebase
  4. A health score and grade are computed and compared against an industry benchmark
  5. Free report shows a summary. Full report (all findings with evidence) available after sign-in

Private Repos (Invite-Based)

  1. Prospect receives an invite code from a Qodo SE
  2. Prospect runs the CLI script which collects the repo URL and a GitHub token via terminal prompts
  3. Token is encrypted using Fernet symmetric encryption (AES-128-CBC with HMAC) and transmitted over HTTPS
  4. Token is permanently deleted from our database within seconds of scan start
  5. Analysis proceeds identically to the public flow
  6. Results are delivered via email and accessible through the Qodo dashboard

2. Data Inventory

What We Collect

DataSourcePurpose
Repository URL (owner/repo)User inputIdentifies what to scan
Client IP addressHTTP requestRate limiting
Browser fingerprint (optional)Client-side JSAbuse prevention
Bot verification tokenCloudflare TurnstileBot prevention
Email address (optional)User input at email gate, or Qodo SSOUnlock full report

What We Generate

DataContentStorage
Finding metadataBug title, description, category, severity, file path, line number, validation statusEncrypted cloud storage
PR metadataPR number, title, URL, merge dateEncrypted cloud storage
Health scoreScore (0-100), grade, percentile, findings per PR, industry comparisonEncrypted database + cloud storage
HTML reportsFree report (3 findings) + full report (all findings with evidence)Encrypted cloud storage
Scan metadataRepo, status, timestampsEncrypted database

What We Do NOT Collect or Store

DataHandling
GitHub tokens (public flow)Not needed. Public repos are accessed using Qodo's own GitHub credentials.
GitHub tokens (private flow)Encrypted on arrival using Fernet (AES-128-CBC + HMAC), permanently deleted from our database within seconds of scan start. Exists only in application memory during the scan. Never written to disk or logs.
Source codeCloned to ephemeral container filesystem during analysis. Deleted when the worker container exits. No source code is written to persistent storage.
Passwords or credentialsNot collected. Email gate uses Qodo Platform SSO (GitHub/Google OAuth). No passwords are handled by the Health Check service.

3. Data Flow

Phase 1: Intake

  1. User submits a public repo URL on the landing page
  2. Cloudflare Turnstile verifies the request is from a human (no CAPTCHA, privacy-preserving)
  3. HTTPS POST to Cloud Run web service (TLS 1.2+)
  4. Server validates the repo exists and is public via GitHub API
  5. Rate limiting checks are applied
  6. Scan record created in database (repo, status, timestamps)
  7. Worker job triggered with scan ID

Phase 2: Analysis

  1. Worker accesses the repository via GitHub API (using Qodo's own credentials for public repos)
  2. Qodo's AI reviews the repository's recent pull request history and identifies potential bugs
  3. Relevant code segments are sent to LLM APIs over HTTPS, under commercial API terms that prohibit use of customer data for model training
  4. Findings are validated to confirm whether each issue still exists in the codebase
  5. A health score and report are generated and stored in encrypted cloud storage
  6. Container is destroyed. All local data (including any cloned code) ceases to exist.

Phase 3: Delivery

  1. User is redirected to the free report (score + top 3 findings, no code details)
  2. To unlock the full report, user signs in via Qodo Platform SSO (GitHub or Google OAuth)
  3. Full report includes all findings with descriptions, code snippets, fix suggestions, evidence, and validation status
  4. Reports are served through the application (not as static public files)

4. What Data Reaches LLM APIs

During analysis, Qodo's AI agents process public repository code to identify bugs. The following types of data are sent to LLM APIs:

Data typePurposeConstraints
Code diffsIdentify issues introduced by each PRChanges from merged PRs only
Relevant file contentUnderstand context around changes; verify if bugs still existTruncated to relevant segments; not the full repository
PR metadataTitle, description, merge dateNo authentication tokens or secrets

What is NOT sent to LLM APIs:

LLM API calls are made under commercial terms that explicitly prohibit the use of customer data for model training. All transmissions use HTTPS with API key authentication.

5. Infrastructure Security

Compute

ComponentPlatformIsolation
Web ServiceGoogle Cloud Run (managed)Per-request container isolation, auto-scaled
Worker JobGoogle Cloud Run Job (managed)Dedicated container per scan, destroyed on completion
Landing PageGoogle Cloud Run (managed)Static content, no server-side user data processing
Admin DashboardGoogle Cloud Run (managed)Authenticated access, organization membership required

Storage

StoreEncryptionAccess Control
DatabaseAES-256 at rest (Google-managed keys)IAM: only application service accounts
Cloud Storage (reports)AES-256 at rest (Google-managed keys)IAM: application writes, serves via authenticated endpoints (not public)
Secret ManagerAES-256 at rest (Google-managed keys)IAM: only service accounts

Rate Limiting

The service enforces rate limits to ensure fair usage and prevent automated misuse. Bot verification is handled by Cloudflare Turnstile. Access to the full report requires sign-in via Qodo Platform (GitHub or Google OAuth).

Network

Secrets Management

All secrets (API keys, encryption keys, service credentials) are stored in Google Cloud Secret Manager with IAM-scoped access. Service accounts follow least-privilege: the web service cannot access LLM API keys, and the worker cannot access session signing keys.

6. Frequently Asked Questions

Do you need my GitHub token?

For public repos: No. Health Check uses Qodo's own GitHub API credentials.

For private repos (invite-based): Yes. You provide a token via the CLI script. The token is encrypted immediately, used only for read-only API access during the scan, and permanently deleted from our systems within seconds of scan start. We recommend using a fine-grained token scoped to the specific repository, and revoking it after the scan completes.

Do you store my source code?

No. Source code is cloned to an ephemeral container during analysis and destroyed when the container exits. No source code is written to persistent storage.

Do you use my data to train AI models?

No. Qodo does not use repository code, findings, or scan data to train, fine-tune, or improve AI models. Code segments sent to LLM providers are covered by commercial API terms that prohibit this.

What information do you collect about me?

Minimal. We collect your IP address (for rate limiting) and optionally your email (if you unlock the full report via SSO). We do not collect names, phone numbers, or company information unless you volunteer them.

Who can see my report?

Free report: Anyone with the URL can see the score and top 3 finding titles (no code details).

Full report: Requires sign-in via Qodo Platform SSO. Only the authenticated user and Qodo team members can access it.

Can I request data deletion?

Yes. Contact security@qodo.ai to request deletion of your scan data and report. We will delete all associated records within 5 business days.

Where does the infrastructure run?

All infrastructure runs in Google Cloud Platform, us-central1 region (Iowa, USA):

7. Compliance Considerations

SOC 2 Alignment

CriterionStatus
Encryption in transitTLS 1.2+ on all endpoints (Cloud Run managed certificates)
Encryption at restAES-256 for all storage (Google-managed keys)
Access controlIAM-based service account permissions, least-privilege
Audit loggingCloud Run request logs, database audit logs (via GCP Cloud Audit Logs)
Data minimizationNo user tokens collected, source code never persisted
Incident responseGoogle Cloud's built-in monitoring and alerting

GDPR Alignment

RequirementImplementation
Lawful basisLegitimate interest (user-initiated scan of public code) + consent (voluntary email for full report)
Data minimizationOnly IP + optional email retained; no tokens, no source code stored
Right to erasureSupported. Contact security@qodo.ai for deletion
Data processing agreementAvailable on request
Cross-border transfersData processed in US (GCP us-central1); standard contractual clauses available

8. Limitations and Disclaimers


For security inquiries: security@qodo.ai
For data deletion requests: support@qodo.ai