> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On GitHub push

> Start an automation when commits or tags are pushed to a repository.

`onGitHubPush` emits GitHub repository push deliveries for branches and tags.

```ts automations/watch-github-pushes.automation.ts theme={null}
import { automation } from "automate.ax"
import { onGitHubPush } from "automate.ax/github"

export default automation("Watch GitHub pushes", () => {
  const event = onGitHubPush()
  event.transform(({ after, before, ref, repository }) => ({
    after,
    before,
    ref,
    repository: repository.full_name,
  }))
})
```

Optional static `account` defaults to the project's GitHub App installation binding and cannot be a signal. Returns `Signal<GitHubPushEvent>` with `ref`, `before`, `after`, commits, pusher, repository, sender, installation, and created/deleted/forced flags. The installation needs Contents read permission and receives pushes only from accessible repositories. GitHub can omit individual commit details for unusually large pushes while retaining the range metadata.
