pgblame

Manual deploy markers

If your deploy pipeline doesn't fit Vercel/Railway/GitHub-Actions templates, a one-liner works:

curl -fsS -X POST \
  "https://pgblame.com/v1/deploy?token=${PGBLAME_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"source":"manual","ref":"main","commit_sha":"'"$(git rev-parse HEAD)"'","commit_message":"'"$(git log -1 --pretty=%s)"'"}'

Drop that in your deploy script (Render, Fly, Heroku, your own VM) right after a successful deploy.

Useful patterns

Tag the environment

-d '{"source":"manual","ref":"production","commit_sha":"abc123"}'
-d '{"source":"manual","ref":"staging","commit_sha":"abc123"}'

The Timeline shows separate streams. Useful for "did the staging migration help before we rolled to prod?".

Annotate non-code changes

-d '{"source":"manual","ref":"infra","commit_message":"increased Postgres CPU to 4 cores"}'

The timeline correlates query performance against any event you mark.

Idempotency

Repeat POSTs of the same (source, ref, deployed_at) are deduplicated server-side. If your pipeline retries, you won't get duplicate markers.

Don't fail your build

Use || true at the end. pgblame is observability, not a critical path:

curl -fsS -X POST "https://pgblame.com/v1/deploy?token=${PGBLAME_TOKEN}" \
  -H "Content-Type: application/json" \
  -d "{...}" || true