跳至内容

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 应用 → 设置 → 集成密钥,找到您的默认 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.