OpenClaw + GitHub Actions Setup
Let your AI agent monitor CI pipelines, get notified on failed builds, create issues, review PRs, and trigger deployments — all through Telegram or WhatsApp. OpenClaw connects to GitHub via the built-in github skill and can receive real-time events through webhooks.
OpenClaw guide · Updated 2026 · Practical setup steps
What You Need
A GitHub account with a Personal Access Token (or fine-grained token), at least one repository, and a running OpenClaw gateway. The github skill is one of the most mature skills in the registry — it covers repos, issues, PRs, Actions, and release management.
Step 1: Create a GitHub Token
Go to github.com/settings/tokens and create a Fine-Grained Personal Access Token. Select the repositories you want OpenClaw to access and grant these permissions: Issues (read/write), Pull Requests (read/write), Actions (read), Contents (read). For private repos, also grant Metadata (read). Copy the token.
export GITHUB_TOKEN="github_pat_your_token_here"
Step 2: Install the GitHub Skill
clawhub install github
Configure it in openclaw.json:
{
"skills": {
"entries": {
"github": {
"enabled": true,
"apiKey": {
"source": "env",
"id": "GITHUB_TOKEN"
}
}
}
}
}
Restart: openclaw gateway restart.
Step 3: Set Up Webhook Notifications (Optional)
For real-time CI alerts, configure a GitHub webhook to ping your OpenClaw gateway. In your repo, go to Settings → Webhooks → Add webhook:
- Payload URL: your OpenClaw webhook endpoint (requires public access via Tailscale Funnel or reverse proxy)
- Content type: application/json
- Events: Workflow runs, Pull requests, Issues
OpenClaw's webhook surface receives the payload and the agent can process it in context — "Build failed on main, here's the error log" delivered to your Telegram.
Without webhooks, you can still use cron-based polling (see below), which requires no public endpoint.
Step 4: Add Context to TOOLS.md
## GitHub
- Main repos: mycompany/frontend, mycompany/api, mycompany/infra
- Default branch: main
- CI: GitHub Actions (test + deploy workflows)
- When creating issues, add labels: bug, enhancement, or chore
- PRs require at least 1 approval before merge
- Never force-push or merge without tests passing
Example Commands
- "What's the status of the latest CI run on mycompany/api?"
- "Create a GitHub issue: fix the login redirect bug on mobile, label it bug, assign to me"
- "Show me open PRs on the frontend repo"
- "Summarize the changes in PR #247"
- "Re-run the failed workflow on the api repo"
- "What commits landed on main today?"
Automate with Cron
# Morning CI health check — 8am weekdays
openclaw cron add \
--name "CI check" \
--cron "0 8 * * 1-5" \
--session isolated \
--model "google/gemini-2.5-flash" \
--message "Check GitHub Actions status for mycompany/api and mycompany/frontend. If any workflow failed on main in the last 12 hours, list the failures with error summaries. If all green, say so briefly." \
--announce --channel telegram
# Weekly dependency review — Monday 10am
openclaw cron add \
--name "Dependency audit" \
--cron "0 10 * * 1" \
--session isolated \
--message "Check Dependabot alerts for mycompany/api. List critical and high severity alerts with suggested fixes." \
--announce --channel slack
Tips
The github skill works through the GitHub REST API via the gh CLI or direct curl calls. If you have the gh CLI installed and authenticated, the skill can use it directly for a smoother experience.
Combine with the linear skill for a full development loop: failed CI triggers an alert, you create a Linear ticket from Telegram, your agent tracks the fix through PR and deploy.
For larger teams, use per-repo webhook channels so alerts from different repos go to different Slack channels or Telegram groups. Configure this through OpenClaw's channel routing and agent bindings.