Output Formats

pgfence supports five output formats today: terminal output, JSON, GitHub PR comment markdown, SARIF, and GitLab Code Quality JSON. The same --output values work for both pgfence analyze and pgfence trace.

Terminal (Default)

bash
pgfence analyze migrations/*.sql

JSON

bash
pgfence analyze --output json migrations/*.sql

GitHub PR Comment

--output github produces Markdown that you can post as a PR comment or upload as a workflow artifact.

bash
pgfence analyze --output github migrations/*.sql > pgfence-report.md
yaml
- name: Analyze migrations
  run: npx @flvmnt/pgfence analyze --output github migrations/*.sql > pgfence-report.md
- name: Comment on PR
  uses: marocchino/sticky-pull-request-comment@v2
  with:
    path: pgfence-report.md

GitLab Code Quality

--output gitlab emits the JSON format GitLab expects for a codequality artifact.

bash
pgfence analyze --output gitlab migrations/*.sql > gl-code-quality-report.json
yaml
migration-safety:
  script:
    - npx @flvmnt/pgfence analyze --output gitlab migrations/*.sql > gl-code-quality-report.json
  artifacts:
    reports:
      codequality: gl-code-quality-report.json

SARIF (GitHub Code Scanning)

Output SARIF 2.1.0 to upload pgfence findings to GitHub Code Scanning as inline PR annotations.

bash
pgfence analyze --output sarif migrations/*.sql > pgfence.sarif
yaml
- name: Analyze migrations
  run: npx @flvmnt/pgfence analyze --output sarif migrations/*.sql > pgfence.sarif
- name: Upload to GitHub Code Scanning
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: pgfence.sarif
SARIF results appear as annotations directly on the diff in pull requests. CRITICAL and HIGH findings show as errors; MEDIUM as warnings.