Export from the app
The same menus also export CSV, Markdown, and JSON.
Export from the API
GET /vulnerabilities/sarif returns one SARIF file for every finding that
matches your filters. It takes the same filters as
GET /vulnerabilities in the v1 API: repository, scan_id,
status, severity, type, cwe, pull_request, created_after, and
created_before. The key needs the vulns.read permission, so a
service account with the Read Only role is
enough.
export_too_large. Narrow it with repository, scan_id, status, or
severity.
Upload to GitHub code scanning
Run the export on a schedule and upload the result with GitHub’supload-sarif action. Store a service account token as the GECKO_API_KEY
repository secret.
.github/workflows/gecko-sarif.yml
What the file contains
- One run per repository. Each run’s
automationDetails.idisgecko/<repository>/, so repeated uploads update the same alerts instead of creating new ones. - One rule per finding, with its CWE as an
external/cwe/cwe-Ntag and its CVSS score assecurity-severity. Critical and high map toerror, medium towarning, and low tonote. - The call chain as a
codeFlow, from source to sink. - A stable fingerprint in
partialFingerprints["geckoFingerprint/v1"], so an alert keeps its identity across scans. - Triage state. Findings marked False positive or Accepted risk are included as suppressed results, so code scanning dismisses them too. Fixed findings are left out, which closes their alerts.
- Gecko context in each result’s
properties:status,scanId,cvssVector,commitSha, andbranch.