Fork pulseradar/example-workflow, drop one file in your repo, add two secrets — your build pings PulseRadar on every push.
Copy .github/workflows/pulseradar-demo.yml from pulseradar/example-workflow into your repo, then add two secrets:
PULSERADAR_API_URL — the PulseRadar API base URL (the hosted instance by default)PULSERADAR_API_KEY — a shared secret you've set on your PulseRadar deploy as HEARTBEAT_API_KEYNo other config.
This is the exact file that ships in pulseradar/example-workflow:
name: pulseradar-demo
on: [push, workflow_dispatch]
jobs:
ping:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Notify PulseRadar
env:
PULSERADAR_API_URL: ${{ secrets.PULSERADAR_API_URL }}
PULSERADAR_API_KEY: ${{ secrets.PULSERADAR_API_KEY }}
run: |
curl -fsS -X POST "$PULSERADAR_API_URL/api/heartbeat" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $PULSERADAR_API_KEY" \
-d '{"repo":"${{ github.repository }}","sha":"${{ github.sha }}","branch":"${{ github.ref }}","workflow":"pulseradar-demo"}'
The README in the example repo:
# PulseRadar — GitHub Actions Demo
[](https://github.com/pulseradar/example-workflow/actions/workflows/pulseradar-demo.yml)
[](https://github.com/apps/pulseradar/installations/new)
Pings PulseRadar on every push so your build status appears alongside the rest of your repo's PR health, and a broken integration fails the workflow run.
## Quick start
1. Copy `.github/workflows/pulseradar-demo.yml` from `pulseradar/example-workflow` into `/.github/workflows/`.
2. In your repo settings, add a secret `PULSERADAR_API_URL` pointing at the PulseRadar API base.
3. Add a second secret `PULSERADAR_API_KEY` — a shared secret you also set as `HEARTBEAT_API_KEY` on your PulseRadar deploy.
4. Push. The workflow pings `POST $PULSERADAR_API_URL/api/heartbeat` and the badge above flips red if the ping fails.
## What it does
The `pulseradar-demo` workflow posts a heartbeat to the PulseRadar API on every push. If the request fails, the workflow run fails too — so the badge above flips red on a broken integration.
## Get PulseRadar running on your code
Install the GitHub App: https://github.com/apps/pulseradar/installations/new
Learn more at [pulseradar.app](https://pulseradar.app).
## PR explainer
The PulseRadar API exposes a plain-English summary endpoint that takes a PR diff and returns two-to-three sentences covering "what changed" and "why it matters."
- **Endpoint:** `POST /api/explain-pr`
- **Input:** either a `{ diff, title }` payload, or `{ owner, repo, prNumber }` so the server can pull the diff itself.
- **Output:** `{ summary, generated_at, model, source }` — the `summary` is plain text, not JSON.
### Composes with the upcoming pre-merge risk signal
Today, the explainer runs at or after merge and the summary card lives on `/repos/:owner/:name`. The upcoming pre-merge risk signal will share the same diff-input pipeline: a single analysis pass that takes a PR's files and diff and feeds both "what changed" (this card) and "what could break" (the future signal). We are not building two parallel pipelines — the explainer endpoint is the diff-input contract both features will share.
The Heartbeat ping is one small piece. PulseRadar's GitHub App watches all your pushes and pull requests, runs code analysis on each commit, and posts severity-tagged PR comments automatically.
Install on GitHub