Template repo for gpb — sends GitHub ProjectsV2 board updates to Bale, Telegram, Slack, or any supported messaging platform.
| Platform | Secret to set | Variable to set |
|---|---|---|
| Bale (default) | BALE_TOKEN |
CHAT_ID |
| Telegram | TOKEN |
PLATFORM=telegram, CHAT_ID |
| Slack | TOKEN (webhook URL) |
PLATFORM=slack |
-
Click Use this template → Create a new repository
-
Set secrets and variables for your platform:
Bale:
gh secret set BALE_TOKEN --repo your-org/your-repo # paste your Bale bot token from BotFather gh variable set CHAT_ID --repo your-org/your-repo # paste your Bale group chat ID
Telegram:
gh secret set TOKEN --repo your-org/your-repo # paste your Telegram bot token from BotFather gh variable set PLATFORM --repo your-org/your-repo # set to "telegram" gh variable set CHAT_ID --repo your-org/your-repo # paste your Telegram chat or group ID
Slack:
gh secret set TOKEN --repo your-org/your-repo # paste your Slack incoming webhook URL gh variable set PLATFORM --repo your-org/your-repo # set to "slack"
Common (all platforms):
gh secret set GH_PAT --repo your-org/your-repo # paste a GitHub PAT with repo and project scopes gh variable set PROJECT_ID --repo your-org/your-repo # paste your ProjectsV2 node ID (PVT_...)
-
Enable write permissions:
gh api repos/your-org/your-repo/actions/permissions/workflow \ -X PUT -f default_workflow_permissions=write
-
Push to the default branch (or enable Actions)
The first scheduled run may take up to an hour. Trigger a manual run from the Actions tab to test immediately.
| Workflow | Schedule | Purpose |
|---|---|---|
daily-report |
9am weekdays | Full board summary grouped by assignee |
project-events |
Every 5 min | Change notifications via polling |
project-events (manual) |
Manual only | Single-item notification from Actions UI |
| Scope | Why |
|---|---|
repo |
Push state file commits for polling |
project |
Read project items via GraphQL |
See the gpb README for full CLI reference and notification examples.