How to use Pepper

Day-to-day workflows: scans, projects, GitHub, and remediation.

Dashboard

Route /dashboard

Organization overview: finding counts by severity, recent projects, activity feed, and shortcuts to start a scan. Use New Scan from the sidebar or embedded dialog to queue work quickly.

New Security Scan

Route /scans/new

Steps

  1. Choose or create a project (container for scans and build gates).
  2. Select scan type: Full, SAST only, SCA only, or Secrets only.
  3. Pick a source:
    • Repository — GitHub/GitLab HTTPS clone URL and optional branch.
    • Upload.zip, .tar, .tar.gz, or .tgz archive.
  4. Submit. The scan is created and enqueued; the worker picks it up when running.

Git clone without pasting a token

If GitHub is connected under Repositories, private GitHub URLs clone using your org OAuth token. The personal access token field is hidden on the new-scan form when OAuth is active.

SVN

SVN scans are created via the API with sourceType: SVN_CHECKOUT. The worker needs the svn binary installed. See README for examples.

Projects

Route /projects, /projects/[id]

Repositories (GitHub)

Route /repositories

Connect GitHub

  1. Click Connect GitHub (or use Settings → Integrations).
  2. Authorize the OAuth app on GitHub (read:user and repo scopes).
  3. Return to Pepper — status shows your GitHub username.

Import repositories

Configure OAuth in .env: GITHUB_OAUTH_CLIENT_ID, GITHUB_OAUTH_CLIENT_SECRET, callback {NEXTAUTH_URL}/api/integrations/github/callback.

Scan detail

Route /scans/[scanId]

Working with findings

Click a row to expand the detail panel.

Open fix PR

Automated remediation workflow tied to GitHub OAuth (no PAT required when connected).

Requirements

Flow

  1. Click Open fix PR on a finding.
  2. Confirm the dialog (explains that Pepper fetches the file from GitHub and uses the LLM).
  3. If GitHub is not connected, you are redirected to OAuth and returned to the scan with ?github=connected&openPr={findingId}.
  4. If the scan has no GitHub repo, enter owner/repo or a GitHub URL when prompted.
  5. Pepper creates branch pepper-security-…, commits the fix, opens a PR. A link opens in a new tab.
Common errors
  • Not Found — File path does not exist on GitHub at that branch, or wrong repo for an upload scan.
  • Cannot push — You can read a public repo but cannot create branches (use your fork or a repo you own).
  • Failed to create branch — No write access, org SAML SSO not authorized, or branch naming rules on the repo.

Compliance mapping

Route /scans/[scanId]/compliance

Maps findings to framework themes (e.g. OWASP, PCI). Refresh and export from the compliance page after the scan completes.

Notifications

Route /notifications (also via top bar)

In-app notifications for scan completion and gate failures. Email requires SMTP in environment and per-user preferences.

CI / API scanning

Trigger scans from CI using POST /api/scans with an API key. Copy the webhook URL and example from Settings → Integrations.