What triggers a notification
All three conditions must hold:- The scan was automatic (push-triggered on a monitored repo). Manual scans never notify — you’re already looking at the result.
- The scan surfaced at least one new finding, per cross-scan diffing. Re-detections of known findings stay quiet, so a busy repo doesn’t spam the channel on every push.
- Notifications are configured and enabled in Settings.
Setup
- In Slack, create an incoming webhook for the channel that should receive alerts (see Slack’s guide).
- In Pipefort, open Settings → Integrations, click Connect on the Slack row, paste the webhook URL, and Save.
- Click Send test — a confirmation message should appear in the channel.
Only
https://hooks.slack.com/… URLs are accepted. Pipefort’s server delivers
these messages itself, so it restricts destinations to Slack rather than
posting to arbitrary user-supplied URLs. Slack-compatible endpoints
(e.g. Mattermost) are a planned follow-up.Semantics worth knowing
- Notifications are per user: when a monitored repo’s automatic scan finds new issues, every member of that organization with notifications configured gets the message on their own webhook — each member’s settings decide whether (and where) they’re notified.
- Delivery is best-effort: a Slack outage never fails or delays the scan itself. Failed deliveries are logged server-side and not retried.
- The webhook URL is stored for your account and treated as a secret — it is never included in server logs.
The Alerts page
Alerts in the console rail is the feed of what changed, over the last 30 days, newest first and grouped by day. Each row is a change, not a finding. A scan that turns up four HIGH problems is one interruption, so its events are rolled into one row per scan, per repository, per severity; a fix pull request that covers three findings is one row. Triage decisions stay individual, because each one is somebody’s judgement about a specific finding.
The feed reads
finding_events, the append-only transition log, plus the
scans table for failures — a scan that errored never produced findings, so
the log has nothing to say about it, and a repository that quietly stopped
being scanned is exactly what a posture screen will not tell you about.
Three kinds of alert in the design cannot appear, and the page says so at
the bottom rather than leaving you to notice. New toxic combinations are
computed on read and never stored; SLSA levels are derived per scan and never
compared with the previous one; rule settings record what is muted now, not
when it was muted. None of them can be dated, so each is listed with a link to
the screen holding today’s answer.