GitHub Actions
Track CI/CD workflow progress in real-time on your Lock Screen using the steps template.
How It Works
The pushward-github bridge container polls the GitHub Actions API for in-progress workflow runs and maps workflow progress to Live Activities using the steps template.
- Idle polling -- checks all configured repos every 60s for in-progress workflows
- Active tracking -- when a run is detected, polls jobs every 5s and updates progress
- Cleanup -- after the workflow completes, the activity is cleaned up after a configurable delay (default 15 min)
Setup
1. Get Your Integration Key
Open the PushWard app → Settings → Integration Key to find your default hlk_ key.
To create a dedicated key for this integration:
- Go to Settings → Manage Keys
- Tap +
- Set name (e.g. "GitHub Actions"), choose scope, and optionally restrict toactivity slugs
- Copy the generated
hlk_key
2. Create a GitHub Personal Access Token
Create a fine-grained PAT with actions:read permission on the repos you want to track.
3. Deploy the Bridge
docker-compose.yml
services:
pushward-github:
image: ghcr.io/mac-lucky/pushward-github:latest
environment:
PUSHWARD_URL: https://api.pushward.app
PUSHWARD_API_KEY: hlk_YOUR_INTEGRATION_KEY
PUSHWARD_GITHUB_TOKEN: ghp_YOUR_GITHUB_TOKEN
PUSHWARD_GITHUB_OWNER: your-username # auto-discovers all repos
# OR specify repos explicitly:
# PUSHWARD_GITHUB_REPOS: owner/repo1,owner/repo2
restart: unless-stoppedConfiguration
| Environment Variable | Description | Default |
|---|---|---|
PUSHWARD_URL | PushWard server URL | -- |
PUSHWARD_API_KEY | Integration key (hlk_ prefix) | -- |
PUSHWARD_GITHUB_TOKEN | GitHub PAT with actions:read | -- |
PUSHWARD_GITHUB_OWNER | GitHub username for auto-discovery | -- |
PUSHWARD_GITHUB_REPOS | Comma-separated owner/repo list | -- |
PUSHWARD_PRIORITY | Activity priority (0-10) | 1 |
PUSHWARD_POLL_IDLE | Idle poll interval | 60s |
PUSHWARD_POLL_ACTIVE | Active poll interval | 5s |
PUSHWARD_CLEANUP_DELAY | Delay before cleanup after ENDED | 15m |
Tip
Use PUSHWARD_GITHUB_OWNER to auto-discover all your repos. The bridge refreshes the repo list every 5 minutes, skipping archived and disabled repos.
Activity Slug Format
Activities are created with the slug gh-{repo-name} (e.g. gh-pushward-server). One run is tracked per repository at a time.