Integration
Every deployment causes a brief downtime window. Without this integration, PingBase fires an alert every time you deploy — and your team learns to ignore it. That's how real incidents get missed.
The GitHub Action pauses your monitors before the deploy step and resumes them after. Zero false positives, zero alert fatigue.
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Pause PingBase monitors
uses: pingbase/pause-monitor-action@v1
with:
api-key: ${{ secrets.PINGBASE_API_KEY }}
monitor-ids: "mon_abc123,mon_def456"
- name: Deploy to production
run: |
# your deploy command here (wrangler deploy, fly deploy, etc.)
- name: Resume PingBase monitors
if: always() # resume even if deploy fails
uses: pingbase/resume-monitor-action@v1
with:
api-key: ${{ secrets.PINGBASE_API_KEY }}
monitor-ids: "mon_abc123,mon_def456"
The if: always() on the resume step ensures monitors are re-enabled even if the deployment fails.
If you prefer not to use the marketplace action, call the API with curl:
- name: Pause monitors
run: |
curl -s -X PATCH https://pingbase-worker.workers.dev/api/monitors/mon_abc123 \
-H "Authorization: Bearer ${{ secrets.PINGBASE_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"paused": true}'
- name: Resume monitors
if: always()
run: |
curl -s -X PATCH https://pingbase-worker.workers.dev/api/monitors/mon_abc123 \
-H "Authorization: Bearer ${{ secrets.PINGBASE_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"paused": false}'
curl https://pingbase-worker.workers.dev/api/monitors \
-H "Authorization: Bearer YOUR_API_KEY"
# Response includes "id" for each monitor, e.g.:
# [{"id": "mon_abc123", "name": "Production API", ...}]
API keys work on all plans including free. Get your key in Settings → API Keys.
Start free →Full setup guide: /guides/github-action