GitHub Actions
使用 steps 模板,在您的锁定屏幕上实时追踪 CI/CD 工作流进度。

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 -- on each poll cycle the bridge fetches the tracked run's jobs 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
在 PushWard 应用的 设置 → 集成密钥中复制您的默认集成密钥;登录时会自动创建。要将某个密钥限定到此集成,请参阅创建限定范围的密钥。
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: github_pat_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
| 环境变量 | 说明 | 默认值 |
|---|---|---|
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 | Poll interval for run detection and active job updates | 60s |
PUSHWARD_CLEANUP_DELAY | Delay before cleanup after ended | 15m |
提示
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-<8 hex chars>, derived from SHA-256(owner/repo) (e.g. gh-1a2b3c4d). One run is tracked per repository at a time.