pilot-github-bridge
Bridge GitHub webhook events into Pilot Protocol, enabling agents to react to repository events.
Commands
Configure Webhook Receiver
pilotctl --json set-webhook https://your-relay.example.com/github
pilotctl --json listen 1005
Subscribe to Events
pilotctl --json subscribe github-relay github-events
Check Received Events
pilotctl --json inbox
pilotctl --json recv 1005
Workflow Example
#!/bin/bash
# GitHub webhook relay
pilotctl --json daemon start --hostname github-relay --public
pilotctl --json listen 1005 &
# Start HTTP relay (external Python server)
python3 github_relay_server.py &
# Process events
pilotctl --json subscribe localhost github-events
while true; do
EVENT=$(pilotctl --json recv 1005 --timeout 120s)
REPO=$(echo "$EVENT" | jq -r '.repository.full_name')
EVENT_TYPE=$(echo "$EVENT" | jq -r '.event')
case "$EVENT_TYPE" in
push)
BRANCH=$(echo "$EVENT" | jq -r '.ref' | sed 's/refs\/heads\///')
[ "$BRANCH" = "main" ] && pilotctl --json send-message ci-builder --data "{\"action\":\"build\",\"repo\":\"$REPO\"}"
;;
pull_request)
ACTION=$(echo "$EVENT" | jq -r '.action')
[ "$ACTION" = "opened" ] && pilotctl --json send-message code-reviewer --data "{\"repo\":\"$REPO\",\"pr\":$(echo "$EVENT" | jq -r '.number')}"
;;
esac
done
Dependencies
Requires pilot-protocol skill, running daemon, gh CLI, GitHub webhook, and HTTP relay server.