GitHub Action — No OAuth Required

Run SiftPulse's PR review and issue triage entirely from your CI pipeline, using only the repo-scoped GITHUB_TOKEN. No org-level permissions, no inbound webhooks.

One-click install: View SiftPulse PR Review on the GitHub Actions Marketplace — the listing ships the same setup as this page, plus a copy-paste workflow file.

How it works

🔍 PR Review

Runs on pull_request events. Posts a structured review comment with severity-tagged findings and one-click commit suggestions.

🏷️ Issue Triage

Runs on issues: [opened] events. Analyzes the issue, suggests labels and priority, and drafts a first-response comment.

GitHub App GitHub Action
PermissionsOrg-level install, broad scopeRepo-scoped GITHUB_TOKEN only
Webhook requiredYes — inbound to your serverNo — fires from GitHub CI
Auto re-review on push (re-runs on synchronize)
Issue triage
Commit suggestions
Security review
Custom prompts

Quick Start

Step 1
Get an API key from the SiftPulse dashboard

Sign in to your dashboard, go to Settings → API Keys, and create a new key. Copy it — it will only be shown once.

Step 2
Add the key as a GitHub Secret

In your GitHub repo, go to Settings → Secrets and variables → Actions, click New repository secret, and name it SIFTPULSE_API_KEY. Paste your API key and save.

Step 3
Add the workflow file

Create .github/workflows/siftpulse.yml in your repo:

name: SiftPulse PR Review

on:
  pull_request:
    types: [opened, synchronize]
  issues:
    types: [opened, reopened]

jobs:
  siftpulse:
    runs-on: ubuntu-latest
    steps:
      - name: Run SiftPulse
        uses: siftpulse/siftpulse-action@v1
        with:
          siftpulse-api-key: ${{ secrets.SIFTPULSE_API_KEY }}
          mode: both
Step 4
Configure (optional)

The action accepts several inputs to customize behavior:

with:
  siftpulse-api-key: ${{ secrets.SIFTPULSE_API_KEY }}
  mode: review                    # 'review' | 'triage' | 'both' (default: both)
  min-verdict: info              # minimum severity to surface (info|warn|blocker)
  fail-on-blocker: true          # exit with code 1 if blockers found (default: true)
  review-prompt: |              # optional team-specific review instructions
    Focus on auth/payments logic. Ignore formatting nits.
  siftpulse-api-url: https://siftpulse.polsia.app  # for self-hosted

Inputs Reference

InputRequiredDefaultDescription
siftpulse-api-keyYour SiftPulse API key
modeNobothWhat to run: review, triage, or both
min-verdictNoinfoMinimum severity to surface in comments
fail-on-blockerNotrueExit with code 1 if any blockers are found
review-promptNoTeam-specific instructions prepended to the review prompt
triage-promptNoTeam-specific instructions prepended to the triage prompt
siftpulse-api-urlNosiftpulse.polsia.appOverride API base URL (for self-hosted)

Using alongside the GitHub App

Run both the App and the Action on the same repo — they are fully complementary:

on:
  pull_request:
    types: [opened, synchronize]
  issues:
    types: [opened, reopened]

jobs:
  # Run SiftPulse Action (no OAuth needed)
  siftpulse-action:
    runs-on: ubuntu-latest
    steps:
      - uses: siftpulse/siftpulse-action@v1
        with:
          siftpulse-api-key: ${{ secrets.SIFTPULSE_API_KEY }}
          mode: both

  # Run your existing CI checks
  ci:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
Enterprise / self-hosted: If you run SiftPulse on your own infrastructure, set siftpulse-api-url to your deployment URL. Your API key will work against either cloud or self-hosted.

Need an API key?

Open dashboard →