ScrutoraCode, cloud & consent

GitHub Actions

Add one step to your workflow and every pull request gets a compliance scan. Findings upload to GitHub Code Scanning as SARIF and annotate the exact lines, offline, no API key, and your code never leaves the runner.

01 · Setup

2 steps.

01Add the workflow

Create .github/workflows/compliance.yml. The scan runs on every pull request and uploads SARIF to Code Scanning.

name: Compliance
on: [pull_request]
permissions:
  contents: read
  security-events: write   # required to upload SARIF
jobs:
  scrutora-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - id: scan
        uses: Scrutora/scrutora-scan@v1
        with:
          frameworks: dpdpa,hipaa
          fail-on: high        # none|low|medium|high|critical
      - if: always()
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: ${{ steps.scan.outputs.sarif-file }}
02Open a pull request

The scan runs automatically. Findings show in Security → Code scanning with the file, line, severity and the compliance obligation each maps to. With fail-on set, the check blocks the merge on findings at or above that severity.

02 · What you get

After the first run.

Code Scanning alerts

Each finding as an alert with remediation and the obligation it cites (e.g. DPDPA §8(5)).

PR line annotations

Reviewers see the finding inline on the exact changed line.

Merge gating

fail-on blocks a PR on high/critical findings, or run report-only.

Zero data egress

Runs entirely on the GitHub runner; no code, findings or telemetry leave.

03 · Questions

The ones people actually ask.

Does it work on private repositories?

The Code Scanning tab requires GitHub Advanced Security on private repos. Without GHAS the scan still runs and fail-on still gates the build, read the summary in the Actions log.

Do I need an API key or account?

No. The Action runs the scanner container offline on your runner. Nothing is uploaded and no key is required.

Which frameworks can I scan for?

DPDPA, HIPAA, GDPR, PCI-DSS, RBI and more, set the frameworks input to a comma-separated list.

View on GitHub
04 · Try itPUBLIC REPOSITORIES

Wire it into a build.

A public repository, read once and not kept. You get the data map: every personal-data field, where it lands, and who receives it. Or run the container on your own runner, and the source never reaches us.