跳至內容

GitHub Actions

使用 steps 範本,在 Lock Screen 上即時追蹤 CI/CD 工作流程的進度。

Live Activity 示範

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.

  1. Idle polling -- checks all configured repos every 60s for in-progress workflows
  2. Active tracking -- when a run is detected, polls jobs every 5s and updates progress
  3. Cleanup -- after the workflow completes, the activity is cleaned up after a configurable delay (default 15 min)

Setup

1. Get Your Integration Key

開啟 PushWard App → 設定 → 整合金鑰,即可找到您的預設 hlk_ 金鑰。

若要為此整合建立專屬金鑰:

  1. 前往 設定 → 管理金鑰
  2. 點按 +
  3. 設定名稱(例如「GitHub Actions」),選擇 , 範圍,並可選擇性限定於activity slug
  4. 複製產生的 hlk_ 金鑰

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-stopped

Configuration

環境變數說明預設值
PUSHWARD_URLPushWard server URL--
PUSHWARD_API_KEYIntegration key (hlk_ prefix)--
PUSHWARD_GITHUB_TOKENGitHub PAT with actions:read--
PUSHWARD_GITHUB_OWNERGitHub username for auto-discovery--
PUSHWARD_GITHUB_REPOSComma-separated owner/repo list--
PUSHWARD_PRIORITYActivity priority (0-10)1
PUSHWARD_POLL_IDLEIdle poll interval60s
PUSHWARD_POLL_ACTIVEActive poll interval5s
PUSHWARD_CLEANUP_DELAYDelay before cleanup after ended15m
💡 提示

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.