Repo Relay maps GitHub workflow events to Discord notifications. The CLI reads the GitHub event from the runner, maps the event name to an internal handler, applies a pre-filter that drops events the handlers would discard (saving a Discord gateway session), and dispatches to the matching handler.

Supported GitHub events

GitHub eventHandlerWhat it produces
pull_requestPRCreates or updates the PR embed and thread; also piggyback-checks for reviews
workflow_runCIUpdates the CI status on the PR embed and threads a CI result; piggyback-checks reviews on associated PRs
pull_request_reviewReviewThreads a review result onto the PR
issue_commentCommentThreads comment activity, including agent-review detection
issuesIssuePosts an issue embed (opened / closed)
releaseReleasePosts a release embed on publish
deployment_statusDeploymentPosts deployment status updates
pushPushThreads push activity onto the relevant PR
dependabot_alertSecurityRelays a Dependabot alert
secret_scanning_alertSecurityRelays a secret scanning alert
code_scanning_alertSecurityRelays a code scanning alert
scheduleScheduled pollPolls all open PRs for review updates (optional)

Any other event name is ignored.

Pull request lifecycle

A pull request is the centrepiece. When a PR is opened, Repo Relay creates one rich embed in the PR channel and attaches a thread to it. The embed carries the live status — author, branch, change counts, review state for Copilot and agent-review, and CI status. Every subsequent update (a push, a CI completion, a detected review, a merge) is posted into that PR’s thread, and the embed is edited in place to reflect the current status. The result is that a PR’s entire history is readable in one Discord thread.

PR #123 embed (PR channel)
  status: author, branch, +/- changes, reviews, CI
  thread "PR #123: <title>"
    push events
    CI results
    detected reviews (Copilot / agent-review)
    merge notice

Review detection (piggyback)

GitHub Apps using GITHUB_TOKEN do not trigger pull_request_review workflow events. Repo Relay works around this with a piggyback approach: on any PR or CI event, it checks the GitHub API for reviews. Copilot reviews are detected via the reviews endpoint, and agent-review comments are detected by pattern-matching comment bodies. The consequence is that reviews surface on the next event rather than instantly.

For quiet PRs where no further events fire, an optional schedule trigger polls all open PRs (read from the state DB, so no extra API calls to find them) every five minutes and applies the same review check. Enable it via reviewPolling in the init wizard.

Agent-review pattern matching

Agent-review comments are recognised by matching known summary headings (for example ## Code Review Summary, ### Agent Review, ## Review Result, or **Verdict:**) in comment bodies. The verdict is then classified as approved or changes-requested from phrasing such as “approved”, “lgtm”, or “changes requested”. The patterns are shared by both the comment handler and the piggyback path so detection is consistent.

Channel routing recap

PR, CI, review, comment, and push notifications go to the PR channel. Issues, releases, deployments, and security alerts go to their dedicated channels when configured, otherwise the PR channel. See Channel routing.