Docs
← Back to site Download

Export Formats

Export your review results in multiple formats for integration with CI pipelines, issue trackers, or team reports.

Overview

After a review is complete, click the Export button (or press Cmd + E) to open the export dialog. You can choose which format to export and whether to include all issues or only those matching the current filter.

Animated walkthrough of exporting issues as Markdown
Select a format, confirm options, and the file is saved to your chosen location.

Format Comparison

Format Extension Best For Includes Code Snippets
JSON .json Programmatic consumption, CI integration, custom tooling. Yes
Markdown .md Human-readable reports, pasting into PRs or wikis. Yes
SARIF .sarif GitHub Code Scanning, VS Code SARIF Viewer, standard static analysis tooling. Yes (as SARIF regions)
ZIP Archive .zip Full bundle with JSON + Markdown + metadata for archival. Yes

JSON

The JSON export produces a single file containing an array of issue objects. Each object includes all metadata: category, severity, file path, line range, description, explanation, and suggested fix.

{
  "meta": {
    "project": "my-app",
    "review_id": "rev_abc123",
    "exported_at": "2025-07-15T10:30:00Z",
    "total_issues": 42
  },
  "issues": [
    {
      "id": "iss_001",
      "category": "security",
      "severity": "critical",
      "title": "SQL injection via unsanitised input",
      "file": "src/db/queries.ts",
      "line_start": 45,
      "line_end": 48,
      "description": "User input is interpolated directly into a SQL query string.",
      "suggestion": "Use parameterised queries instead of string interpolation.",
      "status": "approved",
      "code_snippet": "const result = db.query(`SELECT * FROM users WHERE id = ${userId}`);"
    }
  ]
}
Tip: The JSON format is ideal for piping into jq or feeding into your own scripts. For example: jq '.issues[] | select(.severity == "critical")' export.json.

Markdown

The Markdown export generates a formatted report you can paste directly into a GitHub PR comment, Notion page, or any Markdown-compatible editor.

# Code Review Report — my-app

**Review ID:** rev_abc123
**Date:** 2025-07-15
**Issues:** 42 total (3 critical, 8 high, 15 medium, 12 low, 4 info)

---

## Critical Issues

### 1. SQL injection via unsanitised input
- **Category:** Security
- **File:** `src/db/queries.ts` (lines 45–48)
- **Status:** Approved

User input is interpolated directly into a SQL query string.

**Suggestion:** Use parameterised queries instead of string interpolation.

```ts
// Before
const result = db.query(`SELECT * FROM users WHERE id = ${userId}`);

// After
const result = db.query('SELECT * FROM users WHERE id = $1', [userId]);
```

Issues are grouped by severity level (Critical first, then High, Medium, Low, Info) with a summary table at the top.

SARIF

SARIF (Static Analysis Results Interchange Format) is an OASIS standard supported by GitHub Code Scanning, VS Code, and many CI/CD platforms. VibeRails exports SARIF v2.1.0.

{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "VibeRails",
          "version": "2.2.1",
          "rules": [
            {
              "id": "security",
              "shortDescription": { "text": "Security vulnerability" }
            }
          ]
        }
      },
      "results": [
        {
          "ruleId": "security",
          "level": "error",
          "message": { "text": "SQL injection via unsanitised input" },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": { "uri": "src/db/queries.ts" },
                "region": { "startLine": 45, "endLine": 48 }
              }
            }
          ]
        }
      ]
    }
  ]
}
Tip: Upload the SARIF file to GitHub via the Code Scanning API to see VibeRails issues inline in your pull requests. See GitHub's SARIF upload documentation for details.

ZIP Archive

The ZIP archive bundles everything together for archival or sharing with stakeholders who may not have access to VibeRails:

review-my-app-rev_abc123.zip
├── report.json          # Full JSON export
├── report.md            # Full Markdown report
├── report.sarif         # SARIF export
└── metadata.json        # Review session metadata (project, model, prompt, dates)

The ZIP format is especially useful for compliance workflows where you need to archive a complete record of each review.

What Data is Included

All export formats include the following data for each issue:

  • Issue ID and title
  • Category and severity
  • File path, start line, and end line
  • Description and AI-generated explanation
  • Suggested fix (if available)
  • Triage status (approved, rejected, skipped, pending)
  • User-added notes and comments
  • Code snippet from the source file

The export also includes session-level metadata: project name, review ID, AI model used, prompt name, and timestamps.

Tip: Apply filters before exporting to include only the issues you care about. For example, filter to "Critical + High" and "Approved" status to export just the issues your team has confirmed.