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.
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 | |
|---|---|---|
| Permissions | Org-level install, broad scope | Repo-scoped GITHUB_TOKEN only |
| Webhook required | Yes — inbound to your server | No — fires from GitHub CI |
| Auto re-review on push | ✓ | ✓ (re-runs on synchronize) |
| Issue triage | ✓ | ✓ |
| Commit suggestions | ✓ | ✓ |
| Security review | ✓ | ✓ |
| Custom prompts | ✓ | ✓ |
Quick Start
Sign in to your dashboard, go to Settings → API Keys, and create a new key. Copy it — it will only be shown once.
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.
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
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
| Input | Required | Default | Description |
|---|---|---|---|
| siftpulse-api-key | ✓ | — | Your SiftPulse API key |
| mode | No | both | What to run: review, triage, or both |
| min-verdict | No | info | Minimum severity to surface in comments |
| fail-on-blocker | No | true | Exit with code 1 if any blockers are found |
| review-prompt | No | — | Team-specific instructions prepended to the review prompt |
| triage-prompt | No | — | Team-specific instructions prepended to the triage prompt |
| siftpulse-api-url | No | siftpulse.polsia.app | Override 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:
- The GitHub App handles real-time webhooks (re-review on push, PR merge detection, DORA metrics).
- The GitHub Action handles CI-triggered reviews and issues triage with zero OAuth overhead.
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
siftpulse-api-url to your deployment URL. Your API key will work against either cloud or self-hosted.