What it does
The action calls GET /checks/:id for each monitor id you give it and fails the workflow step if any of them comes back down or degraded (configurable), or errors. Useful as a post-deploy gate, or anywhere a workflow needs to confirm a dependency is actually healthy before continuing. It ships in-repo as a composite action: no separate package to install, no build step.
Requirements
A realuptime API key on a Growth or Scale plan. A read-scope key is enough, since this action only reads status and never creates, updates, or deletes anything. Generate one from the dashboard's API & MCP access section and store it as a repository or organization secret, never a literal value in the workflow file.
Basic usage
- name: Confirm production is healthy before finishing
uses: Jose0213/realuptime/.github/actions/check-status@main
with:
api-key: ${{ secrets.REALUPTIME_API_KEY }}
check-ids: "11111111-1111-1111-1111-111111111111"Checking multiple monitors
- name: Confirm all regions are healthy
uses: Jose0213/realuptime/.github/actions/check-status@main
with:
api-key: ${{ secrets.REALUPTIME_API_KEY }}
check-ids: |
11111111-1111-1111-1111-111111111111
22222222-2222-2222-2222-222222222222Find a monitor's id from the dashboard, or by calling GET /checks yourself (see the API reference).
Reporting instead of failing
Set fail-on: "" to never fail the step, and read the outputs in a later step instead:
- name: Check status
id: check
uses: Jose0213/realuptime/.github/actions/check-status@main
with:
api-key: ${{ secrets.REALUPTIME_API_KEY }}
check-ids: "11111111-1111-1111-1111-111111111111"
fail-on: ""
- name: Notify on partial degradation
if: steps.check.outputs.all_operational == 'false'
run: echo "Degraded: ${{ steps.check.outputs.results }}"Inputs
| Input | Required | Default | Description |
|---|---|---|---|
api-key | yes | A realuptime API key, Growth or Scale plan. | |
check-ids | yes | One or more monitor ids, comma- or newline-separated. | |
fail-on | no | down,degraded | Comma-separated statuses that fail the step. Pass an empty string to never fail and only report outputs. |
base-url | no | https://realuptime.io/api/v1 | Override for testing against a non-production instance. |
Outputs
| Output | Description |
|---|---|
all_operational | "true" if every checked monitor's status was outside the fail-on list, "false" otherwise. |
failure_count | Number of monitors that errored or matched a fail-on status. |
results | JSON array, one entry per checked monitor: { checkId, ok, name?, url?, status?, error? }. |
Status meanings
Statuses mirror the REST API's aggregation exactly: operational, degraded, down, stale, or unknown. See the API reference for exactly what each one means. stale and unknown are excluded from the default fail-on list because they mean missing or old data, not a confirmed outage.
Rate limits
One GET /checks/:id request per check-ids entry per run, against the same 120-per-minute read budget documented in the API reference.
Not yet on the GitHub Marketplace
The action ships in-repo for now, referenced directly from its GitHub path as shown above. Publishing it to the GitHub Marketplace as a standalone listing needs the repository owner's GitHub account and is a planned follow-up, not something this page treats as already done.