Webhook Notifications

Get notified on Slack, Discord, or any HTTPS endpoint when Vigil runs.

Configuration

Add a notifications section to your .vigil.yml in the repository root:

.vigil.yml
notifications:
  on: failure        # "failure" or "always"
  urls:
    - https://hooks.slack.com/services/T.../B.../xxx
    - https://discord.com/api/webhooks/123/abc

Vigil sends a POST request to each URL with a JSON payload containing the repository name, PR number, confidence score, recommendation, and a link to the PR.

Trigger Modes

ModeWhen it fires
failureOnly when the score indicates "Caution" or "Review needed" (score below 80). This is the default if you configure notifications without specifying a mode.
alwaysSends a notification on every PR analysis, regardless of score.

Slack Setup

  1. Go to your Slack workspace and create an Incoming Webhook via the Slack API dashboard or by adding the Incoming Webhooks app to your workspace.
  2. Choose the channel where Vigil should post notifications and authorize the webhook.
  3. Copy the webhook URL. It will look like:
Slack webhook URL
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
  1. Add the URL to your .vigil.yml under notifications.urls.

Discord Setup

  1. Open your Discord server and go to Server Settings → Integrations → Webhooks.
  2. Click New Webhook, choose a name and channel, then click Copy Webhook URL.
  3. The URL will look like:
Discord webhook URL
https://discord.com/api/webhooks/123456789012345678/abcdefghijklmnop...
  1. Add the URL to your .vigil.yml under notifications.urls.

Limits

  • Maximum 5 webhook URLs per repository.
  • All URLs must start with https://. Plain HTTP endpoints are rejected to protect your webhook secrets in transit.
  • Notifications are sent asynchronously after the PR comment is posted. A failed webhook delivery does not affect the Vigil run or the confidence score.